程序员调试工具全解析
1. 调试基础案例分析
在调试过程中,我们可能会遇到各种问题。比如下面这段代码:
(gdb) list
15 FloatImage outimage;
16 BinaryImage binimage;
17 int i,j;
18
19 inimage = (FloatImage)imLoadF(IMAGE_FLOAT,stdin);
20 outimage = laplacian_float(inimage);
21
22 binimage = marr_hildreth(outimage);
23 if (binimage == NULL) {
24 fprintf(stderr,"trymh: binimage returned NULL\n");
当我们使用 (gdb) print inimage 命令时,得到 $6 = (struct {...} *) 0x0 ,这表明 inimage 变量为 null 。将空指针传递给图像操作例程会导致核心转储。原因是 imLoadF 函数在失败时会返回 NULL ,而我们在将其传递给 laplacian_float 之前没有检查返回值。解决办法是插入代码,当 <
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



