在VC中进入MACRO

前端之家收集整理的这篇文章主要介绍了在VC中进入MACRO前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在调试一个源代码,它有很多大的#define’d MACRO例程.
我很有兴趣进入它们,但我想,VC不允许步入功能…所以,

>我正在将它们转换为函数,但这对我来说变得很难

有没有办法进入MACRO例程?特别是在VC?

PS:如果gcc编译器支持步入MACRO,我可以将整个代码移植到gcc中

解决方法

除了上面的所有正确答案:我通常做的是显示混合显示(C汇编).这显示了真正发生的事情.即使您不是底层程序集的专家,它也可以了解会发生什么(即它是一个简单的替换还是一个复杂的循环).它还将提供额外的机会进入功能.例如,如果您的宏是
#define foo(a) i++;foo_func(a,i)

你的调试器会显示类似的东西
循环和使用什么样的变量).您可以使用宏定义作为参考来理解它.

00411454  mov         dword ptr [j],eax 
00411457  cmp         dword ptr [j],0Ah 
0041145B  jge         wmain+58h (411478h) 
    {
        foo(j);
0041145D  mov         eax,dword ptr [i] 
00411460  add         eax,1 
00411463  mov         dword ptr [i],eax 
00411466  mov         eax,dword ptr [i] 
00411469  push        eax  
0041146A  mov         ecx,dword ptr [j] 
0041146D  push        ecx  
0041146E  call        foo_func (411028h) 
00411473  add         esp,8 
    }

这给出了变量i和j用于调用函数foo_func的线索.

如果使用Visual C,它将允许您进入从宏调用函数(F11);但不是个别陈述.

原文链接:https://www.f2er.com/c/118657.html

猜你在找的C&C++相关文章