首页 文章

如何使用GDB调试从stdin获取用户输入的程序?

提问于
浏览
28

我有一个程序,我正在尝试使用gdb进行调试 . 在程序内部,我有方法要求用户使用stdin输入输入 . 当我在gdb中时,如何输入此输入?这样我就可以追踪我的方法是如何工作的?

3 回答

  • 2
    $ cat >foo <<EOF
    something
    EOF
    $ gdb -quiet /bin/cat
    Reading symbols from /bin/cat...(no debugging symbols found)...done.
    Missing separate debuginfos, use: debuginfo-install coreutils-8.12-7.fc16.x86_64
    (gdb) run <foo
    Starting program: /bin/cat <foo
    something
    [Inferior 1 (process 22436) exited normally]
    (gdb)
    
  • 0

    我昨天刚刚经历过这样的事情并在gdb中通过一堆“帮助”命令递归,因为我无法在互联网上找到我所需要的 .

    在我启动gdb并开始运行我的代码后,我使用了 set variable *your_variable* = *your desired input* . 工作就像一个魅力 .

    我知道这已经晚了,但也许它会帮助别人 .

  • 21

    您也可以先运行程序,然后将GDB附加到它:

    gdb --pid $(pgrep your_program)
    

    这样,您就可以在单独的终端中以交互方式运行程序 .

相关问题