[cfe-dev] How to debug a clang compiled executable.

Bill Wendling wendling at apple.com
Wed Jul 28 17:04:47 PDT 2010


On Jul 28, 2010, at 1:29 PM, Sean McBride wrote:

> On Wed, 28 Jul 2010 15:58:17 -0400, Michael Jackson said:
> 
>> Program received signal SIGABRT, Aborted.
>> 0x92993e42 in __kill ()
>> (gdb) bt
>> #0  0x92993e42 in __kill ()
>> #1  0x92993e34 in kill$UNIX2003 ()
>> #2  0x92a0623a in raise ()
>> #3  0x92a12622 in __abort ()
>> #4  0x929de43e in __chk_fail ()
>> #5  0x929c1ca9 in __strncat_chk ()
>> Die: DW_TAG_restrict_type (abbrev = 33, offset = 7574)
>> 	has children: FALSE
>> 	attributes:
>> 		DW_AT_type (DW_FORM_ref4) constant ref: 3194 (adjusted)
>> 		DW_AT_decl_file (DW_FORM_data1) constant: 2
>> 		DW_AT_decl_line (DW_FORM_data1) constant: 0
>> Dwarf Error: Cannot find type of die [in module /Users/Shared/Kitware- 
>> CVS/VTK-clang-dbg-i386/bin/vtkWrapJava]
>> 
>> The program was compiled with the following:
>> 
>> /Users/Shared/Toolkits/llvm/bin/clang  -DVTK_IN_VTK -Wall -Wextra - 
>> Wformat=2 -Wno-format-nonliteral -Wunused -Wpointer-arith -Winvalid- 
>> pch -Wcast-align -Wdisabled-optimization -Wnewline-eof -fdiagnostics- 
>> show-option -Wno-deprecated-declarations -Wno-uninitialized -g -fstack- 
>> protector-all -D_FORTIFY_SOURCE=2   -g -arch i386 ....
> 
> strncat_chk is used because you defined _FORTIFY_SOURCE.  IIRC, it helps
> check for overruns using C string functions.  I believe in 10.5 the
> _FORTIFY_SOURCE version of strncat was screwy, ah, here you go:
> 
> <http://lists.apple.com/archives/xcode-users/2008/Jul/msg00848.html>
> 
> I think it's fixed on 10.6.
> 
> Try again without -D_FORTIFY_SOURCE=2, and maybe remove -fstack-
> protector-all too.
> 
Ewww...don't remove the "-fstack-protector-all". It's your friend. :) If it's aborting because of the stack protector, then you have a definite buffer overrun.

-bw






More information about the cfe-dev mailing list