首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在我的GDB二进制文件中,"info函数“给出了很多不需要的函数名。

在您的GDB二进制文件中,"info函数"给出了很多不需要的函数名。为了解决这个问题,您可以使用以下方法:

  1. 函数过滤:GDB提供了过滤函数的选项,您可以使用命令set print inferior-events off来关闭不需要的函数名显示。这样,当您使用"info函数"命令时,只会显示与程序执行相关的函数。
  2. 调试符号优化:在编译您的二进制文件时,可以使用优化选项来减少生成的调试符号。例如,使用GCC编译器时,可以使用-O2-O3选项来进行优化。这样可以减少不必要的函数名和调试信息。
  3. 使用GDB脚本:您可以编写一个GDB脚本来过滤不需要的函数名。例如,您可以编写一个脚本来解析"info函数"命令的输出,并根据您的需求过滤掉不需要的函数名。
  4. 使用GDB插件:有一些第三方的GDB插件可以帮助您更好地管理和过滤函数名。例如,GDB Dashboard是一个流行的插件,它提供了一个可定制的仪表盘界面,可以显示您感兴趣的信息。

总结起来,通过函数过滤、调试符号优化、编写脚本或使用插件等方法,您可以在GDB中过滤掉不需要的函数名,从而更好地进行调试和分析。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux:开发工具(3)

给你们提供保存之前版本服务”,于是乎很多同学开始加你微信,然后你就开始李四、王五、赵六……分别建了目录,他们会将旧版本发给你保存,然后当他们需要时候,找到你就可以找到之前版本了。...那我能不能写一些软件来自动化这些无聊繁琐工作??于是乎你写出了两个软件,一个是服务端负责版本管理,另一个是客户端负责用户查看。...gdb 安装gdb:yum install gdb 程序发布方式有两种,debug模式和release模式 Linux gcc/g++出来二进制程序,默认是release模式 要使用gdb调试...命令:gdb 可执行程序   1、有关代码展示 list(l) 行号:显示binFile源代码,接着上次位置往下列,每次列10行。 list(l) 函数名:列出某个函数源代码。  ...:把函数当成一个语句(逐过程) s或step:不会跳过代码块(逐语句)  3、有关断点 break(b) 行号:某一行设置断点 break(b) 函数名某个函数开头设置断点 info

5610

Linux调试器-gdb使用

回答:一款软件发布前肯定需要开发,公司立项后就会搭建团队开发,开发过程中肯定会遇到各种各样问题,为了找出程序问题,就需要进行调试,也就是说可执行程序要传值调试信息来帮助程序员来发现问题,成功解决完所有问题后...调试过程可以看到代码。 打断点。 局部调试。 可以看到局部变量信息。 可以看到函数调用堆栈。 可以逐语句调试。 可以逐过程调试。 下面正式开始Linux调试。...打断点:b + 行号/函数名/file:行号:对指定位置打断点 b line 察看所打断点:info b:查看我们所打的断点 info b 能打断点,当然也要能删除断点。...gdb指令汇总: list/l 行号:显示binFile源代码,接着上次位置往下列,每次列10行。 list/l 函数名:列出某个函数源代码。 r或run:运行程序。...s或step:进入函数调用 break(b) 行号:某一行设置断点 break 函数名某个函数开头设置断点 info break :查看断点信息。

