草庐IT

linux - "mov rax, QWORD PTR fs:0x28"汇编指令有什么作用?

这个问题在这里已经有了答案:Whydoesthismemoryaddress%fs:0x28(fs[0x28])havearandomvalue?(3个答案)关闭4年前。紧接执行此指令之前,fs包含0x0。另外我想知道如何从GDB中的这个内存区域读取,该命令是什么?

linux - "mov rax, QWORD PTR fs:0x28"汇编指令有什么作用?

这个问题在这里已经有了答案:Whydoesthismemoryaddress%fs:0x28(fs[0x28])havearandomvalue?(3个答案)关闭4年前。紧接执行此指令之前,fs包含0x0。另外我想知道如何从GDB中的这个内存区域读取,该命令是什么?

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

linux - 无法加载 linux-vdso.so.1 的共享库符号。调试时

不加载VDSO.so是您在使用gdb和glibc>2.2时遇到的著名错误之一。我发现它计划在gdb7.5.1中得到修复,但事实并非如此。好的,我在这里找到了解决方法Here,但我不明白,所以如何应用它。操作系统:ArchLinuxIDE:QTCreator3.0.82编译器:GCC4.8.2注意:我不确定我是否违反了包括上面链接在内的规则 最佳答案 NotloadingVDSO.soisoneofthefamousbugsyouencounterwhileusinggdbandglibc>2.2.不,不是。这里的问题只是一个无用的警

linux - 无法加载 linux-vdso.so.1 的共享库符号。调试时

不加载VDSO.so是您在使用gdb和glibc>2.2时遇到的著名错误之一。我发现它计划在gdb7.5.1中得到修复,但事实并非如此。好的,我在这里找到了解决方法Here,但我不明白,所以如何应用它。操作系统:ArchLinuxIDE:QTCreator3.0.82编译器:GCC4.8.2注意:我不确定我是否违反了包括上面链接在内的规则 最佳答案 NotloadingVDSO.soisoneofthefamousbugsyouencounterwhileusinggdbandglibc>2.2.不,不是。这里的问题只是一个无用的警

linux - 从进程内部转储 Linux 核心文件的好方法是什么?

我们有一个服务器(用C和C++编写)当前捕获SEGV并将一些内部信息转储到文件中。我想在捕获SEGV时生成一个核心文件并将其写入磁盘,这样我们的支持代表和客户就不必为ulimit大惊小怪,然后等待崩溃再次发生以获得核心文件。我们过去使用过abort函数,但它受ulimit规则的约束,没有帮助。我们有一些遗留代码读取/proc/pid/map并手动生成一个核心文件,但它已经过时了,而且看起来不太便携(例如,我猜它不会在我们的64位版本)。在Linux进程中生成和转储核心文件的最佳方法是什么? 最佳答案 Google有一个库,用于从名为

linux - 从进程内部转储 Linux 核心文件的好方法是什么?

我们有一个服务器(用C和C++编写)当前捕获SEGV并将一些内部信息转储到文件中。我想在捕获SEGV时生成一个核心文件并将其写入磁盘,这样我们的支持代表和客户就不必为ulimit大惊小怪,然后等待崩溃再次发生以获得核心文件。我们过去使用过abort函数,但它受ulimit规则的约束,没有帮助。我们有一些遗留代码读取/proc/pid/map并手动生成一个核心文件,但它已经过时了,而且看起来不太便携(例如,我猜它不会在我们的64位版本)。在Linux进程中生成和转储核心文件的最佳方法是什么? 最佳答案 Google有一个库,用于从名为

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