[LLVMdev] Advice on debugging?

Talin viridia at gmail.com
Mon Mar 31 20:54:32 PDT 2008


Ping? Still looking for advice in figuring out how and why my generated 
code is causing lli to crash...

Talin wrote:
> I've been using lli to do most of my unit tests for the compiler that 
> I'm writing. However, when I get a test that crashes, its difficult to 
> find which instruction it was that caused the crash. I tried running 
> bugpoint, but it didn't seem to work for me, and upon reading the 
> documentation, it seems to be intended for a different purpose than 
> finding bugs in my source program; It seems to be related more to 
> finding errors in the various optimizer passes.
>
> So for example, when I run lli on my program:
> ----------------------------------------------------------
> Assertion failed: (V == V2 && "Didn't find key?"), function RemoveKey, 
> file StringMap.cpp, line 177.
> 0   lli                                 0x0049edcd 
> _ZN40_GLOBAL__N_Signals.cpp_00000000_B58D0A3815PrintStackTraceEv + 45
> 1   lli                                 0x0049efc9 
> _ZN40_GLOBAL__N_Signals.cpp_00000000_B58D0A3813SignalHandlerEi + 323
> 2   libSystem.B.dylib                   0x9534297b _sigtramp + 43
> 3   ???                                 0xffffffff 0x0 + 4294967295
> 4   libSystem.B.dylib                   0x953bb782 raise + 26
> 5   libSystem.B.dylib                   0x953cad3f abort + 73
> 6   libSystem.B.dylib                   0x953bc923 __assert_rtn + 101
> 7   lli                                 0x00491ca7 
> _ZN4llvm13StringMapImpl9RemoveKeyEPNS_18StringMapEntryBaseE + 127
> 8   lli                                 0x00461946 
> _ZN4llvm9StringMapIPNS_5ValueENS_15MallocAllocatorEE6removeEPNS_14StringMapEntryIS2_EE 
> + 24
> 9   lli                                 0x00461094 
> _ZN4llvm16ValueSymbolTable15removeValueNameEPNS_14StringMapEntryIPNS_5ValueEEE 
> + 24
> 10  lli                                 0x0040aabe 
> _ZN4llvm21SymbolTableListTraitsINS_10BasicBlockENS_8FunctionEE18removeNodeFromListEPS1_ 
> + 94
> 11  lli                                 0x003cbd66 
> _ZN4llvm6iplistINS_10BasicBlockENS_12ilist_traitsIS1_EEE6removeERNS_14ilist_iteratorIS1_EE 
> + 254
> ...etc...
> ----------------------------------------------------------
>
> But when I run bugpoint, I get:
> ----------------------------------------------------------
> Read input file      : 'out/Debug/test/stdlib/test08.bcc'
> *** All input ok
> Found gcc: /usr/bin/gcc
> Initializing execution environment: Running the code generator to test 
> for a crash: <cbe>
> Generating reference output from raw program: 
> <cbe><cbe><gcc><program>Reference output is: bugpoint.reference.out
>
> *** Checking the code generator...
> <cbe><gcc><program>
> *** Debugging miscompilation!
> Checking to see if '' compile correctly: <cbe><gcc><program> yup.
> *** Optimized program matches reference output!  No problem detected...
> bugpoint can't help you with your problem!
> ----------------------------------------------------------
>
> To be honest, I am not sure what this all means.
>
> In any case, what I'd like is a way to find out more about the source 
> of the crash.
>
> I don't suppose anyone is working on a version of lli that supports 
> single-step debugging from the command line? Or do I need to compile 
> to assembly and use gdb? What's the best strategy for solving this 
> type of problem?
>
> -- Talin
>
>




More information about the llvm-dev mailing list