【问题标题】:start gdb using a pid使用 pid 启动 gdb
【发布时间】:2011-01-10 06:56:16
【问题描述】:

一般来说,我看到进程的pid 在后台运行并使用命令dbx -a <pid> 在该进程上启动dbx

同样,我如何使用 gdb 来做到这一点?

【问题讨论】:

    标签: c process gdb dbx


    【解决方案1】:

    除了前面的可以直接使用

    gdb -p <pid>
    

    【讨论】:

    • 这是正确答案。将 GDB 附加到 PID 不应以任何方式涉及指定可执行文件的路径。正确的解决方案应仅涉及 PID,不涉及其他任何内容。
    【解决方案2】:

    有两种方法。

    在命令行中,将 pid 作为参数包含在可执行文件名之后:

    gdb /path/to/prog PID
    

    在 gdb 中,您可以使用 attach 命令:

    gdb /path/to/prog
    gdb> attach PID
    

    虽然命令行上的指定更加简洁,但如果您有一个名称与 pid 相同的核心文件(即对于 pid 2345,核心文件必须是命名为“2345”)然后 gdb 将打开核心文件。诚然,这种情况发生的可能性微乎其微。

    【讨论】:

      【解决方案3】:

      来自 gdb 手册页:

      如果你想调试一个正在运行的进程,你可以指定一个进程 ID 作为第二个参数:

      gdb program 1234
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-04
        • 1970-01-01
        • 1970-01-01
        • 2015-04-29
        • 2017-03-06
        • 1970-01-01
        相关资源
        最近更新 更多