gpt4 book ai didi

c - 使用 gdb 调试 ncurses 应用程序

转载 作者:太空狗 更新时间:2023-10-29 17:07:48 25 4
gpt4 key购买 nike

我正在尝试使用 gdb 调试我的 ncurses 应用程序。我使用 tty 命令将程序的 I/O 重定向到另一个终端。输出就像一个魅力,但我在输入方面遇到问题。我正在使用 getch() 函数来检索我的应用程序中的符号。因此,例如,如果我在我的 gdb session 中这样做:

tty /dev/pts/5

我在终端窗口 (gnome-terminal) 的另一个选项卡中获取输出。我的 gdb session 卡住了,等待输入,但是当我在我的/dev/pts/5 中按下任意键时,我将它打印出来,但应用程序本身并没有将它作为输入符号。在没有 gdb 的情况下运行时一切正常,我还使用了 noecho(),因此不应显示符号。所以有什么问题?是否有可能以某种方式处理来自重定向终端的输入?

最佳答案

您可以附加到您的进程以从不同的终端进行调试,而不是尝试从 gdb 中运行应用程序。

正常运行您的流程。当它因用户输入而被阻止时,找到它的进程 ID,然后从另一个窗口使用 gdb 附加到它:

gdb -p <PID>

您的问题是由于程序仍期望其交互式输入来自您的 gdb session 。

关于c - 使用 gdb 调试 ncurses 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11965328/

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