首页
学习
活动
专区
工具
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

5210

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)命令 作用

19110
  • 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:查看已打断点信息

    15010

    【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

    9610

    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 (函数名):函数内部第一行打上断点 那我们怎么能够看得出来在哪里打的断点呢?

    12410

    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

    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

    【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

    【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高级技巧】 条件断点 可以设置仅在特定条件下触发断点。

    9710

    【调试】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

    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.5K10

    【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.

    38610

    【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:对二进制程序可读可写启动,可对二进制程序指令进行修改,并保存到文件,或者启动后

    89800

    Linux下GDB调试器常用指令

    ) 使程序指定代码上暂停执行,便于观察 单步执行程序,便于调试 查看程序变量值变化 动态改变程序执行环境 分析崩溃程序产生core文件 2....r 就代表命令 run help(h) #查看命令帮助,具体命令查询gdb 输入help + 命令 run(r) #重新开始运行文件(run-text:加载文本文件,run-bin:加载二进制文件)...list+函数名:查看具体函数) set #设置变量值 next(n) #单步调试(逐过程,函数直接执行) step(s) #单步调试(逐语句,跳入自定义函数内部执行) backtrace(bt) #...查看函数调用栈帧和层级关系 frame(f) #切换函数栈帧 info(i) #查看函数内部局部变量数值 finish #结束当前函数,返回到函数调用点 continue(c) #继续执行 print...(p) #打印值及地址 quit(q) #退出gdb break + num(b) #某行达断点 info + breakpoints #查看当前设置所有断点 delete + breakpoints

    1.7K20

    GDB 调试笔记

    常见命令 命令 解释 示例 file 加载被调试可执行程序文件。因为一般都在被调试程序所在目录下执行GDB,因而文本名不需要带路径。...(gdb) c b b b \*b \* d [编号] b: Breakpoint简写,设置断点。...两可以使用“行号”“函数名称”“执行地址”等方式指定断点位置。其中函数名称前面加“\*”符号表示将断点设置“由编译器生成prolog代码处”。如果不了解汇编,可以不予理会此用法。...(gdb) disas s, n s: 执行一行源程序代码,如果此行代码中有函数调用,则进入该函数;n: 执行一行源程序代码,此行代码函数调用也一并执行。...(gdb) display /i $pc(gdb) undisplay 1 i Info简写,用于显示各类信息,详情请查阅“help i”。

    92730

    【Linux】Linux调试器-gdb使用

    背景 程序发布方式有两种,debug模式和release模式 Linux gcc/g++出来二进制程序,默认是release模式 要使用gdb调试,必须在源代码生成二进制程序时候, 加上-g选项...指令 list/l 行号:显示源代码,后续直接回车会接着上次位置往下列,每次列10行。l后面可以接数字(行号)。 list/l 函数名:列出某个函数源代码。 r或run:运行程序。...s或step:进入函数调用 break(b) 行号:某一行设置断点 break 函数名某个函数开头设置断点 info break :查看断点信息。...(或bt):查看各级函数调用及参数 info(i) locals:查看当前栈帧局部变量值 quit:退出gdb 我们打断点后,如果要删,需要 d 断点序号。...调试过程是可以修改变量,用set var 修改变量。通常用来判断循环条件,这样做可能会导致最终值不正确。

    17100
    领券