如何知道两个 C++ 断点之间的代码汇编行的大小

How to know the size of assembly lines of code between two c++ break points?

本文关键字:代码 之间 汇编 断点 C++ 何知道 两个      更新时间:2023-10-16

我正在 eclipse 下构建一个 c++ 项目,为了执行缓存优化,我需要估计代码的某些热点是否可以放入缓存中。我放了两个断点并触发了 eclipse 反汇编器,但通过这种方式手动计算代码看起来很困难。

有什么更实用的方法吗?

让编译器发出程序集输出。 请务必对发布版本执行此操作,因为它们通常与调试版本有很大不同。 然后,您可以手动分析输出,并查看代码需要多少内存。

提到了Eclipse,所以我假设你说的是Linux下的gcc,但Windows下的MSVC也是如此。

一种快速的估计方法是减去地址,然后除以平均指令大小。 在 x86 上,我会使用 4 个字节(您可以选择不同的数字)。