LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1308|回复: 7

有没有好的调试.so的办法.

[复制链接]
发表于 2003-5-23 09:24:23 | 显示全部楼层 |阅读模式
直接gdb .so , 再attach pid 可以么? 好象说不对。
发表于 2003-5-23 12:00:19 | 显示全部楼层
应该是不可能

如果是静态调用的话
那么地调用点step in

当然这要求你的程序与so都是加-g
 楼主| 发表于 2003-5-23 12:07:09 | 显示全部楼层

那dlopen()的而且没有source code的这些怎么办?

如题.
发表于 2003-5-23 12:22:35 | 显示全部楼层
没有source code的话没有办法调试的

如果有source code的话也是可以调试的
发表于 2003-5-23 21:55:00 | 显示全部楼层
dlopen() 有点麻烦。
刚才试验了一下,也可以调试的。

等到 dlopen() 成功了以后,被 dlopen() 的共享库的符号表就进来了,
这以后,可以在库里面的函数上设置断点,跟踪调试。

编译的时候要有 -g 选项,当然也不能被 strip 过。
要有source code,否则,只能看到函数名,不能看到源程序了。
发表于 2003-5-24 02:57:12 | 显示全部楼层
罗嗦一下,像 gdb xxxx.so 这样的命令是不行的,xxxx.so 自己不可以运行的嘛。
 楼主| 发表于 2003-5-25 15:10:16 | 显示全部楼层

我知道不能直接调试.so.但是我以为attach可以从该Process中得到.so的函数实际地址,

原来还是得从dlopen()进去。
发表于 2003-5-26 00:23:03 | 显示全部楼层
?????? dlopen() ?????.so?????????
????????????????? .so ?????
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表