GDB编辑及搜索源码
发布时间:2022-07-11 12:24 所属栏目:51 来源:互联网
导读:本节主要讲解的是在 GDB 内对源文件中的代码进行修改和查找,分别对应 GDB 中的 edit 命令和 search 命令,下面是对这两个命令的详细介绍。 GDB edit命令:编辑文件 在 GDB 中编辑源文件中使用 edit 命令,该命令的语法格式如下: (gdb) edit [location] (gd
本节主要讲解的是在 GDB 内对源文件中的代码进行修改和查找,分别对应 GDB 中的 edit 命令和 search 命令,下面是对这两个命令的详细介绍。 GDB edit命令:编辑文件 在 GDB 中编辑源文件中使用 edit 命令,该命令的语法格式如下: (gdb) edit [location] (gdb) edit [filename] : [location] location 表示程序中的位置。这个命令表示激活文件的指定位置,然后进行编辑。 举个例子: (gdb) edit 16 //表示激活文件中的第16 行的代码(光标定位到第 16 行代码的开头位置) (gdb) edit func //表示激活文件中的 func 处的代码(光标定位到 func 函数所在行的开头位置) (gdb) edit test.c : 16 //表示激活 test.c 文件的第16 行。 在调试文件时,某些时候可能会去找寻找某一行或者是某一部分的代码。可以使用 list 显示全部的源码,然后进行查看。当源文件的代码量较少时,我们可以使用这种方式搜索。如果源文件的代码量很大,使用这种方式寻找效率会很低。所以 GDB 中提供了相关的源代码搜索的的 search 命令。 search 命令的语法格式为: search <regexp> reverse-search <regexp> 第一项命令格式表示从当前行的开始向前搜索,后一项表示从当前行开始向后搜索。其中 regexp 就是正则表达式,正则表达式描述了一种字符串匹配的模式,可以用来检查一个串中是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串。很多的编程语言都支持使用正则表达式。 使用命令时可能会下面的情况: (gdb) search func Expression not found 表示搜索的范围没有出现要寻找的字符串或者定位到了代码行的末尾。 (编辑:ASP站长网) |
相关内容
网友评论
推荐文章
热点阅读