使用GDB调试及Linux系统调用详解
1. 使用GDB进行调试示例
我们以low.c源代码为例,展示一个完整的调试会话。low.c是lowercase.c的一个版本,它使用Linux I/O系统调用read和write来执行I/O操作。以下是low.c的代码:
#include <unistd.h> #include <stdlib.h> #include <stdio.h> #include <ctype.h> #define MYBUFSIZ 1024 int main(int argc, char* argv[]) { char buffer[MYBUFSIZ]; void lower(char*, int); int nc; /* number of characters */ while ((nc = read(STDIN_FILENO, buffer, MYBUFSIZ)) > 0) { lower(buffer,nc); nc = write(STDOUT_FILENO, buffer, nc); if (nc == -1) break; } if (nc == -1) /* read or write failed */ { perro