API Monitor(http://www.rohitab.com/apimonitor)允许您钩挂导出其他库中的函数,但仅适用于Windows,这是我所需要的。
我基本上想在linux或mac中挂接某些函数,并查看它们的参数和调用顺序。
感谢您的帮助!
#1 楼
您可以在运行目标之前简单地导出环境变量LD_PRELOAD
(在Linux上)或DYLD_INSERT_LIBRARIES
(在OS X上)指向您的库(的完整路径),例如以下示例:https:/ /stackoverflow.com/questions/6083337/overriding-malloc-using-the-ld-preload-mechanism
这是用于使函数挂钩以执行您想要的任何事情(而不是监视函数调用)。 br />
#2 楼
检查跟踪系列:ltrace:库跟踪器
strace:内核调用(系统调用)跟踪器
ptrace:可编程跟踪器
还:
radare的itrace
#3 楼
对于OS X,dtrace应该可以解决问题。 dtrace应该也适用于Linux,尽管我不知道它的支持程度如何,而且我相信那里还有其他等效的工具。评论
我看到了带有系统调用的dtrace示例,但没有其他库的示例。可以将dtrace用于游戏,以查看特定库(例如engine.dylib)中正在调用哪些函数,以及其参数。
– TerryW
13年5月27日下午5:56
是的,PID提供程序可以做到这一点:dtrace.org/guide/chapter30.html
– microtherion
13年5月27日在15:01
评论
该apimonitor软件看起来很棒。我确实在Google中搜索了apimonitor,然后回来了Valgrind