linux下实现简易shell
Posted wangyubjhd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下实现简易shell相关的知识,希望对你有一定的参考价值。
GDB是GNU项目调试器,支持C、C++、Go、Fortran、Object-C、Assembly等。能够暂停程序运行,调试程序(包括本地调试、远程调试),如何远程调试我将在之后的文章中写道,本篇只讨论基本用法。
首先准备gdb调试环境:-g参数
$ gcc -g *.c $ ls a.out a.out.dSYM
-g参数让编译器在生成可执行文件a.out时加入调试信息(在a.out.dSYM目录下)
启动gdb
$ gdb a.out GNU gdb (GDB) 8.0.1 Copyright (C) 2017 Free Software Foundation, Inc. ... (gdb)
现在我们进入了gdb的调试界面
熟悉几个基本命令:
- l 列出附近10行代
- b [n] 设置断点在第几行(也可写函数名)
- r 开始调试
- n 执行下一行
- c 执行到下一断点
- q 退出gdb
- p [argv] 打印参数
- s 进入函数
- watch [v] 观察变量变化
下面有一段程序
main.c
1 #include <stdio.h> 2 #include "func.h" 3 4 int main() 5 { 6 char str[] = "This is a test."; // line 6 7 int len = myStrlen(str); 8 printf("len:%d ", len); 9 10 return 0; 11 }
func.c
1 int myStrlen(const char *str) 2 { 3 int len = 0; 4 const char *p = str; 5 while (*p != ‘