Advice on debugging possible exception or crash

Cecil Ward cecil at cecilward.com
Fri Jul 7 00:41:02 UTC 2023


On Thursday, 6 July 2023 at 19:53:39 UTC, Chris Katko wrote:
> On Thursday, 6 July 2023 at 06:00:04 UTC, Cecil Ward wrote:
>> My program is instrumented with a load of writeflns. At one 
>> point it looks as though it suddenly quits prematurely because 
>> the expected writeflns are not seen in the output. It could be 
>> that I am just reading the flow of control wrong as it goes 
>> ret, ret etc. I’m wondering if it is throwing an exception, or 
>> has a fault initiating a crash, perhaps even due to the 
>> fetching of arguments of one of the writeflns. In my limited 
>> experience, exceptions produce an error message though, and 
>> I’m not seeing anything. Any advice on how to debug this, 
>> silent termination ?
>>
>> I don’t have a debugger on this machine, but on an x86-64 box 
>> I could use gdb if I first take the time to work out how.
>
> one thing I do is have gdb/lldb break on d assert, before it 
> destroys the stack. That helped me catch a class of bugs.
>
> ```sh
> # in the gdb interface before running
> break _d_assertp
> break _d_assert
> break _d_assert_msg
>
> # or to combine it into the commandline:
> gdb -ex "break _d_assert" -ex "break _d_assert_msg" -ex "run 
> $1" ./main
>
> # can also add it to your .gdbinit startup code.
> 

This is brilliant advice. I’m building with LDC and in debug mode 
with -g, however gdb says it can’t find any symbol table or debug 
info, can’t even set breakpoints by line numbers. The Matt 
Godbolt Compiler Explorer can go to source line numbers in the 
asm. So I’m just missing something.



More information about the Digitalmars-d-learn mailing list