许多服务器都使用了框架,那么如何调试so就成了问题
1、假设我的可执行程序是ServerName,共享库为worker.so
2、我用gdb调试ServerName,想在B的某个源文件(比如worker.cpp,worker.cpp与ServerName不在同一个目录下)中设置断点,使用下面的命令行break worker.cpp:123
若找不到源文件可使用如下命令设定源文件目录:
设定gdb环境变量 LD_PRELOAD,在执行程序前先把共享库代码load进来
指定你的链接库的位置,可以通过设定环境变量LD_LIBRARY_PATH来实现
拷贝到标准的lib搜寻目录下,例如/usr/lib等
b main, r,然后再设置断点就可以了,共享库只有当程序运行才开始加载的