9010
  • Linux基础——Linux开发工具()_gccg++

    函数函数库一般分为静态库和动态库两种: 静态库是指编译链接时,把库文件代码全部加入到可执行文件,因此生成文件比较大,但在运行时也 就不再需要库文件了。...其后缀名一般为.a 动态库与之相反,在编译链接时并没有把库文件代码加入到可执行文件,而是程序执行时由运行时 链接文件加载库,这样可以节省系统开销。...-static 下面大家列举出了gcc常用选项 4....我们想进入gdb模式,我们可以: 指令:gdb 文件名 我们想退出gdb模式,我们可以: 指令:ctrl + d 或 quit 下面大家介绍一下常用gdb指令: 调试: r或run:...info/i locals:查看当前栈帧当中局部变量值 断点: break/b n:第n行设置断点 break 函数名某个函数开头设置断点 info break/b:查看已打断点信息

    15910

    Linux开发工具——gdb

    为了能够控制源码生成二进制程序时候加上-g选项,我们可以makefile文件中进行操作:   我们windows写代码时,调试工具大家多多少少也都用过,但是为什么还分为debug版本和release...开始使用   我们有了带调试信息可执行程序之后,使用 gdb mybin,进入到调试页面:   当我们看到这样页面,就说明你已经开始调试了,下面来一一介绍gdb对应指令功能。...用法: l 行号或 l 函数名 测试用例:   为什么使用list 3不是从第三行开始?这是因为gdblist行为是 将要显示行放在比较靠中间位置,而不是从所输入行开始显示。...breakpoint(或b)命令 作用: 某一行或者某个函数设置断点。 用法: b 行号或b 函数名或b 文件名:行号 info 命令 作用: 查看断点信息。...如果运行时经过断点,那么info b时候,就会显示命中次数:   vs,我们有单步调试逐语句和逐过程快捷键:   那么Linux下gdb调试工具单步调试就是: next(或n)命令 作用

    20910

    GDB入门教程之如何使用GDB启动调试

    不管如何,也算是自己知识沉淀吧~ 把公众号改名了,你们猜猜新名字是啥?...要使得 C 和 C++ 程序能在 GDB 下正常进行调试,必须在程序编译期间把基本调试信息(如变量名、函数名函数调用堆栈等)添加到可执行文件。...当使用GDB加载不包含调试信息二进制文件或进程时,GDB终端会提示错误信息:"no debugging symbols found"。...一、GDB调试未执行程序 对于本地某个二进制文件 demo ( GDB 也支持远程调试),若其启动时不需要命令行参数,则可以shell下使用命令 gdb demo 进入 GDB,并输入 run (缩写形式...对于使用多线程模式进程,可以 GDB 中使用 info threads 命令显示当前进程中所有线程基本调试信息,包括:GDB 分配线程ID、线程堆栈等。

    4.3K10

    GDB那些奇淫技巧

    噢,断点都打不上,理由很简单,因为不同进程之间虚拟地址空间都不一样。 另外一个回答说了,虽然不能断指定地址,但我们可以break main,告诉 gdb 把断点设置 main 函数。...这也是用了很久一个方法,不过后来知道了有更官方解决方式: set follow-fork-mode child catch exec 囧,…… Catch Point真是个好东西,支持很多有用事件...,文末附录也列举了一些比较常用命令。...删除行号断点 clear basic.c:101 删除文件名和行号断点 clear basic.c:main 删除文件名和函数名断点 clear *0x00400448 删除内存地址断点...info display 显示监视表达式 show values 查看记录到打印历史变量值 (gdb 4.0) info history 查看打印历史帮助 (gdb 3.5) 文件操作

    1.2K20

    【Linux】调试器-gdb使用

    一、背景 程序发布方式有两种,debug模式和release模式 Linux gcc/g++出来二进制程序,默认是release模式 要使用gdb调试,必须在源代码生成二进制程序时候, 加上 -g...选项  当我们不加 -g 选项时候,我们生成可执行文件相关符号表是没有debug信息。...---- 二、使用 指令合集:  list(l) 行号:显示binFile源代码,接着上次位置往下列,每次列10行。 list(l)函数名:列出某个函数源代码。...step(s):进入函数调用 break(b) 行号:某一行设置断点 break 函数名某个函数开头设置断点 info break :查看断点信息。...info(i) locals:查看当前栈帧局部变量值 quit:退出gdb 我们输入: gdb + 生成可执行文件  来进行调试 进入之后我们查看代码输入:list 或者 l ,但此时是从后面代码开始查看

    3.2K50

    Linuxgdb调试

    Linuxgcc/g++出来二进制程序,默认是release模式。 所以我们需要在gcc/g++过程需要加上一些指令。...可是对于普通用户来说的话并不需要这些功能,这样的话也就导致,Release版本本身大小就会比Debug版本小很多。用户只需要能够运行就行了,没必要去调试。...4、使用gdb调试命令 gdb (需要调试文件):gdb使用方法 //gdb情况之下命令 list:查看源文件(可简写为 l ) l n:l是list缩写,n代表是查看第几行 l (文件名)...(Enter):按回车 l (函数名):能够直接定位到函数定义部分,展示文中内容 其实想看到全文内容也很简单,直接l 0,然后按回车键直到结尾就行 Windows之下vscode,存在着F5...b n:第n行打断点 b (文件):n :指定文件第n行打断点 b (函数名):函数内部第一行打上断点 那我们怎么能够看得出来在哪里打的断点呢?

    13510

    【linux】gdb

    01.gdb使用 程序发布方式有两种,debug模式和release模式 Linux gcc/g++出来二进制程序,默认是release模式 要使用gdb调试,必须在源代码生成二进制程序时候, 加上...通过这个命令,你可以查看包含在 ELF 文件不同节(section),这些节可能包括代码段、数据段、符号表、字符串表等 #include int AddToTarget(int a...list/l: l文件名:行号/函数名,I行号/函数名 list/l 函数名:列出某个函数源代码。 r或run:运行程序。...break(b) 行号:某一行设置断点 break 函数名某个函数开头设置断点 info break ( i b ):查看断点信息。...until X行号:跳至X行 breaktrace(或bt):查看各级函数调用及参数 info(i) locals:查看当前栈帧局部变量值 quit:退出gdb

    10010

    【Linux】深度解析与实战应用:GCCG++编译器入门指南

    函数库 我们C程序,并没有定义“printf”函数实现,且预编译包含“stdio.h”也只有该函数声明,而没有定义函数实现,那么,是在哪里实“printf”函数呢?...Debug模式下,编译器会生成包含大量调试信息二进制文件,这些调试信息包括源代码行号、变量名、函数名等,这些信息对于使用调试器(如GDB)来跟踪程序执行、检查变量值、设置断点等非常有用。...例如,程序第10行设置断点: (gdb) b 10 或者,如果知道函数名,也可以直接在函数处设置断点: (gdb) break main 查看断点 使用info breakpoints命令这是查看断点信息最直接方式...GDB命令行输入info breakpoints(或简写为info b),GDB会列出所有已设置断点信息,包括断点编号、类型、是否启用、地址以及断点所在源代码位置等。...list/l 函数名:列出某个函数源代码。 退出GDB 使用quit(简写为q)命令退出GDB。 【GDB高级技巧】 条件断点 可以设置仅在特定条件下触发断点。

    13410

    【调试】GDB使用总结

    \n", ptr, *ptr); print(x, ptr); return 0; } 设置断点 可以函数名和行号等上设置断点。程序运行后,到达断点就会自动暂停运行。...格式 break 函数名 break 行号 break 文件名:行号 break 文件名:函数名 break + 偏移量 break - 偏移量 break * 地址 举例 (gdb) b print...o 显示为八进制数 t 显示为二进制数 a 地址 c 显示为ascii f 浮点小数 s 显示为字符串 i 显示为机器语言(仅在显示内存x命令可用) 显示内存 x命令可以显示内存内容 格式 x...Saved corefile core.2380 有了内核转储文件,即使退出了GDB也能查看生成转储文件运行历史。...、 删除断点或禁用断点 clear clear 函数名 clear 行号 clear 文件名:行号 clear 文件名:函数名 delete [breakpoints] 断点编号 clear 用于删除已定义断点

    1.5K20

    初识Linux · 有关gdb

    linux,gcc/g++编译代码默认是以release进行编译,那么我们如何切换到debug模式呢?...首先进入调试很简单,就是gdb + 可执行文件。但是前提是已经用gcc -g生成了二进制调试文件,此时才可以使用gdb进行调试。...还可以l 文件名:函数名,直接打印函数,也可以直接l 函数名: 好了,现在可以看到代码了,那么下一步是,如何打断点?...打断点用到命令是Breakpoint,简称b,对应操作有b 文件名:函数名/行号,或者直接b 函数名/行号: 那么断点就打好了,VS里面,断点很显眼来了个大红点,但是Linux打了断点我们应该如何查看呢...此时就要info (信息),简称为i,i b即可: 但是呢,因为主函数本质是代码块,所以打在主函数断点就是打在主函数第一条可执行语句上,所以有两个会重复。 那么断点有了,我们如何删除呢?

    6410

    【探索 GDB 和 CGDB】:强大调试工具介绍

    CGDB 提供了更加直观视图和界面,使得调试过程更为高效。 1.2 两者各自功能 【GDB 主要功能】 启动程序:可以 GDB 启动程序,设置参数和环境变量。...上面的test.r 和 test.d 调式版本只是大家看一下,下面我们不做过多区分,统一用 test 可执行文件来替代。...调式指令 3.1 指令集 gdb binFile 退出: ctrl + d 或 quit 调试命令: 指令名 作用 l(list) 行号/函数名 显示对应code,每次10行 r(run) F5【无断点直接运行...、有断点从第一个断点处开始运行】 b(breakpoint) + 行号 在哪一行打断点 b 源文件函数名 函数第一行打上断点 b 源文件:行号 该源文件这行加上一个断点 info b 查看断点信息...已有断点追加 新增:b 行号/文件名:行号/函数名 if i == 30 (条件) 已有断点追加:condition 2 i == 30, 其中 2 是已有断点编号,没有if 在此其他指令我们就不过多讲解

    11210

    GDB调试指南-变量查看

    前言 启动调试以及设置断点之后,就到了我们非常关键一步-查看变量。GDB调试最大目的之一就是走查代码,查看运行结果是否符合预期。...准备工作 查看变量之前,需要先启动调试并设置断点,该部分内容可参考《GDB调试指南-启动调试》和《GDB调试指南-断点设置》。后面的内容都基于某个位置已经断住。..." (gdb) 当然有时候,多个函数或者多个文件会有同一个变量名,这个时候可以在前面加上文件名或者函数名来区分: (gdb) p 'testGdb.h'::a $1 = 11 (gdb) p 'main...'::b $2 = {1, 2, 3, 5} (gdb) 这里所打印a值是我们定义testGdb.h文件,而b值是main函数b。...查看内存内容 examine(简写为x)可以用来查看内存地址值。

    2.6K10

    【Linux】开始使用gdb吧!

    2 开始使用 首先进入gdb直接使用:gdb 文件名 接下来直接给出 gdb 所有功能命令(注意简写形式,会经常使用): list /l 行号:显示指定行号附近源代码,每次显示10行,从当前光标位置向下滚动...相当于 F9 break 函数名指定函数开头设置断点。 info break:显示所有断点信息。 finish:执行当前函数剩余部分,直到函数返回,然后暂停程序。...ignore:忽略特定断点。例如,ignore 1 main 会让断点1函数上失效 info(或i) breakpoints:显示当前设置所有断点。...info(i) locals:显示当前函数栈帧中局部变量值。 quit:退出GDB。...这是因为 gdb操作应该是编译后文件 当编译时,未加 - g 选项,则进入gdb环境执行命令会出现No symbol table is loaded.

    40510

    【Linux】调试工具gdb使用

    b(break) 函数名函数处设置断点 查看断点信息(info) 输入info b指令可以查看所有的断点详细信息 这里需要注意,断点编号是逐渐累加,也就是说,假如我们将该断点取消...n: 逐过程调试(不会进入函数) s: 逐语句调试(会进入函数) 监视窗口(查看变量信息)(p) 这里用换一个简单代码,来方便我们进行观察。...,同样我们Linux下也可以查看堆栈调用情况,输入指令bt即可 VS里main函数函数栈帧创建 Linux下使用gdb调试bt命令观察所调用堆栈 跳转指定行(until) vs,我们调试时要想跳转至指定行号地方...,我们通常都是f9打断点,f5直接运行到该断点,来实现跳转,但是gdb,我们可以不打断点情况下跳转至我们指定行号位置。...断点之间跳转(c) 我们知道vs下可以使用f5来进行断点之间切换,gdb也可以,命令为c(vsf5)(vs中使用f5都是处于调试状态下,因此gdb也是如此) 关于gdb其它一些指令 gdb指令还有很多

    3.4K30

    gdb 调试笔记

    其参数可以是源代码行,函数名或者目标程序某个地址,trace 命令创建跟踪点,程序在此点上短暂中断,收集数据,然后程序继续往下执行。...5 2 // 跟踪点2第5次执行时中止 (gdb) passcount 12 // 最近创建跟踪点,第12次执行时中断 (gdb) trace foo (gdb) pass 3 (gdb) trace...(9)管理断点 info/disable/delete break 保存断点到文件 save breakpoints [filename] 保存现在断点到文件 source [filename]...恢复断点,将文件断点打一遍, watchpoints可能会失效 四、保存现场和回溯 (1)gdb 快照保存 checkpoint: 生成当前状态快照 info checkpoint:显示快照信息...gdbinit文件,不想使用插件时不必去注释gdbinit文件gdb ‐q :不打印版本和介绍信息启动 gdb ‐write:对二进制程序可读可写启动,可对二进制程序指令进行修改,并保存到文件,或者启动后

    91200
    领券