简单的HowTo在调试器中启动OSX上的C++命令行工具
Simple HowTo to start C++ command line tool on OS X inside a debugger
我有一个用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
相关文章:
- OSX Catalina 上的C++和宝石问题
- Xcode OSX上的C++构建失败,出现多个错误文件IO..不可用:在macOS 10.15中引入
- 让constexpr在OSX上的C++17中使用pow
- 如何在Mac OSX上的Qt中使用pkcs12 / pfx成功执行SSL加密?
- 为什么异常不适用于 OSX 上的 gcc7 和 -static-libgcc?
- 构建共享对象 - 使用 Ninja 编译适用于 OSX 和 Windows 上的 Ubuntu Crush
- OSX 上的 Apache Ignite 2.0 C++ 无法编译
- OSX 上的 GCC 5、6 和 7 不支持 uint
- 如何在Mac OSX上的窗口客户端内获取真实的鼠标位置?
- 代码调用反向函数不会在Ubuntu 18上的G 或Clang 上编译,但神秘地在Mac OSX上使用
- OSX上的Gldrawelements具有很高的CPU使用情况
- 如何在OSX上的C 中编程旋转光标
- OSX 10.8.2 上的 Poco C++库:体系结构x86_64的未定义符号
- osX上的c++未捕获异常
- Macports GCC 4.8无法链接OSX Lion上的c++库
- OSX 优胜美地 10.10.3 上的 Cmake - GLEW:未找到包'gl'
- OSX 上的应用程序构建找不到配置文件
- 将osx上的默认编译器从llvm-g++更改为g++
- 引发异常导致OSX 10.11.4+clang上的SIGSEGV
- OSX 上的 Boost 和 C++ 链接器错误