我有一个用C++编写的unix软件,它可以通过常见的./configure; make; make install
步骤在OSX上构建。它是一个命令行工具,所以不涉及花哨的GUI或类似的东西。
为了更好地理解代码,我想在调试器中执行该工具。我希望调试器在main
方法开始时停止,然后逐步执行函数调用。所以这里也没有什么花哨的要求。
我的问题是,我在Windows开发方面有一些经验,但我对Unix/OSX上的这些东西是新手,我很难组装所有需要的编译标志、工具。。。我想我只需要向./configure
添加一些标志,然后就可以使用gdb以某种方式执行生成的可执行文件了。但细节有些棘手,很难弄清楚。有人知道一个好的开始资源吗?类似于"使用gdb为dummies调试C命令行工具"?;-)
首先需要使用调试信息进行构建。您可以使用这样的配置:
./configure CFLAGS=-g CPPFLAGS=-g
(运行./configure --help
以获得项目的更详细帮助。)
然后只需要在gdb:中启动该工具
gdb ./mytool
如果您需要将args传递给工具,请使用以下内容:
gdb --args ./mytool arg1 arg2 arg3 ...
在gdb中设置一个断点,在这里您可以停止并检查执行:
break main
break sourcefile.cpp:123
然后开始执行:
run