[LLVMdev] Stack trace - clang

Bin Zeng ezengbin at gmail.com
Mon Aug 9 10:37:24 PDT 2010


  Hi,

I am new to LLVM and am trying to modify clang for some work. I tried to 
insert an instruction: prefetchnta $100 at the beginning of a function. 
I encountered a problem when I tried to debug it with gdb. There was an 
assertion failure and printed some information without stack trace. The 
process has been finished when it printed the information. I tried to 
set a breakpoint at the operator[] with:
break 
llvm::SmallVectorTemplateCommon<llvm::MCOperand>::operator[](unsigned int)
  The program did not stop there either.  Here is what it printed. The 
question is: how can I print the stack trace when there is an assertion 
failure. Thanks tons.

clang: /export/home/zbin/llvm/llvm/include/llvm/ADT/SmallVector.h:163: 
const T& llvm::SmallVectorTemplateCommon<T>::operator[](unsigned int) 
const [with T = llvm::MCOperand]: Assertion `begin() + idx < end()' failed.
0  clang 0x094b90d8
Stack dump:
0.      Program arguments: 
/export/home/zbin/llvm/llvm/Release+Asserts/bin/clang -cc1 -triple 
i386-pc-linux-gnu -S -disable-free -main-file-name helloworld.c 
-mrelocation-model static -mdisable-fp-elim -mconstructor-aliases 
-target-cpu pentium4 -resource-dir 
/export/home/zbin/llvm/llvm/Release+Asserts/lib/clang/2.8 -ferror-limit 
19 -fmessage-length 95 -fgnu-runtime -fdiagnostics-show-option 
-fcolor-diagnostics -o /tmp/cc-x4r76v.s -x c helloworld.c
1. <eof> parser at end of file
2.      Code generation
3.      Running pass 'X86 AT&T-Style Assembly Printer' on function '@main'
clang: error: clang frontend command failed due to signal 6 (use -v to 
see invocation)

clang is built with gmake ENABLE_OPTIMIZED=1 .
Also I tried with the debug version of clang. It did not work either. I 
am really stumped on this bug. Thank you very much.

Bin



More information about the llvm-dev mailing list