天泉证道

世事洞穿而寡言,名利看淡而重学

gdb学习15:退出函数,finish和return的区别

同样的操作, finish的结果: (gdb) info b Num Type Disp Enb Address What 1 breakpoint keep y 0x000055555555488f in main ...

2019-03-31 18:58:21

阅读数 318

评论数 0

gdb学习14:清除停止点

彻底清除停止点: (gdb) info break Num Type Disp Enb Address What 1 breakpoint keep y 0x00005555555548dc in main at s...

2019-03-31 13:29:24

阅读数 181

评论数 0

gdb学习13:设置观察点

观察点(watchpoint)和断点(breakpoint)类似,但是断点是程序运行前设置,观察点是运行中设置,而且只能是变量。 watch 观察到变量变化时,停止程序; rwatch 观察到变量被读时,停止程序; awatch 观察到变量被读或者被写时,停止程序。 越来越发现gdb非常强...

2019-03-31 13:13:52

阅读数 294

评论数 0

gdb学习12:设置断点的方法进一步学习

在源代码37行处设置断点 (gdb) break 37 Breakpoint 1 at 0x829: file strcopy.c, line 37. 在源代码34行处设置断点 (gdb) break 34 Breakpoint 2 at 0x810: file strcopy.c, line 3...

2019-03-31 12:58:25

阅读数 173

评论数 0

gdb学习11:启动时添加选项

具体需要添加什么选项,请看旁边解释。 gyz@debian:~/mc$ gdb --help This is the GNU debugger. Usage: gdb [options] [executable-file [core-file or process-id]] ...

2019-03-31 02:17:38

阅读数 231

评论数 0

gdb学习10:可以使用shell的部分命令

可以使用cd命令进行目录跳转; pwd查看当前路径; ls不能用,不过可以使用file命令,然后tab两下就可以补全了。 (gdb) cd . Working directory /home/gyz/mc. (gdb) ls Undefined command: "ls"...

2019-03-31 01:59:00

阅读数 234

评论数 0

gdb学习9:将调试程序挂载到已经开始的进程

如下,是个小测试: 1,gdb开始调试一个程序; 2,ps all查看要挂载的程序的pid; 3,用attach pid去挂载; 4,至于这个卸载命令detach应该是有点问题。 参考:https://blog.csdn.net/dadalan/article/details/375...

2019-03-31 01:53:23

阅读数 294

评论数 0

gdb学习8:设置程序运行时的参数

用到两个命令:set和show。 set命令,tab键两下,如下: (gdb) set Display all 131 possibilities? (y or n) ada may-insert-breakpoints agent...

2019-03-31 01:28:37

阅读数 63

评论数 0

gdb学习7:自动补全命令和函数名

之前的学习,都是用某个命令的简写,比如break用b,run用r等等,入门阶段,如果跟着别人用简写不知道是什么意思,记忆起来不会那么好。 在linux的终端上,我们经常用两次tab键补全命令或者文件名,在gdb调试工具里也是,如下: (gdb) l layout list load ...

2019-03-31 01:15:43

阅读数 239

评论数 0

gdb学习6:给函数名设置断点

gdb真的是调试代码的神器,不但可以给代码行设置断点,也可以给函数名设置断点。 代码: #include <stdio.h> #include <stdlib.h> #include <string.h> ...

2019-03-31 01:03:59

阅读数 124

评论数 0

gdb学习5:打印函数堆栈和退出函数

代码: #include <stdio.h> #include <stdlib.h> #include <string.h> char *MyStrCopy1(const char *s1) { if(NU...

2019-03-30 21:39:38

阅读数 247

评论数 0

gdb学习4:进入函数和打印变量信息

代码: #include <stdio.h> #include <stdlib.h> #include <string.h> char *MyStrCopy1(const char *s1) { if(NU...

2019-03-30 21:27:41

阅读数 275

评论数 0

gdb学习3:用gdb的图形界面打开文件

相比前两种方式,我觉得gdb的图形界面做的不好。 代码: #include <stdio.h> #include <stdlib.h> #include <string.h> char *MyStrCopy...

2019-03-29 16:58:14

阅读数 193

评论数 0

gdb学习2:另一种打开可执行文件的方法

比起上篇博文用file的方法,这篇博文(初识gdb)的方法会更加常用一点。 程序: #include <stdio.h> #include <stdlib.h> #include <string.h> ch...

2019-03-29 16:33:27

阅读数 217

评论数 0

gdb学习1:初识gdb

(为了看起来比较舒服,罗里吧嗦的东西,我就不往上面粘贴了,以后都是这样,不再解释) gdb是linux上的调试工具,功能非常强大,我这里是debian9.8,默认是没有安装gdb的,所以要先安装: gyz@debian:~/mc$ sudo apt-get install gdb 先写个...

2019-03-29 16:27:04

阅读数 195

评论数 0

shell学习32:自动添加前面注释信息

详细的,至于内容是什么意思,请参阅我的博文(vim F7添加作者信息,文件修改完更改最后时间)。 只需要在~/.vimrc里面添加下面这几句,保存关闭。 新建一个.sh文件,然后按F7就可以出现: ...

2019-03-27 12:04:42

阅读数 466

评论数 0

shell学习31:脚本递归调用

递归,就是自身调用自身。 脚本,打印函数名: 1 #!/bin/bash 2 # 3 function Fun() 4 { 5 echo "function name:$FUNCNAME" 6 Fun 7 } 8 Fun ...

2019-03-27 11:46:26

阅读数 462

评论数 0

shell学习30:if判断中各种(-a到-z)选项的意思

转载自:https://www.cnblogs.com/liupuLearning/p/6206415.html [ -a FILE ] 如果 FILE 存在则为真。 [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。 [ -c FILE ] 如果 FILE...

2019-03-27 11:33:00

阅读数 529

评论数 0

shell学习29:子shell

这个和父子进程有点类似,在某种程度上可以提高工作效率。 可以有多个子shell,但子shell里面的变量,父shell是用不到的,比如下面这个例子,子shell的x,父shell打印不出来(代码1),如果有相同的变量,各自用各自的,但是要尽量避免用相同的变量名,这个是子shell的一个缺陷。 ...

2019-03-27 11:27:00

阅读数 475

评论数 0

shell学习28:单项选择框,使用dialog

没有dialog的,sudo apt-get install dialog安装一个。 代码如下: 1 #!/bin/bash 2 # 3 TMP="/tmp/radiolist.$$" 4 subject="choose filesystem t...

2019-03-26 20:50:00

阅读数 525

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