gpt4 book ai didi

检查特定函数是否内联 - 英特尔编译器

转载 作者:太空宇宙 更新时间:2023-11-04 04:54:53 25 4
gpt4 key购买 nike

我有 C/C++ 二进制库(*.dll、*.sys)及其组成的 obj 文件及其符号 (pdb),但没有源代码或映射文件。
根据符号,它们是由 Intel 编译器(适用于 Windows)构建的。

有什么方法可以检查特定函数是否内联?

提前致谢。

最佳答案

ICC 对内联特别积极,在许多情况下,当一个函数声明为 inline(尤其是在 MSVC 上是 __forceinline 时),它会如果无法内联它(显然取决于您的项目编译设置),实际上会在编译阶段抛出错误。

也就是说,老实说,您能够执行所需操作的唯一方法是附加调试器,在 MSVC 中暂停应用程序,切换到 ASM View ,然后搜索对您要查找的函数名称的调用(你说 C/C++,这与 C++ 不同,你必须搜索损坏的名称)。如果您发现对该函数的调用(call _myFunc),则它不是内联的。

否则,如果您知道去哪里查找,请浏览 ASM 以找到调用者 函数,并检查其来源以验证对被调用者 的调用是或者不存在。

这听起来可能令人生畏,但实际上很简单,只需 ctrl+f 即可。

关于检查特定函数是否内联 - 英特尔编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9965118/

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