C 二维数组调试¶
一维数组¶
一维数组在调试器中是可以直接显示的,本质上变量 x
是一个指针,指向数组对应的第一个元素
Output:
二维数组¶
二维数组具体实现我并不清楚,以前好像说过要尽量避免使用二维数组,坑比较多
一定要用的话,传参可以通过如下两种比较直观的方式
Output:
Text Only | |
---|---|
调试二维数组¶
二维数组本质上也是一个指针指向数组第一行的第一个元素,但是可能由于编译器编译时去掉了长度信息(或者本来就没有),所以需要在调试时手动指定如何读取该指针处的结构体
在这个例子里面使用 *(int(*)[3][4])A
这样的表达式来做一次转换就可以了
- Xcode > 调试开始后的变量窗口 > 右键 > Add Expression...
- VS Code > 调试开始后的变量窗口下方的Watch窗口 > 加号
lldb 调试过程¶
可以看到 用 frame variable A
只能看到第一行的数据,我们需要手动通过表达式做转化
References¶
- https://blog.csdn.net/weixin_42033845/article/details/107921889
- https://blog.csdn.net/Kobe51920/article/details/90739757
- https://github.com/Microsoft/vscode-cpptools/issues/172#issuecomment-280520910
- https://lldb.llvm.org/use/tutorial.html
- https://github.com/Yang-Xijie/C-Makefile-template