1) VSCode 调试 C/C++ 代码时,如何显示动态分配的指针数组。
创建一个动态分配的一维数组:
int n = 10;
int *array = (int *)malloc(n*sizeof(int));
memset(array, 1, n*sizeof(int));
如果直接 Debug 时查看 array 指针,并不能看到数组所有的值。
查看 Debug 窗口,有一个 Watch(监视窗口)小窗口,可以添加想要查看的变量的值。
添加 *(int(*)[10])array 或 *array@10 后就可以查看 array 数组的所有值,也就是添加:
- *(type(*)[size])pointer, 其中 type 是数组类型,size 是数组长度,pointer 是分配空间的数组指针。该方法将指针强制转化为一个数组。
- *pointer@size,该方法同样可以查看数组的值。(这种方法比较简便,不容易出错。)
查看多维数组通项的公式为:
-
**...arr@...@size2@size1
-
*(type(*)[size1][size2][...])arr
//等效于arr[2][3][4]
int ***arr;
int m = 2, n = 3, t = 4;
if((m > 0) && (n > 0) && (t > 0))
{arr = (int***)malloc(sizeof(int)*m);for(i = 0;i < m;i++){arr[i] = (int**)malloc(sizeof(int)*n);for (k = 0;k < n;k++){arr[i][k] = (int*)malloc(sizeof(int)*t);}}
}
在窗口中添加 ***arr@2@3@4 和 *(int(*)[3][2][4])arr,就可以查看数组的值。
VSCode 调试时以 16 进制 (HEX) 查看变量
调试时 VSCode 变量值默认以 10 进制显示,如下图:
使用 "variable,x" 或者 "variable,h" 的格式就可以显示十六进制,不过貌似这种显示方式只支持 gdb C/C++ 语言调试,python 程序调试时亲测不可用。
我们将变量 vec 添加到监视,并编辑在 vec 后添加 h,即可查看 vec 的16进制数据,如下图:
同样的,添加 x 可以 16 进制显示,o 以 8 进制显示。
Does VS code have variable explorer object like we have it in spyder? - Stack Overflow
Working with Jupyter code cells in the Python Interactive window
VSCode如何在行内显示变量值_vscode变量窗口_CodingInCV的博客-CSDN博客
https://www.cnblogs.com/haoliuhust/p/17630701.html
VScode调试c代码时,如何显示动态分配的指针数组_vscode监视数组-CSDN博客
vscode调试时以16进制查看变量_vscode 16进制_虔诚的学习者的博客-CSDN博客
分享一些 VsCode 各场景相关的高级调试与使用技巧_前端达人的博客-CSDN博客
条件断点:在断点处右键点击,选择 "Edit Breakpoint",在弹出的窗口中勾选 "Condition" 并输入条件表达式,该断点只会在条件为真时被触发。
VScode调试C++代码时无法查看STL容器(string、vector等)_vs code无法打开string-CSDN博客