Hi There,
Firstly I apologise if this the incorrect forum for something like this, but
it's a kind of "you're my only hope" type situation. I am currently in the
process of porting a 2.5 million line pc code base to OSX and after a year of
compiler wrangling and team coding standards changes I'm pretty much there.
However, we have had to keep upgrading XCode due to the support of C++11 being
slow in coming. However, now with XCode 5 we have all the features we need,
there is one small problem though, XCode crashes when trying to debug our code.
I eventually traced this to the fact that the lldb that ships with XCode5
crashes when trying to attach to the exe. I found this out by running lldb
against our exe from the command line. I then tried downloading the latest
lldb from svn and building it, which yielded a version that would attach to the
exe and run it, but would crash in a very similar way when trying to perform
any debugging operations, such as a backtrace. As a last ditch effort I tried
debugging lldb debugging our exe (fun times), and got the following output and
call stack.
If anyone could shed some light on it, then it would be great. I'm afraid that
I am unable to provide reproduction methods, due to the size and proprietary
nature of the code base, I am happy to provide any additional information that
may be required though.
(lldb) bt
lldb(7515,0x7fff7b4b2180) malloc: *** error for object 0x104186080: incorrect
checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
Process 7515 stopped
* thread #1: tid = 0x3b1be, 0x00007fff8f873212
libsystem_kernel.dylib`__pthread_kill + 10, name = '<lldb.driver.main-thread>',
queue = 'com.apple.main-thread', stop reason = signal SIGABRT
frame #0: 0x00007fff8f873212 libsystem_kernel.dylib`__pthread_kill + 10
libsystem_kernel.dylib`__pthread_kill + 10:
-> 0x7fff8f873212: jae 0x7fff8f873219 ; __pthread_kill + 17
0x7fff8f873214: jmpq 0x7fff8f8744d4 ; cerror_nocancel
0x7fff8f873219: ret
0x7fff8f87321a: nop
(lldb) bt
* thread #1: tid = 0x3b1be, 0x00007fff8f873212
libsystem_kernel.dylib`__pthread_kill + 10, name = '<lldb.driver.main-thread>',
queue = 'com.apple.main-thread', stop reason = signal SIGABRT
* frame #0: 0x00007fff8f873212 libsystem_kernel.dylib`__pthread_kill + 10
frame #1: 0x00007fff914d9b24 libsystem_c.dylib`pthread_kill + 90
frame #2: 0x00007fff9151df61 libsystem_c.dylib`abort + 143
frame #3: 0x00007fff914f98d5 libsystem_c.dylib`szone_error + 580
frame #4: 0x00007fff914f7628 libsystem_c.dylib`szone_free_definite_size +
1535
frame #5: 0x00007fff914f18c8 libsystem_c.dylib`free + 199
frame #6: 0x000000010160ec52
LLDB`lldb_private::Mangled::GetDemangledName(this=0x000000013833e2f8) const +
322 at Mangled.cpp:214
frame #7: 0x0000000101a38ece
LLDB`lldb_private::Symtab::InitNameIndexes(this=0x000000010450a990) + 894 at
Symtab.cpp:317
frame #8: 0x0000000101a3da78
LLDB`lldb_private::Symtab::FindAllSymbolsWithNameAndType(this=0x000000010450a990,
name=0x00007fff5fbf1c78, symbol_type=eSymbolTypeObjCClass,
symbol_indexes=0x00007fff5fbf1330) + 120 at Symtab.cpp:791
frame #9: 0x000000010161a9ab
LLDB`lldb_private::Module::FindSymbolsWithNameAndType(this=0x0000000104500b70,
name=0x00007fff5fbf1c78, symbol_type=eSymbolTypeObjCClass,
sc_list=0x00007fff5fbf17b0) + 443 at Module.cpp:1316
frame #10: 0x00000001016240f5
LLDB`lldb_private::ModuleList::FindSymbolsWithNameAndType(this=0x0000000105800188,
name=0x00007fff5fbf1c78, symbol_type=eSymbolTypeObjCClass,
sc_list=0x00007fff5fbf17b0, append=false) const + 597 at ModuleList.cpp:528
frame #11: 0x0000000101a96a90
LLDB`lldb_private::ObjCLanguageRuntime::LookupInCompleteClassCache(this=0x000000013227feb0,
name=0x00007fff5fbf1c78) + 1456 at ObjCLanguageRuntime.cpp:101
frame #12: 0x0000000101692b83
LLDB`lldb_private::ValueObject::MaybeCalculateCompleteType(this=0x0000000132a334b0)
+ 755 at ValueObject.cpp:328
frame #13: 0x0000000101692eb0
LLDB`lldb_private::ValueObject::GetClangType(this=0x0000000132a334b0) + 32 at
ValueObject.cpp:359
frame #14: 0x0000000101dffae2
LLDB`lldb_private::FormatNavigator<lldb_private::ConstString,
lldb_private::TypeFormatImpl>::Get(this=0x000000012f663200,
valobj=0x0000000132a334b0, entry=0x00007fff5fbf20c0,
use_dynamic=eNoDynamicValues, why=0x00007fff5fbf2114) + 98 at
FormatNavigator.h:291
frame #15: 0x0000000101dfc583
LLDB`lldb_private::TypeCategoryImpl::Get(this=0x000000012f663110,
valobj=0x0000000132a334b0, entry=0x00007fff5fbf20c0,
use_dynamic=eNoDynamicValues, reason=0x00007fff5fbf2114) + 115 at
TypeCategory.cpp:48
frame #16: 0x0000000101e1f27f
LLDB`lldb_private::TypeCategoryMap::GetFormat(this=0x000000010277e230,
valobj=0x0000000132a334b0, use_dynamic=eNoDynamicValues) + 863 at
TypeCategoryMap.cpp:196
frame #17: 0x0000000101de6921
LLDB`lldb_private::FormatManager::GetFormat(this=0x000000010277e148,
valobj=0x0000000132a334b0, use_dynamic=eNoDynamicValues) + 753 at
FormatManager.cpp:447
frame #18: 0x0000000101ddee72
LLDB`lldb_private::DataVisualization::GetFormat(valobj=0x0000000132a334b0,
use_dynamic=eNoDynamicValues) + 50 at DataVisualization.cpp:52
frame #19: 0x0000000101691bb1
LLDB`lldb_private::ValueObject::UpdateFormatsIfNeeded(this=0x0000000132a334b0)
+ 193 at ValueObject.cpp:248
frame #20: 0x000000010169164b
LLDB`lldb_private::ValueObject::UpdateValueIfNeeded(this=0x0000000132a334b0,
update_format=true) + 75 at ValueObject.cpp:168
frame #21: 0x000000010169aefa
LLDB`lldb_private::ValueObject::GetValueAsCString(this=0x0000000132a334b0) + 42
at ValueObject.cpp:1470
frame #22: 0x00000001015cfd2e
LLDB`FormatPromptRecurse(format=0x0000000132a31f8c, sc=0x0000000132a31cb0,
exe_ctx=0x00007fff5fbf7b78, addr=0x0000000000000000, s=0x00007fff5fbf5670,
end=0x00007fff5fbf56b0, valobj=0x0000000000000000) + 21006 at Debugger.cpp:2285
frame #23: 0x00000001015caceb
LLDB`FormatPromptRecurse(format=0x0000000132a31f73, sc=0x0000000132a31cb0,
exe_ctx=0x00007fff5fbf7b78, addr=0x0000000000000000, s=0x00007fff5fbf7090,
end=0x00007fff5fbf70d0, valobj=0x0000000000000000) + 459 at Debugger.cpp:1526
frame #24: 0x00000001015caceb
LLDB`FormatPromptRecurse(format=0x0000000132a31f50, sc=0x0000000132a31cb0,
exe_ctx=0x00007fff5fbf7b78, addr=0x0000000000000000, s=0x00007fff5fbf7b28,
end=0x0000000000000000, valobj=0x0000000000000000) + 459 at Debugger.cpp:1526
frame #25: 0x00000001015caac1
LLDB`lldb_private::Debugger::FormatPrompt(format=0x0000000132a31f50,
sc=0x0000000132a31cb0, exe_ctx=0x00007fff5fbf7b78, addr=0x0000000000000000,
s=0x00007fff5fbf7b28, valobj=0x0000000000000000) + 641 at Debugger.cpp:2622
frame #26: 0x0000000101afb7ef
LLDB`lldb_private::StackFrame::DumpUsingSettingsFormat(this=0x0000000132a31c40,
strm=0x00000001034b94e0, frame_marker=0x00007fff5fbf7e71) + 495 at
StackFrame.cpp:1294
frame #27: 0x0000000101afca1c
LLDB`lldb_private::StackFrame::GetStatus(this=0x0000000132a31c40,
strm=0x00000001034b94e0, show_frame_info=true, show_source=false,
frame_marker=0x00007fff5fbf7e71) + 108 at StackFrame.cpp:1384
frame #28: 0x0000000101b05641
LLDB`lldb_private::StackFrameList::GetStatus(this=0x000000012f658eb0,
strm=0x00000001034b94e0, first_frame=0, num_frames=4294967295,
show_frame_info=true, num_frames_with_source=0,
selected_frame_marker=0x00000001020d5fd4) + 2929 at StackFrameList.cpp:909
frame #29: 0x0000000101b534be
LLDB`lldb_private::Thread::GetStatus(this=0x000000010422b620,
strm=0x00000001034b94e0, start_frame=0, num_frames=4294967295,
num_frames_with_source=0) + 1582 at Thread.cpp:1970
frame #30: 0x000000010157c9de
LLDB`CommandObjectThreadBacktrace::DoExecute(this=0x0000000103425690,
command=0x00007fff5fbf89a0, result=0x00000001034b94e0) + 190 at
CommandObjectThread.cpp:175
frame #31: 0x00000001017f26fb
LLDB`lldb_private::CommandObjectParsed::Execute(this=0x0000000103425690,
args_string=0x00007fff5fbf9309, result=0x00000001034b94e0) + 715 at
CommandObject.cpp:1037
frame #32: 0x00000001017cbbc4
LLDB`lldb_private::CommandInterpreter::HandleCommand(this=0x00000001034112b0,
command_line=0x00007fff5fbfafb1, lazy_add_to_history=eLazyBoolCalculate,
result=0x00000001034b94e0, override_context=0x0000000000000000,
repeat_on_empty_command=true, no_context_switching=true) + 21492 at
CommandInterpreter.cpp:1850
frame #33: 0x00000001017f99d8
LLDB`lldb_private::CommandObjectRegexCommand::DoExecute(this=0x00000001034394f0,
command=0x00007fff5fbfbe89, result=0x00000001034b94e0) + 2984 at
CommandObjectRegexCommand.cpp:89
frame #34: 0x00000001017f2a95
LLDB`lldb_private::CommandObjectRaw::Execute(this=0x00000001034394f0,
args_string=0x00007fff5fbfbe89, result=0x00000001034b94e0) + 789 at
CommandObject.cpp:1063
frame #35: 0x00000001017cbbc4
LLDB`lldb_private::CommandInterpreter::HandleCommand(this=0x00000001034112b0,
command_line=0x000000010425a7b9, lazy_add_to_history=eLazyBoolYes,
result=0x00000001034b94e0, override_context=0x0000000000000000,
repeat_on_empty_command=true, no_context_switching=false) + 21492 at
CommandInterpreter.cpp:1850
frame #36: 0x00000001000d1754
LLDB`lldb::SBCommandInterpreter::HandleCommand(this=0x00007fff5fbfdb20,
command_line=0x000000010425a7b9, result=0x00007fff5fbfdb28,
add_to_history=true) + 292 at SBCommandInterpreter.cpp:122
frame #37: 0x0000000100008e47
lldb`Driver::HandleIOEvent(this=0x00007fff5fbff9a0, event=0x00007fff5fbfe060) +
183 at Driver.cpp:1171
frame #38: 0x000000010000be68
lldb`Driver::MainLoop(this=0x00007fff5fbff9a0) + 10184 at Driver.cpp:1629
frame #39: 0x000000010000c923 lldb`main(argc=1, argv=0x00007fff5fbffb18,
envp=0x00007fff5fbffb28) + 467 at Driver.cpp:1802
frame #40: 0x0000000100001044 lldb`start + 52
This email is sent by The Creative Assembly Limited company No. 03425917,
registered in England & Wales registered office 27 Great West Road, Middlesex,
TW8 9BW, England. The contents of this e-mail and any attachments are
confidential to the intended recipient and may also be legally privileged.
Unless you are the named addressee (or authorised to receive for the addressee)
of this email you may not copy, disclose or distribute it to anyone else. If
you have received this email in error, please notify us immediately by e-mail
on [email protected] and then delete the email and any copies.
The Creative Assembly Limited have made all reasonable efforts to ensure that
this e-mail and any attached documents or software are free from software
viruses, but it is the recipient's responsibility to confirm this.
_______________________________________________
lldb-dev mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev