1

我想在我的 c++ Visual Studio 2010 项目中的每个函数的开头添加一行代码。

在每个函数中手动添加一行需要几个月的时间。有没有快速的方法或工具来解决这个问题?

编辑:我想在我的项目中的每个函数中添加一个用于调试目的的检查点。我有一个宏来处理添加检查点,所以现在的问题是添加一行代码。它可以是任何东西,一个宏,一个控制台输出等等。

例如,有数百个函数:

void func1() 
{
    //code
}

int func2() 
{
    //code
}

char* func3() 
{
    //code
}

/* more functions */

bool func100()
{
    //code
}


//I want them to become:

void func1() 
{
    myMacro;
    //code
}

int func2() 
{
    myMacro;
    //code
}

char* func3() 
{
    myMacro;
    //code
}

/* more functions */

bool func100() 
{
    myMacro;
    //code
}
4

2 回答 2

4

您无需破解代码即可获得功能检测!例如,请参见此处:http ://www.drdobbs.com/automatic-code-instrumentation/184403601

简短的故事是 MSVC 有_penter,这是一个可以完成您在此处尝试完成的工作的工具,但无需修改大部分源代码。

顺便说一句,您所问的(在函数调用之前添加代码)的标准术语是面向方面的编程。

于 2013-10-04T14:31:35.973 回答
0

MSVC 支持键盘宏录制(对于 c++ 键盘布局,它是 Ctrl+Shift+R - 开始和 Ctrl+Shift+P 停止)。在存储键盘宏之后定义正则表达式以查找函数的签名,如下所示:

  • F3(用于下一个功能条目)

  • key down - 寻找'{'

  • Ctrl + '}' 寻找右括号

    .... 在此处添加额外的行 ....

当键盘宏准备就绪时,按 Ctrl+R - 播放此宏。上千条线处理得非常快

于 2013-10-04T16:06:43.263 回答