【发布时间】:2023-03-06 01:19:01
【问题描述】:
我使用一个包含 Objective-C 的跨平台工具包,所以我不/不能使用 XCode。 只是纯命令行和普通的旧 makefile。
我使用“gcc -Wall -g -O0”编译我的源代码,但是在 gdb 控制下运行它时,我没有得到堆栈帧或有效的源代码行。
首先:我能做些什么来完成这项工作。 第二:如何使用 XCode (3.0) 为我提供 gdb 的 GUI 前端。
这是我在设置断点并执行“回溯”gdb 命令时得到的结果
0 0x918194a9 in malloc_error_break ()
#1 0x91814497 in szone_error ()
#2 0x9173e523 in szone_free ()
#3 0x9173e38d in free ()
#4 0x000d3c53 in Agui_Paint_Context::checkFontColor ()
#5 0x000b2c81 in Agui_Color_Button::attribute_table ()
#6 0x000e5b2e in Agui_Scroll_Canvas_Scrolling_Mixin::~Agui_Scroll_Canvas_Scrolling_Mixin ()
#7 0x000e8968 in Agui_Scroll_Canvas_Scrolling_Mixin::~Agui_Scroll_Canvas_Scrolling_Mixin ()
#8 0x000e8cd9 in Agui_Scroll_Canvas_Scrolling_Mixin::~Agui_Scroll_Canvas_Scrolling_Mixin ()
#9 0x93325e8f in -[NSApplication sendAction:to:from:] ()
#10 0x93325dcc in -[NSControl sendAction:to:] ()
#11 0x93325c52 in -[NSCell _sendActionFrom:] ()
#12 0x933252ab in -[NSCell trackMouse:inRect:ofView:untilMouseUp:] ()
#13 0x93324afe in -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] ()
#14 0x933243b8 in -[NSControl mouseDown:] ()
#15 0x93322af7 in -[NSWindow sendEvent:] ()
#16 0x932ef6a5 in -[NSApplication sendEvent:] ()
#17 0x0008dc6e in Agui_Attribute_Type_Boolean::~Agui_Attribute_Type_Boolean ()
#18 0x9324cfe7 in -[NSApplication run] ()
#19 0x0008e6b7 in Agui_Attribute_Type_Boolean::~Agui_Attribute_Type_Boolean ()
#20 0x0003faba in ?? ()
#21 0x00073ddd in ?? ()
#22 0x0007c996 in ?? ()
#23 0x00004bb2 in ?? ()
#24 0x00002d76 in ?? ()
(gdb)
“Agui_”函数确实存在,但它们是完全错误的。看起来文件/行关联已损坏。所以我必须先修复,然后才能从 XCode 获得任何有效的 GUI 支持。
更新:好的,我能够从 XCode 内部设置一个项目并调试应用程序,但这不是我真正想要的。即使我现在用 -gdwarf-2 更改了 -g,命令行调试仍然不起作用
【问题讨论】: