惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog RSS Feed
量子位
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
B
Blog
U
Unit 42
C
Check Point Blog
I
InfoQ
aimingoo的专栏
aimingoo的专栏
雷峰网
雷峰网
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 【当耐特】
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
H
Help Net Security
MongoDB | Blog
MongoDB | Blog
博客园 - Franky
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
Microsoft Azure Blog
Microsoft Azure Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
云风的 BLOG
云风的 BLOG
宝玉的分享
宝玉的分享
爱范儿
爱范儿

博客园 - midhillzhou

Windows中“无法成功完成操作,因为文件包含病毒或潜在的垃圾软件“ windows 11关闭防火墙 以使得 外部的开发板可以主动发起ping通电脑 uboot中调试景略以太网phy JL3111A2-NA windows上excel运行macro之后出现错误 在linux上移植sgdisk 在linux上移植phytool + 调试tja1103 以太网phy 在uboot中修改tja 1103以太网phy from slave to master porting perf性能观测工具 porting 开源memtester uboot 2020版本下gpio命令的使用 + linux下的libgpiod lib库的移植使用 ubi文件系统的 制作 + 挂载 + 若干问题 i2c指令使用 + 仿照开源i2ctransfer实现的自己的i2ctransfer windows下outlook 撤回邮件 安装repo 使用lauterbach debug uboot之重定位 uboot中各种memory读写命令 uboot nand flash dump 环境变量 + 制作环境变量分区 + 代码结构详解 uboot bootm代码详解图 Beyond Compare 进行二进制文档的比对时,怎么去对齐(转载) notepad++分析log小技巧 使用继电器控制开发板上下电 uboot debug小技巧
使用gdb调试user程序 之 某个线程的调用栈
midhillzhou · 2025-12-18 · via 博客园 - midhillzhou

1.首先使用ps -aux查看我们需要debug的程序的进程id

image

 2.使用 top -p 1167,然后按下"c",再按下“H”。或者直接运行top -p 1167 -cH

image

3.查看这个线程的状态

首先切换到目录 /proc/<线程id>

cd /proc/1377

通过cat status知道线程在sleeping状态

image

通过cat stack可以看到此时的内核的调用栈,原来是在wait。

不过只能看到内核态的调用栈,不能看到user态的调用栈,还是不能定位 我user的代码卡在哪里了。

image

 4.怎么查看user态的调用栈呢,使用gdb

attach 进程:gdb -p 1167

查看内部线程id: info thread

image

5.切换到内部线程id是6的那个线程,并查看backtrace

至此,用户态的调用栈也就知道了,下面再根据地址在unstrip的对应程序中找到对应的函数名

image

 6.使用addr2line查看在文件中的哪一行

image

 7.至此 可以看到 这个线程 卡在什么地方了。