digitalmars.D.announce - Ddbg 0.09 beta release
- Jascha Wetzel (5/5) Jun 14 2007 Ddbg is a Win32 D debugger
- dickl (13/20) Jun 14 2007 The support for pointers and array are just what I need !!!!
- dickl (2/26) Jun 14 2007 The lockup problem with Codeblocks does not happen with ddbg 0.081.
- Jascha Wetzel (3/9) Jun 14 2007 can you give me a test case for that?
- dickl (13/36) Jun 17 2007 Haven't been able to find a simple test case yet but have found this:
- Ary Manzana (18/25) Jun 14 2007 Cool! Thanks!
- Jascha Wetzel (11/26) Jun 15 2007 means you found a bug ;)
- Deewiant (6/15) Jun 15 2007 Can't you mirror D in having integer constants be ints, with a 'u' or 'U...
- Jascha Wetzel (5/8) Jun 15 2007 constants just aren't really implemented, yet. what's there is basically...
Ddbg is a Win32 D debugger http://ddbg.mainia.de/releases.html This release mainly improves on expressions and gives you access to all CPU/FPU/MMX/SSE registers. See the documentation for details.
Jun 14 2007
Jascha Wetzel wrote:Ddbg is a Win32 D debugger http://ddbg.mainia.de/releases.html This release mainly improves on expressions and gives you access to all CPU/FPU/MMX/SSE registers. See the documentation for details.The support for pointers and array are just what I need !!!! There seems to be a problem with the integration in CodeBlocks though. If I set a break point (anywhere) and start to debug, it never reaches the breakpoint. The debugger is started but appears to be hung. If I kill the debugger from CodeBlocks, the process isn't killed. I have use the task manager to kill it. Not sure where the problem lies as yet. Running via the command line works fine. I also noticed when using the command line , if I step 'in' on a 'new' statement, it goes to some totally unrelated line of code. All subsequent attempts at single stepping stay on the same line of code. If I use "ov" to get out, then step with 'in' it steps into the constructor as it should.
Jun 14 2007
dickl wrote:Jascha Wetzel wrote:The lockup problem with Codeblocks does not happen with ddbg 0.081.Ddbg is a Win32 D debugger http://ddbg.mainia.de/releases.html This release mainly improves on expressions and gives you access to all CPU/FPU/MMX/SSE registers. See the documentation for details.The support for pointers and array are just what I need !!!! There seems to be a problem with the integration in CodeBlocks though. If I set a break point (anywhere) and start to debug, it never reaches the breakpoint. The debugger is started but appears to be hung. If I kill the debugger from CodeBlocks, the process isn't killed. I have use the task manager to kill it. Not sure where the problem lies as yet. Running via the command line works fine. I also noticed when using the command line , if I step 'in' on a 'new' statement, it goes to some totally unrelated line of code. All subsequent attempts at single stepping stay on the same line of code. If I use "ov" to get out, then step with 'in' it steps into the constructor as it should.
Jun 14 2007
dickl wrote:There seems to be a problem with the integration in CodeBlocks though.fixed in 0.09.1I also noticed when using the command line , if I step 'in' on a 'new' statement, it goes to some totally unrelated line of code. All subsequent attempts at single stepping stay on the same line of code. If I use "ov" to get out, then step with 'in' it steps into the constructor as it should.can you give me a test case for that?
Jun 14 2007
Jascha Wetzel wrote:dickl wrote:Haven't been able to find a simple test case yet but have found this: int result=1; gc_init(); // initialize garbage collector _minit(); // initialize module constructor table The assembly list from ddbg looks like this:There seems to be a problem with the integration in CodeBlocks though.fixed in 0.09.1I also noticed when using the command line , if I step 'in' on a 'new' statement, it goes to some totally unrelated line of code. All subsequent attempts at single stepping stay on the same line of code. If I use "ov" to get out, then step with 'in' it steps into the constructor as it should.can you give me a test case for that?0x404032 // quantum.d:50 int result=1; 0x404032 mov dword [ebp-0x54], 0x1 0x404039 // quantum.d:52 gc_init(); // initialize garbage collector 0x404039 call 0x440fd8 _gc_init audiosetup.d:116 0x40403e // quantum.d:53 _minit(); // initialize module constructor table 0x40403e call 0x441ea0 __minit audiosetup.d:116Notice the source file for _gc_init & __minit are not correct, causing the debugger to show 116 of audiosetup.d while stepping into these function. Now for 'new' statement, we get a similar thing0x40407b // quantum.d:65 QuantumDlg dlg=new QuantumDlg(); 0x40407b push dword 0x464cdc 0x404080 call 0x4410cc __d_newclass audiosetup.d:116 0x404085 mov [ebp-0x24], eax 0x404088 call 0x408154 quantumdlg.QuantumDlg._ctor quantumdlg.d:599I've looked at the assembly listing from MSVC and the problem doesn't appear so it is a problem with ddbg. Line 116 of audiosetup.d is the very last line in the file. audiosetup.d is the last file compiled/linked in.
Jun 17 2007
Cool! Thanks! It's nice that now everything is hidden in ..., so it's faster when integrating it into an IDE (more lazy). I have a question: I tried inspecting an associative array. char[][int] dictionary; dictionary[1] = "one"; dictionary[2] = "one"; ->= dictionary { 1 = ..., 2 = ... } ->= dictionary[1] Invalid key type for associative array. Expected i found k What does that mean? Thanks, Ary Jascha Wetzel escribió:Ddbg is a Win32 D debugger http://ddbg.mainia.de/releases.html This release mainly improves on expressions and gives you access to all CPU/FPU/MMX/SSE registers. See the documentation for details.
Jun 14 2007
Ary Manzana wrote:I have a question: I tried inspecting an associative array. char[][int] dictionary; dictionary[1] = "one"; dictionary[2] = "one"; ->= dictionary { 1 = ..., 2 = ... } ->= dictionary[1] Invalid key type for associative array. Expected i found k What does that mean?means you found a bug ;) the types get output in mangled form (changed in 0.09.2). so the message says: i found a uint but needed an int. integer constants are uints atm. the bug you (implicitly) found is, that expressions may not be constants. that means neither "1" nor "cast(int)1" is a valid expression. therefore you couldn't fix this by writing "dictionary[cast(int)1]" - in 0.09.2 you can. besides that, i will add implicit casts to handle this more smoothly, sometime...
Jun 15 2007
Jascha Wetzel wrote:Ary Manzana wrote:Can't you mirror D in having integer constants be ints, with a 'u' or 'U' suffix meaning unsigned (like 1u) and an 'L' suffix meaning long (like 1L, combine the two to get the ulong 1UL)? Why deviate from the spec? -- Remove ".doesnotlike.spam" from the mail address.Invalid key type for associative array. Expected i found k What does that mean?means you found a bug ;) the types get output in mangled form (changed in 0.09.2). so the message says: i found a uint but needed an int. integer constants are uints atm.
Jun 15 2007
Deewiant wrote:Can't you mirror D in having integer constants be ints, with a 'u' or 'U' suffix meaning unsigned (like 1u) and an 'L' suffix meaning long (like 1L, combine the two to get the ulong 1UL)? Why deviate from the spec?constants just aren't really implemented, yet. what's there is basically a dummy (it's about 10 lines of code). i'll stick to the D specs in all aspects of expression syntax and semantics unless there's a really good reason not to.
Jun 15 2007