- 时间:2021-02-11 22:13 编辑:金承焕 来源:蚂蚁资源 阅读:143
- 扫一扫,手机访问
摘要:大家好,今天给大家介绍关于gdb 源码(gdb中文手册)的相关内容,详细讲解gdb加载动态库成功,但是不能显示动态库中的源码(gdb+gdbserver),gdb 能分析编译后的源代码吗,通过批处理 进入gdb 然后怎么运行gdb代码等,希望可以帮助到您。
gdb加载动态库成功,但是不能显示动态库中的源码(gdb+gdbserver),因为特定的特定没有详细说明,你不知道你遇到了什么。如果只查看断点,你应该是capartment.cpp:55,但如果编译了您的程序,则它不是-o0,可能会返回,您只能查看编译。 1.有时(很少)是编译器的错误。 2,您可能正在调试程序,您的源代码与3不匹配3,您的程序已折叠,销毁所需的堆栈或GDB。 4,这个地方有特殊定位信息5,其他情况,仍然更多,经常遇到。如果您了解汇编,最好查看编译。如果您不明白,请参阅该语句是可以跟踪的最后一个语句。仔细看看最后一个陈述的所有变量,你应该猜出什么是错的。
gdb 能分析编译后的源代码吗,编译时,使用-g参数时,您只能看到主要位于源源中的源代码用于打破使用源代码后的点。
通过批处理 进入gdb 然后怎么运行gdb代码,GDB是一个强大的命令行调试工具。虽然X窗口提供GDB图形DDD,但我仍然喜欢在命令行模式下使用GDB。每个人都知道它可以形成序列以形成脚本的命令行的权力。 UNIX下的软件是命令行。这为方案开发提供了极大的便利,命令行软件的优势在于它们可以很容易集成,使用一些简单的工具,可以制作一个非常强大的功能。因此UNIX下的软件比Windows下的软件更加组合,每个软件都施加自己的优势,结合了更强大的功能。 Windows下的图形软件基本上是CAMP,不能调用,这对于整合各种软件来说是非常不利的。它不是有什么相当于窗口,所谓的“英寸”,功能很短“,图形工具仍然是一个不如命令行的地方。1 GDB概述GDB是由GNU开源发布的强大UNIX组织。或许,你更喜欢图形界面方法,就像IDE的调试等,但如果你是UNIX平台的软件,你会发现GDB调试工具具有比VC,BCB的图形调试器。强大的功能。所谓的“英寸是很长的,统治者很短”是这个真理。一般来说,GDB主要有助于您完成以下四个功能:1。启动程序,您可以使用自己的自定义请求运行该程序。2 。允许调试程序停止在您指定的断点处。(断点可以是条件表达式)3,程序停止后,您可以检查程序中发生的内容。 4.动态更改程序的执行环境。从上面,GDB和一般调试工具没有两个,基本完成了这些功能,但详细介绍,您将找到GDB这个Ä调试工具电源,每个人都可能更习惯于图形调试工具,但是当时有命令行的调试工具具有无法完成的函数。委托示例源程序:TST.c代码:1#include23 int func(int n)4 {5 int sum = 0,i; 6 for(i = 0; i7 {8 sum + = i; 9} 10返回和; 11} 121314 main()15 {16 int i; 17长的结果= 0; 18 for(i = 1; i <= 100 ; i ++)19 {20结果+ = i; 21} 2223 printf(“结果[1-100] =%d”,结果); 24 printf(“结果[结果[1-250] =%d”,func( 25.0)); 25}编译生成执行文件:(Linux)root @ Linux:/ home / benben / test#gcc -g tst.c -o tst使用gdb debug:code:root @ linux:/ home / benben / test#gdb tst < ----------开始GDBGNU GDB 5.1.1Copyright 2002自由软件Foundation,Inc.GDB是免费的软件,由GNU通用公共许可证涵盖,并且您是武誉兑换它和/或分发它的副本某些条件。“展示复制”,以查看条件。绝对没有GDB保修。输入“显示保修”.This GDB被配置为“I386-SUSE-Linux”...(GDB)L < - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ---------------到列表中,原始代码从第一行开始。
责任编辑(
金承焕)
以上就是关于**gdb 源码,gdb中文手册**的全部内容,了解更多请关注蚂蚁资源网。
- hhcw0320
- C++的GDB: 采用g++,能否单步并不一定是调试信息的问题这要看调试方式调试方式有两种.. 源代码级调试也就是你说的方式.. 源码级调试也就是无源代码的调试方式无论有无调试文件 源码级调试都是可以进行的 即使现在最好的反调试工具和技术也无法阻止所以 有时间还是看看调试的基础内容吧...debug版本未必是提供了源代码信息的调试版本 他有可能是未经调试器进行代码优化的版本
- 2021-02-11 22:13:50
- nij
- 最新的没有用过,以前版本的QtCreator有过那样的Bug,就是必须额外设置一个无用断点。鼠标所在的地方是可以显示那个变量的值的,显示不出来应该是环境配置有问题。QT我一直用自己编译的,官方的开源版总是有些稀奇古怪的问题,我也搞不清为什么。
- 2021-02-11 22:13:50
- ydcker
- 不是很懂你的意思,getchar()不是输入字符吗?用gets可以规避enter的问题,但是好像不太能满足你的需求,我用_getch() 加一点小把戏,稍微有点像,但是有的字符显示不出来,你可以看一下.用gets就比较完美,就是不知道,你的循环怎么写的,第二个是gets的例子/* * complier: vs2015 * time: 2015/8/16 * - - - from - - -Skip */#include#includeint main(void) { char ch; while ((ch = _getch()) != EOF) { printf("%c",ch); if (ch == 13) printf("%c",10); } return 0;}//////////////////////////////////////////////////#includeint main(void) {char ch[50];while (NULL!=gets_s(ch)) {;}return 0;}
- 2021-02-23 00:00:01