linux - 如何使用 GDB 提取结构成员的值
问题描述
假设我有一个内核结构struct thread_info
,我想使用 GDB 从 thread_info 结构中获取 preempt_count 变量的值。
我可以通过取消引用来获得以下信息thread_info
(gdb) p (struct thread_info *)0x8785A000
{task = 0x70617261, exec_domain = 0x6d657465, flags = 1920139264, tp_value = 4294967295, cpu = 4294967295, preempt_count = -1, addr_limit = {seg = 4294967295}, restart_block = {fn = 0xffffffff, {
futex = {uaddr = 0xffffffff, val = 4294967295, flags = 4294967295, bitset = 4294967295, time = 18446744073709551615, uaddr2 = 0xffffffff}, nanosleep = {clockid = -1, rmtp = 0xffffffff,
expires = 18446744073709551615}, poll = {ufds = 0xffffffff, nfds = -1, has_timeout = -1, tv_sec = 4294967295, tv_nsec = 4294967295}}}, regs = 0xffffffff}
现在,我想preempt_count
单独提取价值。如何使用 GDB 来实现。
解决方案
我想单独提取 preempt_count 值
这应该有效:
(gdb) p ((struct thread_info *)0x8785A000)->preempt_count
推荐阅读
- python - 如何在 Python 函数中使用 try-except 返回布尔值?
- android - 向约束布局添加圆角会留下白色背景
- android - 导航组件:如何从活动导航到片段
- scala - Scala Tour 隐式转换示例
- php - 当我尝试在 laravel 中使用播种机时如何解决问题?
- python - 如何在二维列表中查找重复项 - Python 3
- google-chrome-devtools - 如何浏览元素并查看其属性?
- node.js - sequelize 在有和没有缓存的情况下都很慢
- spring - 关于 Spring 4xx 版本的调度器
- node.js - Electron & React-BoilerPlate 白屏