linux下如何时时跟踪程序看她调用了哪些lib库,不是指ldd!
linux下如何时时跟踪程序看她调用了哪些lib库,不是指ldd!
谢谢指教!
谢谢指教!
作者: sbyond 发布时间: 2007-07-04
QUOTE:
原帖由 sbyond 于 2007-7-4 17:20 发表于 1楼
linux下如何时时跟踪程序看她调用了哪些lib库,不是指ldd!
谢谢指教!
linux下如何时时跟踪程序看她调用了哪些lib库,不是指ldd!
谢谢指教!
为嘛不用 ldd?
作者: MMMIX 发布时间: 2007-07-04
QUOTE:
原帖由 MMMIX 于 2007-7-4 17:46 发表于 2楼
为嘛不用 ldd?
为嘛不用 ldd?
以passwd和adduser为例 如果系统缺少 libnss_files-2.5.so 库则
运行 passwd root 程序提示 没有 root这个用户
说明passwd用到了,至少是间接用到了 libnss_files-2.5.so
但是ldd passwd并没有显示passwd用到 libnss_files-2.5.so
所以希望不是使用ldd这种模拟运行的方式察看程序了哪些lib库而是希望能有一个跟踪程序察看程序直接包括间接调用的所有lib库
这一点是ldd无法做到的!
作者: sbyond 发布时间: 2007-07-04
strace your_command
作者: maluyao 发布时间: 2007-07-04
QUOTE:
原帖由 sbyond 于 2007-7-4 18:02 发表于 3楼
以passwd和adduser为例 如果系统缺少 libnss_files-2.5.so 库则
运行 passwd root 程序提示 没有 root这个用户
说明passwd用到了,至少是间接用到了 libnss_files-2.5.so
但是ldd passwd并没有显示passwd用 ...
以passwd和adduser为例 如果系统缺少 libnss_files-2.5.so 库则
运行 passwd root 程序提示 没有 root这个用户
说明passwd用到了,至少是间接用到了 libnss_files-2.5.so
但是ldd passwd并没有显示passwd用 ...
如果是这样的话就只能跟踪代码的执行了,看看其到底打开了哪些库文件。
作者: MMMIX 发布时间: 2007-07-04
调用共享库有两种方法,一种显式调用(dlopen),一种是隐式调用(由ld.so在程式开始运行时加载),
除了楼上的方法外,还可以通过/proc里面的相关文件获得
除了楼上的方法外,还可以通过/proc里面的相关文件获得
作者: MingLin1231 发布时间: 2007-07-04
QUOTE:
原帖由 MingLin1231 于 2007-7-4 19:50 发表于 6楼
调用共享库有两种方法,一种显式调用(dlopen),一种是隐式调用(由ld.so在程式开始运行时加载),
除了楼上的方法外,还可以通过/proc里面的相关文件获得
调用共享库有两种方法,一种显式调用(dlopen),一种是隐式调用(由ld.so在程式开始运行时加载),
除了楼上的方法外,还可以通过/proc里面的相关文件获得
有时侯由于共享库的问题程序根本启动不起来;或者执行很快,一下就结束了,根本来不及看。其实 strace 还是最好的方案。
作者: MMMIX 发布时间: 2007-07-04
QUOTE:
原帖由 maluyao 于 2007-7-4 18:19 发表于 4楼
strace your_command
strace your_command
谢谢斑竹:)!
作者: sbyond 发布时间: 2007-07-04
Thanks a lot..
作者: 程序匠人 发布时间: 2011-01-20