Sehr nützlich kann auch ein Stacktrace sein.
Das sieht z.B. so aus:
Code:
(000456CA){demo.exe } [004466CA] Controls.TWinControl.WndProc + $1D2
(0001F0DC){demo.exe } [004200DC] Classes.TReader.ReadDate + $8
(0001ABE0){demo.exe } [0041BBE0] Classes.TThreadList.UnlockList + $4
(0002C1EC){demo.exe } [0042D1EC] Graphics.FreeMemoryContexts + $98
(000452CC){demo.exe } [004462CC] Controls.TWinControl.MainWndProc + $2C
(000452E1){demo.exe } [004462E1] Controls.TWinControl.MainWndProc + $41
(0005894C){demo.exe } [0045994C] Forms.StdWndProc + $14
(000452CC){demo.exe } [004462CC] Controls.TWinControl.MainWndProc + $2C
(0005894C){demo.exe } [0045994C] Forms.StdWndProc + $14
(0006284A){demo.exe } [0046384A] Forms.TApplication.StopHintTimer + $12
(00061D27){demo.exe } [00462D27] Forms.TApplication.ProcessMessage + $83
(00061D5E){demo.exe } [00462D5E] Forms.TApplication.HandleMessage + $A
(00061F69){demo.exe } [00462F69] Forms.TApplication.Run + $81
(006F2347){demo.exe } [00AF3347] pss.initialization (Line 771, "C:\Delphi\Test\demo.dpr" + 56) + $7
Um einen Stacktrace zu bekommen muss man mit
TD32-Debug-Info linken
und Bibliotheken verwenden (z.B.
JEDI Code Library), die den Stacktrace erzeugen können.