【问题标题】:How to add extra delay while opening gdb如何在打开 gdb 时添加额外的延迟
【发布时间】:2025-12-03 10:40:01
【问题描述】:

这是关于在打开 gdb 时添加一些额外的延迟。 场景是这样的:

  1. 我用 c++ 调用我的 gdb。这是使用 .gdbinit 文件中的主机设置自动配置的。目标版本 localhost:PortNumber
  2. gdb 调试器在其重置向量位置停止。
  3. 我在打开 gdb 之前通过一个 pin 提供了重置向量地址,应该更新它并且 gdb 应该停止在新位置。
  4. 但 gdb 仍停留在其初始重置向量位置。
  5. 所以,我需要在打开 gdb 时稍作延迟。

如何做到这一点? 任何解决方案将不胜感激。

【问题讨论】:

  • gdb 命令python import time; time.sleep(0.01) 做你想做的事吗?
  • 谢谢,和c/c++中的sleep一样。

标签: c++ c debugging gdb


【解决方案1】:

另请参阅此帖子:How to use the sleep function in C

#ifdef _WIN32
#include <Windows.h>
#else
#include <unistd.h>
#endif
#include <stdio.h>

int main(void)
{
    printf("starting gdb");
    Sleep(5000);
    printf("resume program");
}

毫秒

为单位指定延迟

【讨论】:

  • 嗨@Anteino,感谢您提供宝贵的意见,无需添加睡眠或等待()?只在打开 gdb 时喜欢什么?或在 .gdbinit
  • 好吧,请告诉我你首先要做什么。我以为您想暂停程序,直到加载 gdb。你可以在我写printf("starting gdb");的那一行插入启动gdb的命令,然后程序将等待5000毫秒并继续。
  • 我想延迟不是来自 cpp,而是在打开 GDB 时,即当 gdb 调用它的 .gdbinit 文件时,它应该在几毫秒后打开。
  • 那么你是从命令行工作的吗?请向我们提供更多信息,了解您到底想要做什么。
  • 好吧,让我解释一下……我有一个 cpp,我从那里打开我的 gdb。打开 gdb 时,它会自动配置(从我的 .gdbinit 文件)本地主机设置以调试我的源。所以,当我的 gdb 打开时,我需要一个短暂的延迟。我不想在我的 cpp 中休眠或等待。我只是想,当我调用我的 gdb 时,它应该会延迟打开。