草庐IT

c++ - 如何获取gdb中数据成员的值?

您好,我目前正在通过GDB在Linux机器上调试我的代码库。我目前面临从类的对象ptr获取数据成员值的问题。要打印对象ptr的位置,我们可以使用“p”(打印)或“显示”命令。例如:我有这样的课classabc{stringa;};所以在我的代码中,如果我使用类abc的指针,那么abc*objPtr=newabc();所以在上面一行中断之后我将得到objPtr现在我想检查数据成员a(abc::a)值的值。我该怎么做?(gdb)pobjPtr$2={px=0x3ba6430690,pn={pi_=0x3ba6430698}}此外,是否有不同的方法来检查列表/vector的数据成员?

c++ - OSX Lion 上的 GDB 7.3.1

我正在尝试使用macports中的GDB(v7.3.1)来调试用g++4.7(也来自macports)。但是,我启动调试器,得到以下输出:GNUgdb(GDB)7.3.1Copyright(C)2011FreeSoftwareFoundation,Inc.LicenseGPLv3+:GNUGPLversion3orlaterhttp://gnu.org/licenses/gpl.htmlThisisfreesoftware:youarefreetochangeandredistributeit.ThereisNOWARRANTY,totheextentpermittedbylaw.Ty

c++ - 在 gdb C++ 中打印双 vector 的总和

在GDB中调试时是否可以打印doublevector的总和?我知道vector的值可以由*(vec._M_impl._M_start)@N打印,但我只想对巨大的数组求和可以做什么?一种解决方案是编写C++函数并在GDB中调用它。还有其他更简单的解决方案吗? 最佳答案 它可以通过gdb脚本完成,但我认为编写c++函数并调用它是更好的解决方案。尽管如此,脚本(通过获取STLsupporttools并对其进行修改而创建)是这样的:definepvecsumset$sum=0set$size=$arg0._M_impl._M_finish-

c++ - SHIMVIEW : shiminfo means? 是什么

什么是警告:SHIMVIEW:ShimInfo(Complete)在gdb中表示?在win832位上使用gcc4.6.2和gdb7.4。 最佳答案 SHIMVIEW消息由Windows兼容性子系统生成,例如如果进程配置为在XP兼容模式或许多其他兼容性设置之一下运行。您看到的这条消息不一定与您正在处理的项目相关-它可能只是gdb显示来自其他已激活兼容模式的进程的调试消息。如果它与您有关并且您真的想知道哪个进程正在执行它,请使用DebugView,打开PID显示,并观察哪个进程ID正在打印消息。

c++ - 如何全局设置返回语句的条件断点?

我有一个充满功能的代码,例如:boolf_i(){if(!f_0()){returnfalse;}if(!f_1()){returnfalse;}//...if(!f_n()){returnfalse;}returntrue;}//etc...在某些执行步骤中,一些被调用者可以返回false,并且false会传播到所有调用者。目前很难编写错误消息(代码变化很快)。在调试期间,在每次returnfalse;之前都有错误消息是过多的。是否可以使用GDB在全局的return语句上设置条件(条件:比如说,函数返回false)断点? 最佳答案

c++ - 如何使用调试构建 libwebsockets(即 -g,以便我可以使用 gdb)? (我在 libwebsockets 函数 ssl_ctrl() 上遇到段错误)

供您引用(因为我在下面提到了库函数),可以在此处找到libwebsockets文档:https://github.com/warmcat/libwebsockets/blob/master/libwebsockets-api-doc.html#L466可在此处找到网站:http://libwebsockets.org/trac/libwebsockets我的问题是,如果我为libwebsocket_client_connect()函数的ssl_connection参数传入1或2,我会遇到段错误。我的代码是用C++编写的。为了找出它发生的位置,我在gdb中运行了我的代码(在添加了-g标志

【S32DS报错】-2-提示Error while launching command:arm-none-eabi-gdb –version错误

目录1Error错误提示2Error错误原因3如何消除Error错误结尾【S32K3_MCAL从入门到精通】合集:S32K3_MCAL从入门到精通https://blog.csdn.net/qfmzhu/category_12519033.html1Error错误提示使用S32DS+J-LinK下载程序,在DedugConfigurations…,并单击Debug,弹出如下错误:LaunchingFreeRTOSToggleLedExampleS32K344DebugFLASH'hasencounteredaproblem.Errorwhilelaunchingcommand:arm-none

c++ - 在使用 gdb 检查核心转储时,有没有办法运行函数(如 std::string.size())?

考虑一个产生某些段错误并中止的C++程序。在使用gdb进行常规调试时,我可以执行以下操作并查看结果(gdb)r(gdb)pstr_var.size()其中str_var在文件中定义为std::string。但是,我在使用核心转储进行调试时遇到了一些问题。在我通过在gdb中加载核心转储之后gdbEXECUTABLEcore.pid然后在gdb终端运行以下命令(gdb)pstr_var.size()gdb说“如果没有调试过程,你就不能这样做。”我只能做bt(查看堆栈跟踪)或直接打印std::string变量之类的事情,但是找不到一种简单的方法来检查一些信息,例如打印std::string的

c++ - 由于 KERNELBASE.dll 错误,GDB 无法运行程序

我最近才开始遇到这个问题,我不知道它是什么时候开始出现的/是什么原因造成的。我这里有这个简单的测试程序:#includeintmain(){return0;}但是当我尝试正常运行它时,它会创建一个堆栈转储。Stacktrace:FrameFunctionArgs00CBC4986101D93A(00000198,0000EA60,000000A4,00CBC508)00CBC5C8610E2F3F(00000000,60FC04E8,00CBC658,7794ABEE)然而,当我尝试在GDB中运行它时,它显然无法运行。gdb:unknowntargetexception0x406d13

c++ - Eclipse C++ 调试器不显示变量值

我已经使用Eclipse进行Java编码,没有任何问题。使用C++Eclipse(Indigo),我的问题是,当我将鼠标放在变量上时,我无法看到变量的值!它只是显示变量的定义。在Java中,如果我们右键单击一个变量,那么我们会得到一个选项,如"Inspectvalue"。该选项在C++eclipse中也不可见。如何解决这个问题?我缺少任何插件或配置吗?在VirtualBox(WindowsXP主机)中全新安装了Ubuntu11.10。然后安装了g++4.6、EclipseIndigo和EclipseCDT。在"DebugConfigurations"中,它显示:Debugger:gdb