在 gdb 调试中,有时候需要打印一些字符串。可以使用如下命令进行字符串的打印。如下:
x/s 命令
以下面代码为例,说明打印字符串的操作。代码如下:
- #include
-
- int main(void)
- {
- char buffer[100] = {0};
-
- snprintf(buffer, sizeof(buffer), "%s", "hello,world!");
- printf("***buffer: %s\n", buffer);
-
- return 0;
- }
下面打印 buffer 中的字符串,操作如下:
可以看到,当输入 x/s buffer 命令时,打印了数组 buffer 中的字符串。
在 gdb 调试中,有时候需要打印变量的类型,命令入下:
whatis 变量名 或 ptype 变量名
以下面代码为例,说明一下打印变量的类型操作,代码如下:
- #include
-
- struct student{
- char name[100];
- int age;
- };
-
- int main(void)
- {
- struct student st = {"Tom", 20};
-
- printf("***st.name: %s, st.age: %d\n", st.name, st.age);
-
- return 0;
- }
下面在 gdb 调试中,打印变量的类型。可以看到 whatis 命令与 ptype 命令都可以打印变量的类型,而 ptype 类型打印出了更详细的变量类型信息。
可以看到,查看 变量类型的命令 " whatis 变量名 " 或者 " ptype 变量名 " 的不同效果。