【发布时间】:2016-05-26 20:02:35
【问题描述】:
这是我的问题:
给定一个标记的C代码组件,如何在编译器生成的汇编程序中找到它对应的汇编指令?
如果标记的组件是一个函数,应该很容易,只要没有重叠的汇编程序,我们就可以在编译器生成的代码中进行线性搜索并识别函数。
那么标记的组件是一个循环语句呢?甚至是算术语句?目前有什么好的解决办法吗?
谁能帮帮我?谢谢!
【问题讨论】:
-
没有理由假设这是可能的,即使使用编译器可以轻松内联的函数也是如此。在某些情况下,您可以在不进行优化的情况下进行编译,并要求编译器执行其他操作以使其更容易,但通常,尤其是优化后,并不假设一行代码之间存在一对一的关系和一团 asm。
-
听起来像XY problem。 “找到相应的汇编指令”真的是你的最终目标吗?如果你陈述你实际想要达到的目标,也许有人可能有更好/更简单的方法来做到这一点。
-
您是在问如何以编程方式执行此操作吗?只需使用调试信息。或者您是否要求检查 C 源代码中的某些内容如何编译成 asm 的技术? (即作为人类,如何通过臃肿的编译器输出)
标签: c assembly compilation static-analysis