草庐IT

c++ - 任意类型上的 GDB 条件断点,例如 C++ std::string 相等性

是否可以在条件表达式包含任意类类型的对象时在GDB中设置条件断点?我需要在函数内设置断点,条件将检查对象的成员字符串变量是否等于“foo”。所以,像这样:condition1myObject->myStringVar=="foo"但它不起作用。GDB是否只允许原始类型和char*类型的条件断点?有什么方法可以在非基本类型上设置条件断点吗? 最佳答案 IsthereanywayIcouldsetaconditionalbreakpointonnon-primitivetypes?是的,一种方法是将非原始类型转换为原始类型,在您的情况下

c++ - 任意类型上的 GDB 条件断点,例如 C++ std::string 相等性

是否可以在条件表达式包含任意类类型的对象时在GDB中设置条件断点?我需要在函数内设置断点,条件将检查对象的成员字符串变量是否等于“foo”。所以,像这样:condition1myObject->myStringVar=="foo"但它不起作用。GDB是否只允许原始类型和char*类型的条件断点?有什么方法可以在非基本类型上设置条件断点吗? 最佳答案 IsthereanywayIcouldsetaconditionalbreakpointonnon-primitivetypes?是的,一种方法是将非原始类型转换为原始类型,在您的情况下

linux - 为 valgrind 和 gdb 记录禁用 glibc (LD_HWCAP_MASK,/etc/ld.so.nohwcap) 中的 AVX 优化函数

带有glibc的现代x86_64linux将检测到CPU支持AVX扩展并将许多字符串函数从通用实现切换到AVX-optimized版本(在ifunc调度程序的帮助下:1,2)。此功能对性能有好处,但它会阻止一些工具,如valgrind(olderlibVEXs,在valgrind-3.8之前)和gdb的“目标记录”(ReverseExecution)正常工作(Ubuntu“Z”17.04测试版、gdb7.12.50.20170207-0ubuntu2、gcc6.3.0-8ubuntu120170221、UbuntuGLIBC2.24-7ubuntu2):$cata.c#include#

linux - 为 valgrind 和 gdb 记录禁用 glibc (LD_HWCAP_MASK,/etc/ld.so.nohwcap) 中的 AVX 优化函数

带有glibc的现代x86_64linux将检测到CPU支持AVX扩展并将许多字符串函数从通用实现切换到AVX-optimized版本(在ifunc调度程序的帮助下:1,2)。此功能对性能有好处,但它会阻止一些工具,如valgrind(olderlibVEXs,在valgrind-3.8之前)和gdb的“目标记录”(ReverseExecution)正常工作(Ubuntu“Z”17.04测试版、gdb7.12.50.20170207-0ubuntu2、gcc6.3.0-8ubuntu120170221、UbuntuGLIBC2.24-7ubuntu2):$cata.c#include#

linux - 如何使 gdb tui 窗口变大

我在tui模式下使用gdb调试我的应用程序。当我开始调试session时,主窗口被分成两个大小相等的部分。带有源代码的窗口(上侧)我可以调用gdb命令的窗口(下侧)这两个窗口的大小完全相同。有什么方法或组合键可以使源代码窗口比其他窗口大吗?有什么办法让它变大吗? 最佳答案 见gdbmanualforTUIcommands.您基本上需要发出类似:winheightSRC+5(增加某些列)或winheightSRC20(设置绝对值) 关于linux-如何使gdbtui窗口变大,我们在Stac

linux - 如何使 gdb tui 窗口变大

我在tui模式下使用gdb调试我的应用程序。当我开始调试session时,主窗口被分成两个大小相等的部分。带有源代码的窗口(上侧)我可以调用gdb命令的窗口(下侧)这两个窗口的大小完全相同。有什么方法或组合键可以使源代码窗口比其他窗口大吗?有什么办法让它变大吗? 最佳答案 见gdbmanualforTUIcommands.您基本上需要发出类似:winheightSRC+5(增加某些列)或winheightSRC20(设置绝对值) 关于linux-如何使gdbtui窗口变大,我们在Stac

c - 使用GDB调试时如何打印指针指向的字符串?

在使用GDB单步执行程序时,如何检查指针指向的字符串?我可以看到a指针指向0x82c6e10。我知道这是一个字符串。如何打印?使用printf("%s\n",0x82c6e10)给出Badformatstring,missing'"'.gdb不会提示未知命令的事实告诉我们我认为解决方案是我正在做的事情的一些变体。我说得对吗?我尝试转义引号,但这没有帮助。 最佳答案 使用x而不是p:x/s0x82c6e10 关于c-使用GDB调试时如何打印指针指向的字符串?,我们在StackOverflo

c - 使用GDB调试时如何打印指针指向的字符串?

在使用GDB单步执行程序时,如何检查指针指向的字符串?我可以看到a指针指向0x82c6e10。我知道这是一个字符串。如何打印?使用printf("%s\n",0x82c6e10)给出Badformatstring,missing'"'.gdb不会提示未知命令的事实告诉我们我认为解决方案是我正在做的事情的一些变体。我说得对吗?我尝试转义引号,但这没有帮助。 最佳答案 使用x而不是p:x/s0x82c6e10 关于c-使用GDB调试时如何打印指针指向的字符串?,我们在StackOverflo

linux - 如何在 Eclipse 中使用 GDB 进行 C/C++ 调试?

我是VisualStudio用户,习惯于使用断点进行调试。我现在在linux环境中工作,并使用Eclipse作为IDE。我是linux和eclipse的新手。我不知道如何在Eclipse中使用gdb。我尝试在命令行中使用gdb,但并不像拥有UI那样容易。如何在eclipse中使用gdb? 最佳答案 以下说明适用于Eclipse3.5(Galileo)。对于3.6(Helios),除了步骤2中的链接外,它们是相似的。转到“帮助”>“安装新软件”。添加CDT存储库http://download.eclipse.org/tools/cdt

linux - 如何在 Eclipse 中使用 GDB 进行 C/C++ 调试?

我是VisualStudio用户,习惯于使用断点进行调试。我现在在linux环境中工作,并使用Eclipse作为IDE。我是linux和eclipse的新手。我不知道如何在Eclipse中使用gdb。我尝试在命令行中使用gdb,但并不像拥有UI那样容易。如何在eclipse中使用gdb? 最佳答案 以下说明适用于Eclipse3.5(Galileo)。对于3.6(Helios),除了步骤2中的链接外,它们是相似的。转到“帮助”>“安装新软件”。添加CDT存储库http://download.eclipse.org/tools/cdt