Я охочусь за памятью, и я использую FastMM в FullDebugMode для получения журналов событий. Это работает очень хорошо, но stacktrace ... не очень приятен вообще.Delphi - имена методов журнала событий FastMM
короткий пример:
This block was allocated by thread 0x25F8, and the stack trace (return addresses) at the time was:
4081E8 [FastMM4.pas][FastMM4][_ZN7Fastmm411DebugGetMemEx][8737]
4086A5 [FastMM4.pas][FastMM4][_ZN7Fastmm413DebugAllocMemEx][9019]
F0D820 [_ZN6System8AllocMemEx]
F18A0D [_ZN6System8TMonitor6CreateEv]
F18EEB [_ZN6System8TMonitor10GetMonitorEPNS_7TObjectE]
10AE265 [_ZN6System7Classes16CheckSynchronizeEi]
54CAC7 [Vcl.Forms.pas][Vcl.Forms][_ZN3Vcl5Forms12TApplication4IdleERK6tagMSG][11044]
54B598 [Vcl.Forms.pas][Vcl.Forms][_ZN3Vcl5Forms12TApplication13HandleMessageEv][10473]
54BA24 [Vcl.Forms.pas][Vcl.Forms][_ZN3Vcl5Forms12TApplication3RunEv][10611]
566719 [ServerRunner.pas][ServerRunner][_ZN12Serverrunner9RunServerEv][113]
Это не легко читаемым для меня. Мне нравится, что название этой единицы находится в квадратных скобках, но что произошло с именами методов? Я понимаю, что есть полное имя метода с его типами аргументов. Но каков беспорядок (как _ZN3, 5, 12, 3, Ev), введенный в него?
Используете ли вы пакеты времени выполнения? И какая библиотека трассировки стека используется? –
См. Https://en.wikipedia.org/wiki/Name_mangling - как этот вопрос связан с Spring4D? –
@StefanGlienke: спасибо. Это не сильно связано с Spring4D. Я решил пометить этот вопрос на S4D (извините?), Потому что он используется в проекте, из которого была взята stacktrace, а вторая причина - сообщество S4D для меня более надежным (и особенно вам как хозяину :)). –