À regarderun correctif ou une fonctionnalité utileLe payload brut contient cinq commits de merge et huit commits non-merge ; chacun est couvert ci-dessous. Il ne contient ni marqueur superseded_by ni avis de dépréciation. Les fichiers de version seuls sont ignorés.
L’inspection des logs préserve les fichiers MAB et gagne le traçage des appelants
Cette édition renforce surtout les outils autour de TSynLog sans modifier les protocoles backend. Les lecteurs de logs ne plantent plus sur des données de profiler vides ou des sélections de texte brut, et TDebugFile ne supprime plus un fichier .mab externe illisible. FreeBSD, FPC et Android reçoivent des corrections socket et POSIX, tandis que la découverte du symbole appelant passe désormais par TDebugFile sur tous les compilateurs pris en charge.
En bref
- Visez la build 2.4.17019 au commit fc996116ae8a2534c5e763ac180649cdb78013ab.
- TDebugFile.Create ne supprime plus un fichier .mab externe illisible fourni via aExeName.
- TSynLogFile et TSynLogFileView gèrent sans plantage les logs sans sllEnter, les lignes texte brut copiées et un filtre de niveaux vide.
- Le dimensionnement des sockets UNIX FreeBSD et les corrections de compilation FPC, BSD et Android sont complets dans la build finale.
- TDebugFile.AppendCallerShort est nouveau ; TSynLog.Enter ou Log sans texte résout aussi l’appelant sous FPC, comme sous Delphi.
- Le package Lazarus conserve maintenant mormot.crypt.pkcs11 lorsqu’il régénère mormot2.pas.
Conseil de mise à jour
Visez la build 2.4.17019. Mettez à niveau rapidement si LogView ouvre des .mab externes, si des logs peuvent ne contenir aucun sllEnter, ou si FreeBSD, FPC BSD ou Android est ciblé. Recompilez chaque package, testez la copie de texte brut et le filtre vide, puis vérifiez si les symboles appelants automatiques modifient le volume ou le coût des logs. Aucun marqueur superseded_by n’étaye une plage à éviter.
8 sur 8 entrées · 13 commits upstream
1
Élevée
Les logs vides ou texte brut ne cassent plus le viewer
TSynLogFile.SetLogProcMerged évite maintenant l’accès aux tableaux du profiler sans événement sllEnter. TSynLogFileView.GetLineForClipboard renvoie la ligne brute lorsque fLevels vaut nil, et Select efface fSelectedCount avant de traiter un filtre d’événements vide. TTestCoreBase.Debugging ajoute les régressions.
Correctifs
mormot.core.log
a01ae51e+56-8
core: fixed TSynLogFile/TSynLogFileView edge cases found by the LogView tool
Impact
LogView et les analyseurs évitent les accès nil ou hors limites sur les logs sans profiling de méthodes, peuvent copier les lignes texte brut et n’affichent aucune ligne lorsque tous les niveaux sont décochés.
Mise à jour recommandée
Mettez à niveau les outils d’analyse et testez le texte brut, les logs sans sllEnter et la désactivation de tous les niveaux.
API publique
TSynLogFile.SetLogProcMergedbehaviour-changed — Activer le profiling fusionné sans sllEnter laisse maintenant un profiler vide au lieu de déréférencer des tableaux vides.TSynLogFileView.GetLineForClipboardbehaviour-changed — Les fichiers texte brut renvoient la ligne sélectionnée et les index hors limites une chaîne vide.
Unités
2
Élevée
Les fichiers MAB externes illisibles ne sont plus supprimés
TDebugFile.Create tente toujours LoadMab lorsque le timestamp du cache correspond, mais n’appelle plus DeleteFile si aucun bloc ou symbole n’est chargé.
Correctifs
mormot.core.log
4ca916cb+1-3
core: TDebugFile.Create() won't delete an unreadable .mab file
Impact
Passer un .mab choisi par l’utilisateur via aExeName, comme le fait LogView, ne peut plus détruire ce fichier parce qu’il est illisible, invalide ou incompatible. Le fallback vers .map ou .dbg reste actif.
Mise à jour recommandée
Mettez à niveau tout outil ouvrant des MAB fournis par l’utilisateur et testez les fichiers invalides ou en lecture seule.
API publique
TDebugFile.Createbehaviour-changed — Un MAB illisible est conservé au lieu d’être supprimé avant le fallback de chargement des symboles.
Unités
3
Élevée
Les chemins BSD, FPC et Android convergent après le merge plateforme
Le suivi utilise CPUAARCH64 pour CPU_ARCH_TEXT, fait accepter pointer à PosixStatFS sur les deux compilateurs, choisit les champs st_ino Android via DELPHIPOSIX, corrige la syntaxe socket conditionnelle et un cast FPC, puis charge getifaddrs via LibraryOpen et LibraryResolve.
Compilateur & plateforme
mormot.core.os+4
e68dce4a+17-20
all: some fixes after #598
Impact
Le travail Delphi Android fusionné et la taille socket FreeBSD compilent correctement sur les cibles POSIX Delphi/FPC. Android utilise le champ d’identifiant adapté à la RTL, et FPC ne dépend plus ici des déclarations dlopen directes.
Mise à jour recommandée
Utilisez la build 2.4.17019 pour Delphi Android, FPC BSD ou AArch64 et relancez toute la matrice de compilation plutôt que de sélectionner les commits précédents.
API publique
PosixStatFSsignature-changed — Le paramètre Info est maintenant pointer sous FPC comme sous Delphi, au lieu de PStatfs sous FPC.
4
Moyenne
Le package Lazarus conserve le support PKCS #11
packages/lazarus/mormot2.lpk ajoute mormot.crypt.pkcs11 comme item 114, décale les éléments suivants et porte le nombre de fichiers de 123 à 124.
Correctifs
mormot.crypt.pkcs11
7b98b09a+24-20
packages: added mormot.crypt.pkcs11 to the Lazarus package
Impact
Ouvrir ou reconstruire le package Lazarus ne régénère plus mormot2.pas sans mormot.crypt.pkcs11. Les usages directs et Delphi ne changent pas.
À regarder
Recompilez le package Lazarus et vérifiez que mormot.crypt.pkcs11 reste dans l’unité agrégée générée.
Unités
5
Moyenne
Les adresses socket UNIX utilisent la taille native FreeBSD
TSockAddrUnix utilise un sun_path de 104 octets sur les plateformes avec sun_len et 108 ailleurs. SOCKADDR_SIZE suit ce layout, tandis que TNetAddr.Size et SetFamily traitent AF_UNIX explicitement.
Correctifs
mormot.net.sock+1
b6262622+22-9
net: fixed TSockAddrUnix size for FreeBSD
Impact
FreeBSD et les autres cibles avec sun_len ne passent plus un buffer sockaddr_un trop grand et ne renvoient plus la taille générique pour AF_UNIX. Linux et Windows ne changent pas.
Mise à jour recommandée
Utilisez la build 2.4.17019 pour les sockets UNIX FreeBSD/BSD et retestez bind/connect avec des chemins de longueur maximale.
API publique
SOCKADDR_SIZEbehaviour-changed — La constante publique vaut 106 au lieu de 110 sur les plateformes dont les records socket contiennent sun_len.
6
Moyenne
Les symboles appelants peuvent être ajoutés sans allocation heap
TDebugFile.AppendCallerShort capture jusqu’à 62 frames brutes, supprime les doublons et ajoute les emplacements résolus dans une ShortString. RawStackTrace est partagé avec StackTrace et protège l’interception d’exceptions lors du parcours sous Delphi et FPC.
Nouveautés
mormot.core.log
19b48603+186-111
core: new TDebugFile.AppendCallerShort method
Impact
Le code de log et diagnostic peut obtenir des emplacements appelants compacts sous FPC comme sous Delphi sans construire de résultat RawUtf8. La qualité dépend toujours des données .map, .gdb ou .mab.
API publique
TDebugFile.AppendCallerShortadded — Cette nouvelle procédure de classe ajoute aSkip/aDepth emplacements de stack résolus dans une ShortString fournie.
Unités
7
Moyenne
Les entrées TSynLog sans texte identifient l’appelant sur chaque cible
TSynLog.Enter avec aMethodName=nil et TSynLog.Log(Level) appellent TDebugFile.AppendCallerShort avant le verrou writer. LogEnter accepte un emplacement PShortString précalculé, et la capture d’adresse réservée à Delphi est supprimée.
Nouveautés
mormot.core.log
fc996116+74-145
core: TSynLog.Enter/Log with no text nor method name will use caller info
Impact
Les logs FPC peuvent maintenant inclure le même contexte de symbole appelant que Delphi si les données de debug existent. Les appels sans texte capturent la stack et peuvent produire plus de texte ; mesurez les chemins de log chauds.
À regarder
Passez en revue les appels Enter et Log sans texte, confirmez le nouveau texte appelant et mesurez les chemins fréquents avec les artefacts de debug de production.
API publique
TSynLog.Enterbehaviour-changed — Un aMethodName nil déclenche maintenant la résolution de l’appelant TDebugFile sous FPC comme sous Delphi.TSynLog.Logbehaviour-changed — L’overload ne prenant qu’un niveau ajoute maintenant l’emplacement appelant résolu s’il est disponible.
Unités
8
Faible
Les records host POSIX suivent le type C natif
La déclaration interne hostent.h_length passe de TSockLen à cint pour correspondre à l’ABI C. Un commentaire sockaddr_dl est précisé sans changer le layout.
Compilateur & plateforme
mormot.net.sock.posix
de2e5034+4-4
net: minor cleanup after latest PR
Impact
Les bindings de résolution de noms POSIX utilisent le type entier natif sous FPC et Delphi. Les API applicatives et Windows ne changent pas.