命令作用print *array@10打印从数组开头连续10个元素的值print array[60]@10打印array数组下标从60开始的10个元素,即第60~69个元素set print array-indexes on打印数组元素时,同时打印数组的下标 打印指针 命令作用print ptr查看该指针指向的类型及指针地址print *(struct xxx *)ptr查看指向的结构体的内容 打印指定...
1, 2000); if (ret < 0) { // error return; } else if (ret == 0) { // timeout printf("timeout!\n"); } else { // to do something you want char buf[1024]; read(0, buf, sizeof(buf
set print array-indexes on 打印数组元素时,同时打印数组的下标 打印指针 命令 作用 print ptr 查看该指针指向的类型及指针地址 print *(struct xxx *)ptr 查看指向的结构体的内容 打印指定内存地址的值 使用x命令来打印内存的值,格式为x/nfu addr,以f格式打印从addr开始的n个长度单元为u的内存值。 n:输出单...
--*(char*)&p: p是函数指针, &p 是指向函数指针的指针, (char*)&p 将 指向函数指针的指针 类型改为 char*, *(char)&p 就是 取出转换类型的函数指针, 这个是已经转换好类型的函数指针; --(char)fun: 将fun函数的 函数指针转换为 char 类型, 函数的入口地址转换为 char 类型; --*(char*)&p = ...
1 breakpoint keep y 0x0040104f in main at printch.cpp:27 2 breakpoint keep y 0x004010a7 in main at printch.cpp:35 删除断点。 例子。删除第 35 行的断点。 (gdb)delete2 运行被调试的程序 启动正在调试的程序。 示例1. 程序是 printch,它可以采用可选的命令行参数。在没有命令行参数的情况下...
是指在使用gdb调试程序时,通过执行exec命令获取程序的返回值。 gdb是一款功能强大的调试工具,可以用于调试各种编程语言的程序。在调试过程中,我们经常需要获取程序的返回值来判断程序的执行结果或者进行后续的处理。 要从gdb exec获取返回,可以按照以下步骤操作: ...
type = char * 对于第一次调试别人的代码,或者面对的是一个异常复杂的系统时,“whatis”命令的作用不容忽视。 单步执行 为了单步跟踪代码,可以使用单步跟踪命令“step”,它每次执行源代码中的一行。 在GDB中可以使用许多方法来简化操作,除了可以将“step”命令简化为“s”之外,还可以直接输入回车键来重复执行前面一...
(gdb) print x $3 = 10 (gdb) print ptr $4 = (int *) 0x7fffffffe424 (gdb) 1. 2. 3. 4. 5. 6. 7. 8. 多线程 为了方便进行演示,我们创建一个简单的例子,代码如下: #include <chrono> #include <iostream> #include <string>
上面提到的这种用于单元测试的方法,同样也可以用来深度调试Nginx内部逻辑,而且Nginx很多的基础实现(比如slab机制、红黑树、chain链、array数组等)都比较独立,要调试它们只需提供少量的桩代码即可。以Nginx的slab机制为例,我们通过下面所提供的这些桩代码即可调试该功能的具体实现。Nginx的slab机制用于对多进程共享内存的...
命令行参数 : 有两个参数 int argc 和 char **argv; --argc : 标示输入的参数个数, 注意命令本身也是参数; -- argv: 指向 字符串数组的指针, 每个字符串是一个参数; --约定 : argv[0] 是 程序名称, argc 的最小值是1, 如果argc 是1, 那么说明 命令后面没有参数;...