在LLDB调试中如何访问链表变量值及整数数组元素?
GDB调试查看链表与数组内容的方法
针对你用frame variable只看到内存地址的问题,用以下方法直接查看实际数据:
查看链表(t_stack类型指针)
- 解引用查看当前节点的结构体内容:
会直接输出frame variable *stack_astack_a指向的t_stack结构体所有成员的值,比如链表节点的val、next指针等。 - 查看完整链表(递归展开):
先取消元素显示数量限制:
再打印整个链表:set print elements 0
GDB会自动递归展开所有链表节点,直到遇到print *stack_aNULL。
查看整数数组(int*类型指针)
- 查看单个元素:
比如frame variable temp[索引值]temp[0]查看数组第一个元素,替换索引值即可查看对应位置。 - 查看连续N个元素:
比如frame variable temp[起始索引]@Ntemp[0]@5会显示数组从第一个元素开始的5个连续值。
实用调试设置
- 让结构体显示更美观:
set print pretty on - 自动解引用多层指针(适合链表):
之后用set print dereference-limit 2frame variable stack_a会自动解引用一次,直接显示结构体内容,不用手动加*。 - 自动跟踪显示变量:
执行以下命令后,每次单步调试(next/step)都会自动刷新显示指定内容:display *stack_a display temp[0]@5
内容的提问来源于stack exchange,提问作者jdagz
相关产品推荐
相关产品推荐

