使用attach命令调试线程

某deamo只能在运行时调试,通过GDB中的attach命令绑定线程,一切都OK了。

步骤如下:

1)确定线程号

我的process名为webproc,使用ps -eL显示线程

[[email protected] linux]$ ps -eL|grep webproc
29176 29176 pts/0    00:00:00 webproc
29176 29182 pts/0    00:00:00 webproc
29176 29183 pts/0    00:00:00 webproc
29176 29184 pts/0    00:00:00 webproc

此时我想要调试的线程为29184号

2)启动gdb,使用attach命令绑定线程。

(gdb) attach 29184
Attaching to process 29184

3)在绑定线程后,线程处在阻塞状态,此时就可以打断点了。

在打断点前先指定webproc的源代码文件位置。我的源代码放在了/home/syscom/jud/webproc/目录下。

dir /home/syscom/jud/webproc

注意:dir命令不能递归搜索源代码文件夹!必须是源代码的直接上层目录

4)输入"c"启动线程

当断点被触发时,即可单步调试了

时间: 2024-10-08 01:58:19

使用attach命令调试线程的相关文章

浏览器控制台命令调试——console

控制台命令调试时通过浏览器开发工具中的控制台命令嵌入到JavaScript中,输出特定的信息或日志,从而达到调试的目的. 我们常用的Chrome和FireFox,都可以通过F12来打开开发工具. 下面简要介绍几个常用的控制台命令: (1)常规信息输出 console.log()是我们最常用的命令,只需要将我们希望输出的内容传进入即可: console.log("这是我要输出的信息"); 除了console.log()命令外,我们还有其它三种命令: console.info("

九个console命令调试JS

下面九个console命令,可以帮助我们更方便地调试 常用的console命令,最常用的事console.log() 1 //常用的console命令,其中最常用的console.log() 2 console.log(12); 3 console.info('some information'); 4 console.error('error'); 5 console.warn('warn' console.dir()查看对象的属性和方法 1 //查看对象的相关信息 2 var objInfo

Linux-hexdump命令调试event驱动—详解(13)

hexdump: 查看文件的内容,比如二进制文件中包含的某些字符串,通常用来调试驱动用 1.调试 键盘驱动 讲解 当我们insmod挂载了键盘驱动后,找到键盘驱动被放在event1设备里, 此时没有按键按下,所以event1里面的数据是没有的,那么数据又是从来哪里来? 通过键盘驱动的read函数,若有按键按下,就会上传按键数据给用户层,此时的用户层就是hexdump 因为键盘驱动的input_handler 是:evdev_handler 所以键盘驱动的read函数是: evdev_handle

使用Console命令调试JS

一.console 的对象常用的方法 1.console.log(object[, object, ...])使用频率最高的一条语句:向控制台输出一条消息.支持 C 语言 printf 式的格式化输出.当然,也可以不使用格式化输出来达到同样的目的 2.console.debug(object[, object, ...])向控制台输出一条信息,它包括一个指向该行代码位置的超链接. 3.console.info(object[, object, ...])向控制台输出一条信息,该信息包含一个表示“

RoutedUICommand 路由命令调试

前端XAML代码: <Window x:Class="WpfApplication48.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/ex

PHP+Socket聊天室(telnet命令调试)

class socket { private $_socket; private $_domain = AF_INET; private $_type = SOCK_STREAM; private $_protocol = SOL_TCP; private $_clients = []; private $_max_clients = 10; public function __construct() { if (!extension_loaded('sockets')) { die('the

[skill][gdb] gdb 多线程调试

中文快速入门: http://coolshell.cn/articles/3643.html 进阶: 多线程怎么调试: 分 all-stop 和 non-stop 两个模式. all-stop 模式下,一个断点.所以线程全部终止运行. 使用 set non-stop on命令可以进入non-stop模式.其他线程不会受到一个线程停止的影响. 例如:non-stop模式下设置了一个中断: 其他线程正常运行. (gdb) info thread Id Target Id Frame 5 Thread

gdb调试命令

本篇摘自互联网,纯属自己学习笔记,然分享给看到我的博客的人们. 用GDB调试程序 GDB是一个强大的命令行调试工具.大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本.UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能. 于是UNIX下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更为强劲的功能.而Windows下的图形软件基本上是各自为营,

Windbg调试命令详解

发表于2013 年 8 月 23 日由张佩 转载注明>> [作者:张佩][原文:http://www.yiiyee.cn/Blog] 1. 概述 用户成功安装微软Windows调试工具集后,能够在安装目录下发现四个调试器程序,分别是:cdb.exe.ntsd.exe.kd.exe和Windbg.exe.其中cdb.exe和ntsd.exe只能调试用户程序,Kd.exe主要用于内核调试,有时候也用于用户态调试,上述三者的一个共同特点是,都只有控制台界面,以命令行形式工作. Windbg.exe在