在MSVC中,DebugBreak()或__debugbreak导致调试器中断.在x86上它相当于写"_asm int 3",在x64上它是不同的东西.在使用gcc(或任何其他标准编译器)进行编译时,我也想进入调试器.是否存在平台无关功能或内在功能?我看到了XCode的问题,但它似乎不够便携.
旁注:我主要想用它来实现ASSERT,我知道我可以使用assert(),但我也想在代码中编写DEBUG_BREAK或其他东西.
我正在尝试让gdb运行带有输入重定向到stdin的程序.例如,没有gdb我会运行这样的程序:
prog < input.txt
Run Code Online (Sandbox Code Playgroud)
现在在gdb中,通常的做法是run < input.txt.但是,它对我不起作用,当这样做时,没有任何东西被重定向到stdin.
我正在使用Windows与MinGW.可能是什么问题呢?
在 gdb 中,我设置了一个断点,让 gdb 在满足第一个if条件时停止。但是 gdb 停在另一行并且if不满足条件。我读过gdb breakpoint does not get hit,但它仍然没有解决。我认为 gdb 仅在if (a == 1)遇到并在第 3282 行时停止。我错了吗?
#pragma GCC push_options
#pragma GCC optimize("O0")
static void __attribute__ ((noinline)) search(int a, int b)
{
// other code here
if (a == 1) {
printf("condition1\n");
printf("condition1\n"); // line 3282, breakpoint is set here
}
if (b == 1) { // line 3284, in fact, gdb stops in this line
printf("condition2\n");
printf("condition2\n");
}
} …Run Code Online (Sandbox Code Playgroud)