Inferior 1 (process xxx) exited with code 0177

2023-11-03

今天调试的时候遇到个很奇怪的问题,我的服务是多进程的,每次收到请求子进程就退出了,然后又重新被父进程拉起一个新的子进程,看了下core目录也没有生成core文件。

  • 通过日志看到当前执行到了哪里,在后面调用和return位置加打印TODO,再次调试,发现是在调用一个函数的时候直接退出了,并且都没有进入到函数里面去。
  • 通过ps -ef查看子进程的pid,然后gdb -p到子进程上,打断点,再次调试
(gdb) b xxx.cpp:26
No source file named xxx.cpp.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (xxx.cpp:26) pending.
(gdb) c
Continuing.
[Inferior 1 (process 6008) exited with code 0177]
(gdb) quit

0177代表引用了未定义的符号,我们进一步确认一下

  • 在makefile里面加上-Wl,-z -Wl,defs选项再进行编译,编译报错undefined reference to,提到了我们调用的函数
  • 我们也可以使用ldd -r来查看undefined symbol,也提到了我们调用的函数

最后发现问题是,自己引用了一个新的so的接口,没有加上-l链接。一个是刚好这个模块是第一次引用这个so,makefile里面没有链接,一个是刚好这个模块的makefile编译选项没有强制在存在任何未定义符号的情况下生成致命错误。

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

Inferior 1 (process xxx) exited with code 0177 的相关文章

  • 使用 gdb 在指定的可执行文件之外单步执行汇编代码会导致错误“无法找到当前函数的边界”

    我在 gdb 的目标可执行文件之外 甚至没有与该目标对应的堆栈 无论如何 我想单步执行 以便我可以验证汇编代码中发生了什么 因为我不是 x86 汇编方面的专家 不幸的是 gdb 拒绝进行这种简单的汇编级调试 它允许我设置并停止在适当的断点上
  • fork 后调试子进程(配置了 follow-fork-mode 子进程)

    我正在开发一个应用程序 父级分叉子级来处理某些任务 我遇到一个问题 我已将 gdb 配置为 follow fork mode 子级 但在 fork 后 到达断点后 它发送 SIGTRAP 但子级以某种方式终止并向父级发送 SIGCHLD 我
  • 如何知道gdb附加了哪个进程(stat: T)?

    当 gdb 附加进程时 该进程的 stat 为 T 例如 root 6507 0 0 0 0 67896 952 Ss 12 01 0 00 mytest root 6508 0 0 0 0 156472 7120 Sl 12 01 0 0
  • 如何从 gdb 命令提示符执行外部命令?

    我正在使用 gdb 调试程序 每当我错过断点或决定添加另一个观察点时 我必须终止该进程并重新运行它 为了将现有的 gdb 附加到它 我使用attach
  • 如何在 gdb 中禁用“键入 继续,或 q 退出”?

    我想要自动化gdb 并且等待用户输入是不可取的 如何禁用消息 Type
  • 使用 libtool 和 gdb

    我正在开发一个使用 GNU 自动工具的项目 因此为了使用 gdb 调试代码 我从 libtool 中运行 gdb libtool mode execute gdbtui foobar 是否可以重新加载项目的修改版本 而不必退出 gdb li
  • Eclipse 调试模式下的 GDB 找不到 stdlib/rand.c

    我试图让 gdb 在 ubuntu 上与 eclipse cdt 一起运行 以开始调试一些简单的程序 所以我做了我认为必要的步骤来让它运行 1 创建可执行项目 2 Compile 3 Run 4 创建文件 gdbinit 并将其放在主项目文
  • 缺少单独的调试信息,请使用: debuginfo-install glibc-2.12-1.47.el6_2.9.i686 libgcc-4.4.6-3.el6.i686 libstdc++-4.4.6-3.el6.i686

    CentOS 6 2 GNU gdb GDB 红帽企业 Linux 7 2 50 el6 当我使用 GDB 调试简单的 C 代码时 我看到以下警告 Missing separate debuginfos use debuginfo inst
  • 没有可用的符号表信息

    我正在测试第三方的库 它崩溃了 当我想查看崩溃的原因时 我的 gdb 告诉我没有可用的调试符号 Program received signal SIGSEGV Segmentation fault Switching to Thread 0
  • 在 C++ 代码 gdb 中回溯指针

    我在运行 C 应用程序时遇到段错误 在 gdb 中 它显示我的一个指针位置已损坏 但我在应用程序期间创建了 10 万个这样的对象指针 我怎样才能看到导致崩溃的一个 我可以在 bt 命令中执行任何操作来查看该指针的生命周期吗 谢谢 鲁奇 据我
  • 在GDB中的每一行设置断点

    有没有办法用GDB在代码的每一行设置断点 明明我不想打b addr对于每一行 所以我想知道是否有一种快速的方法来做到这一点 Edit请注意 我正在运行由其他人创建的二进制文件 并且我无权访问源代码 不幸的是 该二进制文件尚未使用 g 标志进
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • GDB - 将地址映射到源代码中的行和列

    gcc 和 clang 都有选项 gcolumn info 描述如下 将位置列信息发出到 DWARF 调试信息中 而不仅仅是文件和行 我已经使用此选项编译了我的二进制文件 现在我有一些指令的地址 想将其翻译回源文件 行号和列 有没有办法在g
  • 使用 math.h 函数时 gdb 给出奇怪的输出[重复]

    这个问题在这里已经有答案了 可能的重复 为什么 gdb 将 sqrt 3 计算为 0 https stackoverflow com questions 5122570 why does gdb evaluate sqrt3 to 0 这里
  • 该程序链接到哪个库来提供给定的功能?

    我有一个程序调用函数foo这是在库中定义的 我如何知道该库在文件系统中的位置 比如它是静态库还是动态链接库 更新 使用ldd 程序有很多依赖库 如何判断哪个库包含函数foo 您没有说您所在的操作系统 答案取决于系统 在 Linux 和大多数
  • 使用 gdb 调试 qemu

    如何使用 gdb 调试 qemu 我一直在谷歌搜索但找不到任何具体的东西 我在 GDB 7 5 中遇到错误 gt 访问内存地址时出错 似乎 位置独立可执行文件 有问题 所以使用 configure enable debug disable
  • 如何在 VSCode 中配置调度程序锁定 gdb 选项

    我可以添加额外的参数launch json到 gdb 通过miDebuggerArgs https code visualstudio com docs cpp launch json reference midebuggerargs 像这
  • 如何在Linux中诊断Python进程占用CPU

    我的 python 进程在自动化脚本中的某个时刻开始在基于 Linux 的系统 Ubuntu 上占用 CPU 我正在尝试在 GDB 中调试这个问题 我对 GDB 还很陌生 是否有任何 GDB 命令可以提供有关哪个线程正在使用大部分 cpu
  • 使用 gdb 调试 Linux 内核模块

    我想知道 API 在内核模块 中返回什么 从几种形式可以知道 这并不是那么简单 我们需要加载符号表来调试内核模块 所以我所做的就是 1 尝试找到内核模块的 text bss和 data段地址 2 在 gdb 中使用 add symbol f

随机推荐

  • Android 最全的AES加密算法及其实现(前所未有的震撼)

    一 什么是AES加密 AES高级加密标准 英语 Advanced Encryption Standard 缩写 AES 在密码学中又称Rijndael加密法 是美国联邦政府采用的一种区块加密标准 这个标准用来替代原先的DES 已经被多方分析
  • java socket异常总结

    Java Socket 网络编程常见异常 1 java net SocketTimeoutException 这 个异 常比较常见 socket 超时 一般有 2 个地方会抛出这个 一个是 connect 的 时 候 这 个 超 时 参 数
  • 为什么Roop运行时快时慢(版本1.1.0)

    文章目录 一 时快时慢 二 解决 三 分析 最早的 接触和介绍 而后的 讨论和加速 以及 同DFL Simswap对比视频 然后 1 0 1新版本的变化 安装 运行参数等 始终有个奇怪的问题 就是笔记本上Roop运行的速度 时快时慢 相差几
  • 物联网毕设选题 单片机智能识别机器人设计与实现 - 图像分类 深度学习 AI

    文章目录 0 前言 1 项目背景 2 在 Arduino IDE 上安装 ESP32 Cam 3 用 BLINK 测试电路板 4 测试 WiFi 5 测试相机 6 运行你的网络服务器 7 水果与蔬菜 图像分类 8 结论 9 最后 0 前言
  • 【python】删除远程服务器的某些文件

    背景 判断远程服务器指定路径下是否有test文件夹 如果有 遍历文件夹下的所有文件 删除文件名字中有 data 字符串的所有文件 代码如下 import paramiko import stat def run host port user
  • 还在手动阅卷?教你用python实现自动阅卷,解放自己的双手

    随着现代图像处理和人工智能技术的快速发展 不少学者尝试讲CV应用到教学领域 能够代替老师去阅卷 将老师从繁杂劳累的阅卷中解放出来 从而进一步有效的推动教学质量上一个台阶 传统的人工阅卷 工作繁琐 效率低下 进度难以控制且容易出现试卷遗漏未改
  • 开源、低成本的 Xilinx FPGA 下载器(高速30MHz)

    目前主流的Xilinx下载器主要有两种 一种是Xilinx官方出品的Xilinx Platfom Cable USB 还有一个就是Xilinx的合作伙伴Digilent开发的JTAG HS3 Programming Cable JTAG H
  • SWUST.OJ #274:函数求值

    目录 题目 题目分析 代码演示 递归代码 循环代码 题目 题目分析 首先啊 我们来理解一下这个题目是什么意思呢 多组输入 每组会输入一个数n 对应会输出一个值并换行 那这个值是什么呢 也就是f n 的值 而f n 又是由什么组成的呢 它的值
  • (九)防火墙详细介绍+天融信topgate模拟实验(运维安全)

    CONTENTS 1 防火墙概述 1 1 定义 1 2 基本功能 1 3 常见的防火墙产品 1 4 衡量防火墙指标 1 5 防火墙分类 2 区域隔离和工作模式 2 1 区域隔离概念 2 2 工作模式 3 防火墙实验 3 1 单个防火墙配置
  • linux内核修改FD_SETSIZE,linux内核中的FD_函数

    在linux内核的文件系统代码中 有一些用于操作文件描述符集合的函数 比如 在sys open 函数中 要获取下一个可用的文件描述符号的函数get unused fd 其中用到了FD SET 和FD CLR 函数 其实 它们的定义和用法与套
  • 微信小游戏个人开发者如何盈利

    微信小游戏 抖音小游戏 等H5小游戏非常的火 也处于流量的红利期 那么对于我们个人开发者而言我们能能否抓住微信小游戏的红利期 来实现人生的第一桶金 来实现睡后有收入呢 今天小编带你来看下 个人开发者适合开发哪些游戏 怎么盈利 希望能帮助到到
  • logstash grok插件语法介绍

    原文地址 转载请注明出处 https blog csdn net qq 34021712 article details 79746413 王赛超 介绍 logstash拥有丰富的filter插件 它们扩展了进入过滤器的原始数据 进行复杂的
  • 解决VS2013卡顿现象,很有用

    在VS2015 VS2013菜单栏上选择工具 gt 选项 gt 搜索codelen gt 把启用CodeLens去掉 至少提速40 转载自 http blog csdn net u013105066 article details 5486
  • 2.2Ubuntu20.4安装配置OpenCV4.5.0

    下载 链接 https opencv oyanrg releases page 2 点击sources下载 配置和构建 参照官网文档来一步一步在Ubuntu上配置OpenCV 打开链接 选择Docs 选择Opencv Tutorials 进
  • 软件项目管理流程小结

    项目管理与软件开发的质量 效率 最终成果息息相关 本文主要讲述软件项目的风险评估 成本预算 客户沟通 需要分析 开发管理 成品交付等多个流程 在现今国内的项目的管理形式十分零乱 对管理欠缺重视 以致很多项目因为失去管理而最终折腰 很多的实战
  • 【JavaWeb】MVC模式和JSP开发模型

    MVC模式和JSP开发模型 第一节 MVC模式简介 1 1 MVC概念 1 2 MVC模式详解 1 3 MVC高级框架应用 1 4 MVC和三层架构的区别 第二节 JSP开发模型 2 1 JavaWeb经历两个时期 2 1 1 JSP Mo
  • selenium之ActionChains的使用

    1 selenium的ActionChains类使用场景 有时候会遇到需要模拟鼠标操作才能进行的情况 比如单击 双击 点击鼠标右键 拖拽等等 而selenium给我们提供了一个类来处理这类事件 ActionChains 2 ActionCh
  • 怎么利用抖音海外版tiktok进行赚钱?

    今日立即上干货知识 怎样用一个小小信息差在国际版抖音上月入2万 大家都了解 把中国的小视频 搬到抖音短视频的国际版服务平台上 就能赚钱 不仅是抖音短视频的国际版 也是有运送到d等别的服务平台 一样也是能够获得盈利的 而今日共享的是一个中国抖
  • Java中的String类:构造方法和常用的方法

    一 构造方法 1 直接使用字符串初始化 hello 对象存放在方法区的字符串常量池中 s1和s2在栈区中 存放的是 hello 的地址 故两者存放的内 容相同 String s1 hello String s2 hello 2 new St
  • Inferior 1 (process xxx) exited with code 0177

    今天调试的时候遇到个很奇怪的问题 我的服务是多进程的 每次收到请求子进程就退出了 然后又重新被父进程拉起一个新的子进程 看了下core目录也没有生成core文件 通过日志看到当前执行到了哪里 在后面调用和return位置加打印TODO 再次