gpt4 book ai didi

c++ - 是否可以在 GDB session 之间转移程序的控制权?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:46:11 25 4
gpt4 key购买 nike

我有一个加载了 C++ 程序进程的 GDB session 。我想将它传输到同一台机器上具有不同接口(interface)的另一个 GDB session ,以便于调试。是否可以在进程不继续运行的情况下将其分离,以便我可以将其附加到其他 GDB session 中?

最佳答案

Is it possible to detach the process without it continuing to run so that I can attach it in the other GDB session?

我喜欢你的问题,但让我推荐一种我认为易于使用的替代方法。

一个简单的函数(如下所示)可以容纳任何线程,只要它需要附加调试器。此外,您可以使用 -D 选项设置 parkFlag 进行条件编译,并根据您的喜好默认设置。

bool parkFlag = true;
void park()
{
while(parkFlag) // pause thread for some time
std::this_thread::sleep_for (std::chrono::milliseconds(100));
}

因此,为了“更方便”的调试 session ,请在 main 之后调用 park。

现在启动“更方便”的调试器,附加,设置一些断点,然后清除 parkFlag。

关于c++ - 是否可以在 GDB session 之间转移程序的控制权?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37978017/

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