[LLVMdev] Advice on debugging?
Evan Cheng
evan.cheng at apple.com
Tue Apr 1 00:27:41 PDT 2008
There is simply not enough information here to make an educated guess.
But I'd say this is most likely not an optimization issue. Can you run
lli in gdb to see where it is failing? Also you can add command line
option -debug-only=jit. That should tell you which function is
tripping lli up.
Evan
On Mar 31, 2008, at 8:54 PM, Talin wrote:
> 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
>>
>>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
More information about the llvm-dev
mailing list