草庐IT

c++ - gdb 附加到 Windows 中的进程不工作

我正在尝试调试第三方软件的库。我有库的源代码,我已经使用-g编译了它。我需要启动软件来使用库和调试。AFAIK我必须启动程序,然后从gdb使用attach和进程的id。我正在这样做,但gdb说“无法附加到进程”。有谁知道为什么会这样? 最佳答案 尝试使用gdb启动它,就在内部,将其附加到gdb调用中。gdbyour_program_namerunyour_parameter1your_paremeter2... 关于c++-gdb附加到Windows中的进程不工作,我们在StackOve

c - 我怎样才能为 Windows 制作一个二进制文件,使非编码人员能够只获得一个可以提供给 gdb 的故障转储?

正如标题所暗示的那样:该场景是一个使用gdb的编码员和一个报告崩溃的用户。他能否从用户那里得到一个易于使用的内存转储,该转储可以提供给gdb但又不会让用户感到困难? 最佳答案 可以设置ProcessDumper根据可执行文件的名称在任何异常或进程退出时生成完整转储。由于标题,我假设是Windows,如果不是,请更改标签。 关于c-我怎样才能为Windows制作一个二进制文件,使非编码人员能够只获得一个可以提供给gdb的故障转储?,我们在StackOverflow上找到一个类似的问题:

windows - 为什么 binutils-gdb 无法从 MSYS2 构建?

我正在尝试在Windows10PC上从msys2环境中构建binutils-gdb。git://sourceware.org/git/binutils-gdb.git大部分代码编译正常,但libiberty构建失败,pex-win32.c中出现错误:./pex-win32.c:121:10:warning:implicitdeclarationoffunction‘_open’;didyoumean‘open’?[-Wimplicit-function-declaration]./pex-win32.c:121:23:error:‘_O_RDONLY’undeclared(firstu

通过vscode进行嵌入式linux arm开发板gdb调试

下载和安装vscode, 下载vscodeforwindows地址:  VisualStudioCode-CodeEditing.Redefined安装"remote-ssh","c/c++"和"gdbdebug",用于对windows与linux服务器进行ssh连接和进行gdb调   2.1安装remote-ssh   2.2安装c/c++ 2.3安装gdbdebug    3.在linux服务器上创建调试程序#include #include #include int main(){   struct passwd* pwd;   uid_t userid;   userid = getu

php - 如何使用 gdb 在 php 脚本中设置断点

我正在尝试使用GDB通过控制台调试php脚本,但我无法设置断点。这就是我所做的。我创建了一个包含以下内容的脚本:这是我调试它的诱惑#gdbphp-dCANCELLAMI.phpGNUgdb(Ubuntu/Linaro7.4-2012.04-0ubuntu2.1)7.4-2012.04Copyright(C)2012FreeSoftwareFoundation,Inc.LicenseGPLv3+:GNUGPLversion3orlaterThisisfreesoftware:youarefreetochangeandredistributeit.ThereisNOWARRANTY,tot

gdb 回溯中的 PHP-FPM 未知调用者

我在我的php应用程序中调试段错误,我使用--enable-debug选项编译php,在段错误期间php-fpm转储核心之后,我运行:$gdb/usr/local/sbin/php-fpmcoreGNUgdb(GDB)7.12.1Copyright(C)2017FreeSoftwareFoundation,Inc.LicenseGPLv3+:GNUGPLversion3orlaterThisisfreesoftware:youarefreetochangeandredistributeit.ThereisNOWARRANTY,totheextentpermittedbylaw.Type

【Linux】Linux调试器-gdb使用

 作者:小卢 专栏:《Linux》喜欢的话:世间因为少年的挺身而出,而更加瑰丽。                 ——《人民日报》目录 1.背景2.gdb的使用2.1如何生成可以调试debug版本的文件:2.2如何查看调试信息:3.gdb调试指令汇总 1.背景在VS中,有两种模式,一种为debug模式,一种为release模式。debug为可以调试的版本,release为优化后的版本也就是测试版本了Linuxgcc/g++出来的是二进制文件,默认是release版本。在VS中,我们可以按F10进入调试在Linux我们依旧可以调试,要使用gdb调试,必须在源代码生成二进制程序的时候,加上-g选项

NDK OpenCV人脸定位

NDK系列之OpenCV人脸定位技术实战,本节主要是通过OpenCVC++库,实现识别人脸定位,并对识别到的人脸画面增加红框显示。实现效果:实现逻辑:1.初始化CameraX,绑定图片分析器ImageAnalysis,监听相机数据;2.加载OpenCV提供的人脸识别训练数据lbpcascade_frontalface到本地;3.初始化人脸跟踪中转站FaceTracker,将人脸识别训练数据路径传递到Native层;4.Native读取人脸识别训练数据,创建人脸检测跟踪器Ptrtracker;5.通过中转站FaceTracker,调用Native层tracker开启人脸跟踪;6.通过中转站Fac

GDB断点实现

我在AARCH64上与GDB遇到了麻烦。我无法描述有关平台的很多细节,但不需要。问题是断点处理。只有断点的第一站效果很好,在连续断点未再次插入之后,程序将在不以下断点停止的情况下运行。这导致更多错误,例如内部GDB断点不能很好地工作,动态库未正确自动加载。据我了解,GDB插入特殊的BP指令代替感兴趣的指令(例如X86-64上的INT3),该在执行过程中生成的sigtrap(由GDB处理)(用于BPStop,符号加载等)。当执行继续执行时,GDB必须再次插入该指令。我在Aarch64和X86-64上都有这种错误(用于理解正确的行为)延续后立即:infrun:skippingbreakpoint:

【Linux杂货铺】调试工具gdb的使用

 目录🌈前言🌈📁背景介绍📁使用list [行号]/[函数名] run/rbreak/b [行号]/[函数名]infobreakdisablebreakenablebreakdeletebreak[断点编号]next/nstep/scontinue/cfinishprint/p [变量]/[表达式]set[变量]display [变量名]undisplay [编号]until📁总结🌈前言🌈    本期【Linux杂货铺】将讲解Linux中调试工具gdb的使用,各个参数的含义,如何在Linux中将代码调试起来,以及各个参数对应的在IDE中的含义。 个人博客:秋刀鱼的滋味@-CSDN博客 系列专栏: