如何调试到使用Makefile构建的我的apache模块?
问题描述:
首先,我来自Windows-VisualStudio-C++背景。现在我正在Ubuntu环境中开发。如何调试到使用Makefile构建的我的apache模块?
在Makefile的帮助下,我构建了一个mymodule.so并将其复制到apache中的modules文件夹中。现在,看起来该模块工作正常。但我想调试到这个模块来更好地理解它。
- 因此,首先,有没有什么办法可以在调试这个模块时获得类似于Visual Studio调试器类型的感觉?
- 现在,我读到我可以使用gdb调试到apache模块中,有人可以告诉我这是如何完成的,或者指向我的一些资源。
- 理想情况下,我想单步和东西。我正在尝试Code :: Blocks IDE,它有一些调试支持。使用IDE和自定义make文件,我构建模块。复制到模块位置,但我如何调试。
- 我如何挂钩到apache进程。我应该使用Attach to Process吗?我试过用httpd的pid,但没有成功。
- 此外,虽然建筑有一些标志,我应该设置,以便.so文件是可调试的?
我对Linux非常基本,因为我来自Windows编程背景。请建议我如何去做这件事。
由于提前, 阿琼
答
我想你可以用gdb(at 1111
,其中1111是进程的PID,或代码::块)附加到apache进程和你的模块中设置断点函数,如果模块是用调试编译的。您将需要成为root用户或与apache进程相同的用户。
gcc
-g
标志用于与调试信息一起构建二进制文件。