gpt4 book ai didi

c - 有没有一种可靠的方法可以在 Valgrind 工具中获取包装函数的调用位置?

转载 作者:太空宇宙 更新时间:2023-11-03 23:22:23 24 4
gpt4 key购买 nike

我正在编写一个 valgrind 工具,作为其检测的一部分,使用 valgrind 提供的函数替换机制替换某些函数调用。替换函数立即处理参数并使用客户端请求机制调用工具代码。问题是,一旦进入该工具,我想知道调用替换函数的位置,以便我可以使用它向用户准确报告结果。但我找不到可靠的跨平台方式来做到这一点。到目前为止,我已经通过检测每个 AbiHint 将其地址存储在工具内存中(如果它看起来位于用户代码位置),然后在我们进入替换调用的工具代码时获取该地址,使其在 Linux 上运行功能。但是从我读到的内容来看,我将无法依赖这些 AbiHints 跨平台,而且它看起来像是一个 hacky、脆弱的解决方案。有什么好的方法吗?

最佳答案

一个工具使用 pub_tool_errormgr.h 中可用的函数向用户报告错误这些将报告 guest 堆栈跟踪,它应该给出位置被替换的函数被调用。如果需要,您还可以使用 pub_tool_execontext.h 中的函数直接获取 guest 堆栈跟踪。

关于c - 有没有一种可靠的方法可以在 Valgrind 工具中获取包装函数的调用位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35674614/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com