Solaris GDB:如何暂停执行?

我正在使用GDB在Solaris 10 x86上调试一个封闭的源代码程序。

我将gdb附加到程序并继续执行,但是当我想稍后暂停执行以检查一些我不能使用的内存时。 当我按下CTRL-C时,它只打印^ C而不是暂停程序并将我放到(gdb)提示符下。

bash-3.00# gdb --pid=1521
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-pc-solaris2.10".
Attaching to process 1521
Retry #1:
Retry #2:
Retry #3:
Retry #4:
[New LWP 1]
0xfe3b5a23 in ?? ()
(gdb) c
Continuing.
^C^C^C^C^C^C^C^C

我如何返回到(gdb)提示符? 我做错了什么,或者我该如何去做这个工作。


刚刚找到了解决方法。 从另一个终端发出以下命令:

kill -INT 1521

GDB将在接收到SIGINT的调试程序时暂停执行。


这将是GDB中的一个错误。

如果您可以使用CVS Head的当前版本的GDB重现此问题,请提交错误。


当你使用Solaris时,我发现你使用的是bash,你可能没有正确设置你的终端,bash通常可以为你处理很多这样的事情,但是如果你使用的是ksh或其他东西,你的退格可能正在打印^ H而不是backspacing(在这种情况下,您需要stty擦除'^ H'...您始终可以用stty理智地设置您的控制台。

这里有一个可能的问题,这不是一个错误,因为你正在调试的应用程序正在重置你的termicon,我现在不在Solaris框中,但是GNU stty允许你做类似stty tostop的事情,

  • [ - ] tostop停止尝试写入终端的后台作业
  • 您也可以从另一个终端运行重置或tset并重新配置您的^ C

    从gdb中,你可以使用“tty”别名或设置inferior-tty / path / to /项

    Set terminal for future runs of program being debugged.
    Usage: set inferior-tty /dev/pts/1
    
    链接地址: http://www.djcxy.com/p/42383.html

    上一篇: Solaris GDB: Howto pause execution?

    下一篇: How can I make my simple .NET LRU cache faster?