作为一个使用printf来定位问题的嵌入式菜鸟,第一次使用gdb定位了一个问题,这里记录一下。
1. 出问题的源码
今天写代码时遇到了一个segmentation fault的问题。源代码如下,每秒读取一个文件,但是运行一段时间后出现了segmentation fault报错。担心问题不好复现,就尝试使用gdb来定位一下问题。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void read_version()
{
FILE *fp;
char line[10240];
fp = fopen("/proc/version", "r");
while(fgets(line, sizeof(line), fp) != NULL) {
printf("%s\n", line);
}
}
int main(int argc, char