是否可以在 Visual Studio 2013 中设置多个条件断点?
Is it possible to set a multiple conditions Breakpoint in Visual Studio 2013?
有谁知道是否可以在 Visual Studio 2013 (C++) 中的特定行上设置多条件断点?
我正在尝试使用“&&”,但它没有用。我在 MSDN 上也找不到答案。
我想设置的断点在WindowProc里面,我想设置的条件是-message = WM_MOUSEMOVE, WPARAM = MK_LBUTTON
提前致谢,伊戈尔。
允许使用 &&
,应该可以。此外,还允许使用许多常见的 C++ 表达式。 This 页面列出了允许和不允许的内容。
请注意,使用这种断点会大大降低您的应用程序的速度。到了调试不再可行的地步。这可能是让您相信 &&
不被允许的原因。要克服这个特殊问题,您可能需要使用这样的结构:
//untested code
#ifdef _DEBUG
if(condition a && condition b)
{
//either output something (option A)
std::cout << "condition a and b are true"
//or create a nop statement (option B)
__nop(); //and set a breakpoint
//or create a 'nop statement' with compiler warning (option C)
int breakpoint = 0;
}
#endif
这将产生更好的性能。
由于此代码仅在您在调试中编译时才被编译,因此您可以保留这段代码(因此选项 B 是最佳选择)。但是,如果您想要被提醒删除调试子句,选项 C 可能是您想要的方式。因为这将生成 variable breakpoint is declared but never used
警告。正如 borisbn 所建议的那样。
如果您经常使用此语句,将其包装到预编译器宏中可能最有用。
WM_MOUSEMOVE 是一个宏定义,在编译期间由编译器在源代码中替换。它对调试器是未知的,所以你不能在断点条件表达式中使用它;改用显式数字常量。
顺便说一句,您是否知道您使用了运算符“=
”,它与“==
”不相同...?
有谁知道是否可以在 Visual Studio 2013 (C++) 中的特定行上设置多条件断点?
我正在尝试使用“&&”,但它没有用。我在 MSDN 上也找不到答案。
我想设置的断点在WindowProc里面,我想设置的条件是-message = WM_MOUSEMOVE, WPARAM = MK_LBUTTON
提前致谢,伊戈尔。
允许使用 &&
,应该可以。此外,还允许使用许多常见的 C++ 表达式。 This 页面列出了允许和不允许的内容。
请注意,使用这种断点会大大降低您的应用程序的速度。到了调试不再可行的地步。这可能是让您相信 &&
不被允许的原因。要克服这个特殊问题,您可能需要使用这样的结构:
//untested code
#ifdef _DEBUG
if(condition a && condition b)
{
//either output something (option A)
std::cout << "condition a and b are true"
//or create a nop statement (option B)
__nop(); //and set a breakpoint
//or create a 'nop statement' with compiler warning (option C)
int breakpoint = 0;
}
#endif
这将产生更好的性能。
由于此代码仅在您在调试中编译时才被编译,因此您可以保留这段代码(因此选项 B 是最佳选择)。但是,如果您想要被提醒删除调试子句,选项 C 可能是您想要的方式。因为这将生成 variable breakpoint is declared but never used
警告。正如 borisbn 所建议的那样。
如果您经常使用此语句,将其包装到预编译器宏中可能最有用。
WM_MOUSEMOVE 是一个宏定义,在编译期间由编译器在源代码中替换。它对调试器是未知的,所以你不能在断点条件表达式中使用它;改用显式数字常量。
顺便说一句,您是否知道您使用了运算符“=
”,它与“==
”不相同...?