Solaris GDB:如何暂停执行?

时间:2009-03-05 13:47:38

标签: debugging gdb solaris

我正在使用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)提示符?我做错了什么,或者我怎样才能让它发挥作用。

3 个答案:

答案 0 :(得分:4)

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

kill -INT 1521

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

答案 1 :(得分:0)

这将是GDB中的一个错误。

如果您可以使用CVS Head的当前版本的GDB重现此内容,请提交bug

答案 2 :(得分:0)

当你使用Solaris时,我发现你正在使用bash,你可能没有正确设置你的终端,bash经常可以为你处理很多这个,但如果你在ksh或其他东西,你的退格可能是打印^ H而不是退格(在这种情况下你需要stty erase'^ H'......你总是可以设置你的控制台。#/ p>

这里可能存在的问题,不是错误,是你正在调试的应用程序,正在重置你的期刊,我现在不在Solaris机器上,但是GNU stty允许你做像stty这样的事情tostop,

  
      
  • [ - ] TOSTOP             停止尝试写入终端的后台作业
  •   

您也可以从其他终端运行reset或tset并重新配置^ C

从gdb内部,您可以使用“tty”别名或设置inferior-tty / path / to / term

Set terminal for future runs of program being debugged.
Usage: set inferior-tty /dev/pts/1