• 即使在gcc(v7&v9.3.1)-O0优化关闭后,GDB仍显示变量<optimized out>

    固定! 只有3个源代码模块,没有make文件。如图所示,一个gcc命令进行编译和链接。我看不到所有内容都无法编译的方式。 我尝试打印的矩阵指针是从较大的结构数组中提取到自动变量的。当我在gdb中打印完整的结构路径时,它起作用了。 当您显式关闭优化,并且冗长的编译器输出在COLLECT_GCC_OPTIONS ='-O0'中对其进行验证时,“使调试产生预期的结果”以优化并隐藏变量似乎是矛盾的。 即使使用-0g,别名变量仍然 在Opensuse飞跃15.1上使用gcc 9.3.1 设置env var CFLAG...
  • 在gdb中添加python函数

    我发现自己跳入python解释器很多,可以进行非常基本的字节转换,例如: >>> ords = lambda s: [hex(ord(c)) for c in s] >>> ords('Help') ['0x48', '0x65', '0x6c', '0x70'] Is there a way to add a python function into gdb so I can type ords('Help') and it will invoke the above? If so, how/where...
  • 在Windows 10中没有打开推子模式

    我已经安装了mingw并安装了运行和调试所需的所有文件。我想用它来调试使用TUI的C ++代码。我正在尝试使用各种选项在(tui)中运行gdb(ctrl + x + a;下一个布局;启用tui),但是它们都不起作用。如您所见,它表明没有这样的命令。请告诉我该怎么办。
  • 如何在gdb中调用function(void)

    我是一个完整的初学者,可以逆转英语。 最近,我一直在研究gdb以及如何调试程序。 我很怀疑我是不是一个简单的人 #include <stdio.h> #include <stdlib.h> int flag(void){ puts("okay you got this"); } int main(void){ puts("nope try again"); } 所以我成功地编译了这个程序,当我尝试运行这个程序时,它给了我主要功能输出 nope try again 所以现在我该如何在g...
  • 确定基于C函数的参数之间的依赖关系?

    我有一个很大的C程序,我试图找出哪些函数(给定一个函数列表)在参数方面相互依赖。 例如,说我有以下代码: #include <stdio.h> #include <string.h> #define MAX_PEOPLE 100 typedef struct { int id; char name[50]; } person_t; static person_t people[MAX_PEOPLE]; void addObject(int id, const char *name); voi...
  • 将寄存器设置为1的首选方法

    将寄存器设置为0的建议方法如下: xor %eax, %eax # equivalent to mov $0, %eax 将寄存器设置为1的相应首选方法是什么?我想到的一些是: mov $1, %eax or $1, %eax Additionally, is there a way in gdb or elsewhere to see quickly see the byte size of an instruction with all its operands? Unless my counti...
  • GDB不会在断点处停止并继续

    我是嵌入式编程的初学者,因此要了解我正在尝试使用简约的程序。我尝试执行以下程序。 我的环境: arm-none-eabi-gcc (15:9-2019-q4-0ubuntu1) 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] gdb-multiarch GNU gdb (Ubuntu 9.1-0ubuntu1) 9.1 Open On-Chip Debugger 0.10.0 STM32F3Discovery - ARM Cortex...
  • 容器内的Gdb被137终止

    当我在容器中kubernetes容器内的二进制文件上运行gdb时,它开始加载符号,之后突然被SIGTERM终止并退出代码137。我检查了描述容器,它显示了错误原因。我在yaml中添加了ptrace功能。有人可以帮我弄这个吗。
  • 如何在C编程的两个函数之间找到执行函数

    我知道两个函数func_1和func_5,但是在func_1和func_5之间确实有一些函数,我不知道这些函数是什么,现在我的问题是我的程序正在击中func_1,但无法到达我的程序之间某个地方的funct_5运行gdb时崩溃,但是由于程序停止,我没有任何回溯详细信息。 现在我如何知道它在哪里崩溃以及在哪个函数中崩溃,我怀疑在这两个函数func_1和func_5之间,是否有某些函数正在导致崩溃。 [以代码01退出劣等1(进程23939)] (gdb)bt 没有堆栈。 请任何人告诉我该如何处理?
  • 为什么在使用ifstream时出现指针错误?

    我有一个小的例程来读取包含几个制表符(0x9)分隔行的文件。 string getTABLE_Field(string filename, string ID_match, int id_column, int column){ /* * Go through each line in the CSV File, splitting by TAB. * If the item in the "id_column" matches the ID_match, return the item i...
  • GDB输出中的异常行为

    因此,我开始学习如何使用GDB,并且在输出中出现了一些意外行为。 我正在以下程序上运行GDB #include <stdio.h> #include <stdlib.h> int main() { unsigned int value1, abs_value1, abs_value2, abs_value3; int value2, value3; char myarray[10]; printf("Enter 10 characters:"); fgets(...
  • vfprintf中的segfault具有损坏的堆栈

    我的核心看起来像这样: (gdb) bt #0 0x00007fe7bd2e3735 in vfprintf () from /lib64/libc.so.6 #1 0x00007fe7bd2ee329 in vfwprintf () from /lib64/libc.so.6 Backtrace stopped: previous frame inner to this frame (corrupt stack?) (gdb) i frame Stack level 0, frame at 0x7fe...
  • 用命令行编译cpp项目但是在Vscode中调试

    我用命令行编译我的代码。这是我如何使用2个库a和b编译名为“ out”的程序的示例 g++ -c -O3 -I../../include/boost_1_61_0 -std=c++14 -MMD -MP -MF "a.o.d" -o a.o ../../my_Library/lib_a.cpp g++ -c -O3 -I../../include/boost_1_61_0 -std=c++14 -MMD -MP -MF "b.o.d" -o b.o ../../my_Library/li...
  • 程序崩溃

    使用gdb调试时,我的程序仅在获得以下日志时崩溃。 [退出线程0xb7e9ab40(LWP 14048)] [退出线程0x797d6b40(LWP 14043) 已退出] [线程0xb7ebbb40(LWP 14047)已退出] [线程0xb7edcb40(LWP 14046)已退出] [线程0x787d4b40(LWP 14045)已退出] [线程 0x78fd5b40(LWP 14044)已退出] [线程0x79fd7b40(LWP 14042)已退出] [退出线程0x7a7d8b40(LWP 1404...
  • GDB显示错误的本地变量地址

    The below code is an snippet from the 2nd stage loader program. It is running in Real Mode and gets called by the bootloader program. The problem is that GDB is showing wrong addresses to variables allocated in stack. |------|------|------| |Name |GDB |...
  • 在NASM中调试符号(更多)

    在StackOverflow上已多次问过此问题,但我尝试了所有答案,但仍无法使NASM包含DWARF调试符号。 我正在Ubuntu 18.04 64位下使用NASM 2.13.02。我不确定我是否仍然缺少什么? 万一重要,我实际上想同时使用LLDB和GDB。 谢谢。 这是我的代码: section .bss section .text global _start _start: mov ebx, 0 mov eax, 1 int 80h 这是我如何建立和链接它: nasm -g...
公告

《从零开始开发BBS》课程上线啦,快来跟着我一步步搭建属于你的BBS吧。

课程地址:https://www.shiyanlou.com/courses/1436
9折优惠邀请码: ZHwfIjb1

该课程会带领大家一步步的了解并熟悉Go语言开发,如果你是一个Go语言初学者,或者正准备学习Go语言,那么这个课程非常适合你。如果你熟练掌握了本课程中的知识点,相信你就已经入门Go语言开发,并能胜任日常的开发工作了。