⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000012.htm

📁 一份很好的linux入门资料
💻 HTM
字号:
<HTML><HEAD>  <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人:&nbsp;TJB&nbsp;(老六),&nbsp;信区:&nbsp;Linux&nbsp;<BR>标&nbsp;&nbsp;题:&nbsp;GDB&nbsp;(7)&nbsp;Part&nbsp;Two&nbsp;<BR>发信站:&nbsp;BBS&nbsp;水木调试站&nbsp;(Wed&nbsp;Jun&nbsp;&nbsp;3&nbsp;08:41:18&nbsp;1998)&nbsp;<BR>&nbsp;<BR>发信人:&nbsp;System_<A HREF="mailto:Killer@bbs.ustc.edu.cn">Killer@bbs.ustc.edu.cn</A>&nbsp;(大家一起来发呆),&nbsp;信区:&nbsp;Linux&nbsp;<BR>标&nbsp;&nbsp;题:&nbsp;gdb(七)&nbsp;<BR>发信站:&nbsp;中国科大BBS站&nbsp;(Fri&nbsp;Apr&nbsp;10&nbsp;00:19:22&nbsp;1998)&nbsp;<BR>转信站:&nbsp;SwordHouse!linux.ustc.edu.cn!ustcnews!ustcbbs&nbsp;<BR>&nbsp;<BR>`thread&nbsp;THREADNO'&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;把线程号为THREADNO的线程设为当前线程。命令行参数THREADNO是gdb内定的&nbsp;<BR>线程号。你可以用'info&nbsp;threads'命令来查看gdb内设置的线程号。gdb显示该线程&nbsp;<BR>的系统定义的标识号和线程对应的堆栈。比如:&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(gdb)&nbsp;thread&nbsp;2&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Switching&nbsp;to&nbsp;process&nbsp;35&nbsp;thread&nbsp;23]&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x34e5&nbsp;in&nbsp;sigpause&nbsp;()&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Switching后的内容取决于你的操作系统对线程标识的定义。&nbsp;<BR>&nbsp;<BR>`thread&nbsp;apply&nbsp;[THREADNO]&nbsp;[ALL]&nbsp;&nbsp;ARGS'&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;此命令让你对一个以上的线程发出相同的命令&quot;ARGS&quot;,[THREADNO]的含义同上。&nbsp;<BR>如果你要向你进程中的所有的线程发出命令使用[ALL]选项。&nbsp;<BR>&nbsp;&nbsp;&nbsp;无论gdb何时中断了你的程序(因为一个断点或是一个信号),它自动选择信号或&nbsp;<BR>断点发生的线程为当前线程。gdb将用一个格式为'[Switching&nbsp;to&nbsp;SYSTAG]'的消息&nbsp;<BR>来向你报告。&nbsp;<BR>&nbsp;&nbsp;&nbsp;*参见:运行和停止多线程程序。&nbsp;<BR>&nbsp;&nbsp;&nbsp;*参见:设置观察点&nbsp;<BR>&nbsp;<BR>调试多进程的程序&nbsp;<BR>==========================================&nbsp;<BR>&nbsp;&nbsp;&nbsp;gdb对调试使用'fork'系统调用产生新进程的程序没有很多支持。当一个程序开始&nbsp;<BR>一个新进程时,gdb将继续对父进程进行调试,子进程将不受影响的运行。如果你在子&nbsp;<BR>进程可能会执行到的地方设了断点,那么子进程将收到'SIGTRAP'信号,如果子进程没&nbsp;<BR>有对这个信号进行处理的话那么缺省的处理就是使子进程终止。&nbsp;<BR>&nbsp;&nbsp;&nbsp;然而,如果你要一定要调试子进程的话,这儿有一个不是很麻烦的折衷的办法。在&nbsp;<BR>子进程被运行起来的开头几句语句前加上一个'sleep'命令。这在调试过程中并不会引&nbsp;<BR>起程序中很大的麻烦(不过你要自己注意例外的情况幺:-))。然后再使用'ps'命令列出&nbsp;<BR>新开的子进程号,最后使用'attach'命令。这样就没有问题了。&nbsp;<BR>&nbsp;&nbsp;关于这一段,本人觉得实际使用上并不全是这样。我在调试程中就试过,好象不一定&nbsp;<BR>能起作用,要看gdb的版本和你所使用的操作系统了。&nbsp;<BR>&nbsp;<BR>--&nbsp;<BR>※&nbsp;来源:&nbsp;中国科大BBS站&nbsp;[bbs.ustc.edu.cn]&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;按任何键继续&nbsp;..&nbsp;<BR>&nbsp;<BR>--&nbsp;<BR>※&nbsp;来源:·BBS&nbsp;水木调试站&nbsp;Leeward.lib.tsinghua.edu.cn·[FROM:&nbsp;202.200.37.100]&nbsp;<BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -