在启动过程中程序正常退出。 gdb 不会在断点处中断

2024-02-04

我在尝试使用 gdb 调试任何程序的任何代码上都会收到此 gdb 错误。这是重现错误的最简单过程

  1. 创建一个main.cpp包含以下内容的文件:
int main(){
    return 0;
}
  1. Run g++ -g main.cpp
  2. Run gdb a.out
  3. 在 gdb 内部在第 2 行设置一个断点break 2
  4. 在 gdb 中运行程序run

Output:

Starting program: /tmp/test/a.out 
During startup program exited normally.

这一切都是通过命令行上的 gdb 完成的。我尝试使用 g++ 和 gcc 得到相同的结果。我不太确定从这里该去哪里。

  • gdb 版本 = 9.2
  • g++ 版本 = 9.3.0

编辑:我找出了导致问题的原因,但不知道如何解决它。这个问题似乎与我有关SHELL多变的。我目前正在使用xonsh https://xon.sh/作为我的外壳,但是当我设置我的SHELL环境变量返回/bin/bash一切都按预期进行。使用 xonsh 时我可以做些什么来解决这个问题吗?我应该向 xonsh、gdb 报告此问题,还是两者都报告?


我目前使用 xonsh 作为我的 shell,但是当我将 SHELL 环境变量设置回 /bin/bash 时,一切都会按预期工作。使用 xonsh 时我可以做些什么来解决这个问题吗?我应该向 xonsh、gdb 报告此问题,还是两者都报告?

这可能是你的xonsh启动问题,或者可能是xonsh问题,或者可能是xonsh没有做 GDB 期望的事情。

通常情况下,GDBforks / execs $SHELL -c "/path/to/your/exe $args"并期望$SHELL to exec你的程序(这样做是为了让 shell 重定向在 GDB 下仍然有效)。

Only after that execGDB会开始设置断点等吗

如果你有一些xonsh初始化文件,例如原因xonsh to exec别的事情,事情可能会变得糟糕。所以我建议尝试删除任何此类~/.xonshrc或任何所谓的文件,看看是否可以解决问题。

如果没有的话,可能是这样的xonsh e.g. forks and exec将您的二进制文件放在子级(GDB 的孙级)中,而不是直接执行它,或者可能是这样xonsh不明白-c ... syntax.


如果你不关心重定向,你也可以要求GDB不要使用$SHELL完全:set startup-with-shell off. 文档 https://sourceware.org/gdb/current/onlinedocs/gdb/Starting.html#Starting.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在启动过程中程序正常退出。 gdb 不会在断点处中断 的相关文章

  • 向进度条添加百分比文本 C#

    我有一个方法可以显示进程栏何时正在执行以及何时成功完成 我工作得很好 但我想添加一个百分比 如果完成 则显示 100 如果卡在某个地方 则显示更少 我在网上做了一些研究 但我无法适应我正在寻找的解决方案 这是我的代码 private voi
  • 用于代数简化和求解的 C# 库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 网络上有很多代数求解器和简化器 例如 algebra com 上不错的代数求解器和简化器 然而 我正在
  • 在 C++ 中使用 matlab 结构(matlab 函数调用的返回值)(由 matlab 编译器生成的库)

    你好 我有一个相当简单的 matlab 函数 例如 function MYSTRUCT myfunc MYSTRUCT prop1 test MYSTRUCT prop2 foo MYSTRUCT prop3 42 end 我用 matla
  • 注销租约抛出 InvalidOperationException

    我有一个使用插件的应用程序 我在另一个应用程序域中加载插件 我使用 RemoteHandle 类http www pocketsilicon com post Things That Make My Life Hell Part 1 App
  • 如何将非静态类成员“std::bind”绑定到 Win32 回调函数“WNDPROC”?

    我正在尝试将非静态类成员绑定到标准WNDPROC http msdn microsoft com en us library ms633573 aspx功能 我知道我可以通过将类成员设为静态来简单地做到这一点 但是 作为一名 C 11 ST
  • 在 DataView 的 RowFilter 中选择 DISTINCT

    我试图根据与另一个表的关系缩小 DataView 中的行范围 我使用的 RowFilter 如下 dv new DataView myDS myTable id IN SELECT DISTINCT parentID FROM myOthe
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • qdbusxml2cpp 未知类型

    在使用 qdbusxml2cpp 程序将以下 xml 转换为 Qt 类时 我收到此错误 qdbusxml2cpp c ObjectManager a ObjectManager ObjectManager cpp xml object ma
  • 是否有实用的理由使用“if (0 == p)”而不是“if (!p)”?

    我倾向于使用逻辑非运算符来编写 if 语句 if p some code 我周围的一些人倾向于使用显式比较 因此代码如下所示 if FOO p some code 其中 FOO 是其中之一false FALSE 0 0 0 NULL etc
  • 如何在 Xaml 文本中添加电子邮件链接?

    我在 Windows Phone 8 应用程序中有一些大文本 我希望其中有电子邮件链接 例如 mailto 功能 这是代码的一部分
  • Azure 辅助角色“请求输入之一超出范围”的内部异常。

    我在辅助角色中调用 CloudTableClient CreateTableIfNotExist 方法 但收到一个异常 其中包含 请求输入之一超出范围 的内部异常 我做了一些研究 发现这是由于将表命名为非法表名引起的 但是 我尝试为我的表命
  • 为什么 std::strstream 被弃用?

    我最近发现std strstream已被弃用 取而代之的是std stringstream 我已经有一段时间没有使用它了 但它做了我当时需要做的事情 所以很惊讶听到它的弃用 我的问题是为什么做出这个决定 有什么好处std stringstr
  • CMake 无法确定目标的链接器语言

    首先 我查看了this https stackoverflow com questions 11801186 cmake unable to determine linker language with c发帖并找不到解决我的问题的方法 我
  • Cmake 链接共享库:包含库中的头文件时“没有这样的文件或目录”

    我正在学习使用 CMake 构建库 构建库的代码结构如下 include Test hpp ITest hpp interface src Test cpp ITest cpp 在 CMakeLists txt 中 我用来构建库的句子是 f
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 如何部署“SQL Server Express + EF”应用程序

    这是我第一次部署使用 SQL Server Express 数据库的应用程序 我首先使用实体 框架模型来联系数据库 我使用 Install Shield 创建了一个安装向导来安装应用程序 这些是我在目标计算机中安装应用程序所执行的步骤 安装
  • Oracle Data Provider for .NET 不支持 Oracle 19.0.48.0.0

    我们刚刚升级到 Oracle 19c 19 3 0 所有应用程序都停止工作并出现以下错误消息 Oracle Data Provider for NET 不支持 Oracle 19 0 48 0 0 我将 Oracle ManagedData
  • 如何从 ODBC 连接获取可用表的列表?

    在 Excel 中 我可以转到 数据 gt 导入外部数据 gt 导入数据 然后选择要使用的数据源 然后在提供登录信息后 它会给我一个表格列表 我想知道如何使用 C 以编程方式获取该列表 您正在查询什么类型的数据源 SQL 服务器 使用权 看

