Bug in ddbg: incorrect stack frame

Ary Manzana ary at esperanto.org.ar
Fri Apr 27 10:23:15 PDT 2007


Jascha Wetzel escribió:
> The stacktrace prints the function that contains the instruction pointer
> of each frame, not the function that allocated the frame.
> The code that corresponds to the line where the function is declared
> contains the enter opcode that allocates the stack frame for that
> function. That means that the frame does not exist until the next line.
> Therefore your proposed stacktrace isn't correct at that position.

Thanks for the clarification.

> But I agree that the current version is misleading.
> 
> Instead of
> <frame no.> <function containing IP> [at file:line | from module]
> it should be
> <frame no.> <function that created the frame> [at file:line | from module]
> 
> In your example the ST would then be (note that line=3 in frame 0)
> #0 _Dmain (args = 0x0012ff4c00000001) at chau.d:3
> #1 0x004020b8 in _main () from dmain2
> #2 0x0040750d in _mainCRTStartup () from constart
> #3 0x7c816fd7 in ?? () from KERNEL32.dll
> 
> i'll fix this in the next release.

Thanks!

> 
> BTW: did you use DMD 1.010 or older? he args parameter should be
> expanded correctly else...

What do you mean by expanded correctly? I just downloaded dmd 1.014 and 
the args parameters is shown exactly the same. Should I see the args as 
an array literal (args = ["arg1":"value1"], etc.) ?


More information about the Digitalmars-d-debugger mailing list