gpt4 book ai didi

c++ - 在 Linux 上以编程方式为 gdb 在 C 或 C++ 代码中设置断点

转载 作者:行者123 更新时间:2023-11-30 16:16:38 24 4
gpt4 key购买 nike

如何以编程方式在 C 或 C++ 代码中设置适用于 Linux 上的 gdb 的断点?

即:

int main(int argc, char** argv)
{
/* set breakpoint here! */
int a = 3;
a++; /* In gdb> print a; expect result to be 3 */
return 0;
}

最佳答案

一种方法是发出中断信号:

#include <csignal>

// Generate an interrupt
std::raise(SIGINT);

在 C 中:

#include <signal.h>
raise(SIGINT);

更新:Microsoft Docs说 Windows 并不真正支持 SIGINT,因此如果考虑可移植性,您最好使用 SIGABRT

SIGINT is not supported for any Win32 application. When a CTRL+C interrupt occurs, Win32 operating systems generate a new thread to specifically handle that interrupt. This can cause a single-thread application, such as one in UNIX, to become multithreaded and cause unexpected behavior.

关于c++ - 在 Linux 上以编程方式为 gdb 在 C 或 C++ 代码中设置断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56525214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com