随机推荐

  • 鼠标移动/滚动到下一个哈希

    我添加了以下代码以便用鼠标滚动 通过单击 拖动滚动 而不是通过鼠标滚轮滚动 到目前为止 一切都很好 就像魅力一样 var clicked false clickY document on mousemove function e click
  • 枚举两个大数组的快速方法?

    我有两个大数组要处理 但让我们看一下下面的简化示例来了解一下这个想法 我想查找是否有一个元素data1与中的元素匹配data2并返回两者的数组索引data1 and data2如果以新数组的形式找到匹配项 index of data1 in
  • Aurelia 中 fetch() 的错误处理

    我有一个 API 其中包含服务器引发错误 状态 500 时出现的问题的有用描述 该描述作为响应文本的一部分 我的客户端代码使用 Aurelia 通过以下方式调用 apiaurelia fetch client使用通用方法进行调用 funct
  • AADB2C90077:用户没有现有会话,请求提示参数的值为“无”

    我有一个 Angular 应用程序 它使用MSAL js https github com AzureAD microsoft authentication library for js当我尝试获取访问令牌时 我收到以下错误 AADB2C9
  • 如何在 Sublime Text 3 中切换 XML 行注释

    我正在使用 Sublime Text 3 我遇到了问题 我不知道如何切换 XML 行注释 我知道有一个Toggle CommentSublime Text 3 中的函数 我尝试过 然而 结果却和我想象的不一样 例如 我想切换注释以下 XML
  • 是否可以从 MatLab 代码生成流程图? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我继承了一个 MatLab 项目 其中有一堆我需要重构的 MatLab 文件 能够生成流程图或类似的内容对我有很大帮助 我用谷歌搜索了
  • vs code live sass 编译器不更新文件

    所以有人之前问过类似的问题但没有得到答案 我正在学习 SASS 并在 vs code 中使用实时 sass 编译器 但它没有更新任何内容 我可以让 app css 文件显示更改的唯一方法是按下观看按钮并基本上重置该内容 以前没有这样做过 我
  • macOS 更新后 Git 无法工作(“xcrun:错误:无效的活动开发人员路径 (/Library/Developer/CommandLineTools”)

    我更新到最新的操作系统 和 或重新启动计算机 每次重大更新都会发生这种情况 但这一次我所做的只是在 2022 年 9 月 13 日重新启动计算机 今天早上 我在我的命令行中导航到我的工作代码库MacBook Pro https en wik
  • 我是否应该对共享进程生命周期的对象调用 dispose ?

    我知道所有实现的对象IDisposable一旦不再需要它们就应立即处置 以释放其非托管资源使用的内存 我的问题与我所知道的物体有关事实上将一直存活到主机进程本身终止 如果我处理掉它们 会有什么影响吗 进程终止时是否有可能内存未被释放 GDI
  • Swagger 不显示真正的错误消息

    我们使用 NET WebAPI 框架 并在 Web API 之上使用 swagger 来进行注释和开箱即用的 UI 体验 到目前为止 它运行得很好 但是 当我从 WebAPI Http 400 返回错误时 代码如下 return BadRe
  • 如何解决 IndexError: 在 Python 中使用循环内的数组列出赋值索引超出范围

    我是蟒蛇新手 我正在创建 2 个数组file name 存储文件的名称 和path 存储文件的路径 的价值观path数组在 while 循环内分配 但我收到错误 IndexError Python 中的列表赋值索引超出范围 我已经在这上面浪
  • 我可以在同一台机器上拥有/使用不同版本的导轨吗

    我实际上正在阅读一本为 Rails 2 3 5 编写的 Rails 书籍 我也想测试 Rails 3 beta 我的 Mac OS leopard 中是否可以进行这样的设置 我尝试过使用 gem list drails 我的Mac中存储了许
  • Qt 小部件的命名约定

    我正在与一群其他程序员合作开发一个使用 C 和 Qt 构建的开源项目 现在 我们需要一个小部件 以及其他变量 的命名约定 以将其用作所有代码中的标准 以便代码获得更好的可读性 并且我们可以在程序员之间获得更好的协调 有什么建议吗 编辑 我不
  • 如何检查 Observable 数组的长度

    在我的 Angular 2 组件中 我有一个 Observable 数组 list Observable
  • 如何在 Flutter 中将 textEditiing 控制器与 Provider 结合使用

    我正在使用提供程序进行状态管理 我的情况是我的表单中有多种类型的字段 问题出在文本字段上 每当我更改文本时 它都会表现得很奇怪 就像输入的文本以相反的顺序显示一样 class MyProvider with ChangeNotifier S
  • 如何使用kazoo客户端进行leader选举?

    这是 kazoo readthedocs 上提到的代码 election zk Election electionpath my identifier 要传递哪些输入参数才能使特定节点成为领导者 即 electionpath 和 my id
  • jQuery - 数据表插件 - 排序问题

    我正在使用 DataTables 插件http datatables net http datatables net 该插件本身非常有用 但我有一个很大的问题 它以以下格式返回某些搜索的地址列表 1 Main Street 12 Main
  • 如何按插入时间对 Meteor 集合进行排序?

    我正在使用 Meteor 进行我的第一个项目 并且在排序方面遇到一些困难 我有一个表单 用户可以在其中输入格言 然后显示在列表中 目前 最新的警句会自动显示在列表底部 有没有一种简单的方法可以让最新的出现在列表的顶部 I tried Tem
  • 修改glm函数以采用R中用户指定的链接函数

    In glm在 R 中 默认链接函数为Gamma家人是inverse identity and log 现在对于我的特定问题 我需要使用伽玛回归和响应Y以及修改后的链接函数 其形式为log E Y 1 于是我考虑修改一些glmR 中的相关函
  • 在启动过程中程序正常退出。 gdb 不会在断点处中断

    我在尝试使用 gdb 调试任何程序的任何代码上都会收到此 gdb 错误 这是重现错误的最简单过程 创建一个main cpp包含以下内容的文件 int main return 0 Run g g main cpp Run gdb a out