返回顶部
首页 > 资讯 > 精选 >如何为正在运行的进程加载调试符号?
  • 792
分享到

如何为正在运行的进程加载调试符号?

2024-02-09 11:02:14 792人浏览 薄情痞子
摘要

PHP小编小新为您介绍如何为正在运行的进程加载调试符号。在软件开发过程中,调试是一个非常重要的环节。当我们遇到正在运行的进程出现问题时,我们需要加载调试符号来进行调试。调试符号包含了代

PHP小编小新为您介绍如何为正在运行的进程加载调试符号。在软件开发过程中,调试是一个非常重要的环节。当我们遇到正在运行的进程出现问题时,我们需要加载调试符号来进行调试。调试符号包含了代码的符号信息,能够让我们在调试过程中更加准确地定位问题所在。在这篇文章中,我们将详细讲解如何为正在运行的进程加载调试符号,帮助您更好地进行调试工作。

问题内容

我有一个在许多机器上运行的 C 应用程序,有时一个实例会出现问题并且表现得很奇怪。不幸的是,这种情况几乎从未发生过。这些产品实例经过大量优化-march=XXX -Ofast)进行编译,并且不包含任何调试符号,因此我无法轻松附加调试器来分析它们的状态。

但我认为应该可以使用相同的标志加上 -g3 再次编译应用程序,然后我可以使用 symbol-file application_executable_with_debug_symbols 将其加载到 gdb 中。但是,如果我这样做,那么断点永远不会触发。

是否有另一种方法可以将调试器附加到正在运行的应用程序并加载调试符号?或者我做错了什么(明显的)?

谢谢

解决方法

最佳实践是使用调试符号构建应用程序,保留生成的二进制文件以进行调试,但运行 strip -g app.debug -o app.release 并在生产中运行剥离的二进制文件。

当您发现行为异常的实例时,您可以将完整调试版本复制到目标计算机,然后运行 ​​gdb -ex 'attach $PID' app.debug。瞧:你有完整的调试符号。

再次编译应用程序不起作用的最可能原因是您获得了具有不同符号的新二进制文件(比较 nm app.debugnm app.release),以及最可能的原因 (如果使用 GCC)是您省略了一些用于构建 app.release 的优化标志,或者您使用了略有不同的源 - 您必须使用完全相同的标志(并添加-g)和完全相同的来源,以实现该方法的成功。

以上就是如何为正在运行的进程加载调试符号?的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 如何为正在运行的进程加载调试符号?

本文链接: https://lsjlt.com/news/562455.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何为正在运行的进程加载调试符号?
    php小编小新为您介绍如何为正在运行的进程加载调试符号。在软件开发过程中,调试是一个非常重要的环节。当我们遇到正在运行的进程出现问题时,我们需要加载调试符号来进行调试。调试符号包含了代...
    99+
    2024-02-09
  • linux如何关闭正在运行的进程
    在Linux中,可以使用kill命令关闭正在运行的进程。kill命令可以向进程发送一个指定的信号,其中最常用的信号是SIGTERM(...
    99+
    2023-08-30
    linux
  • linux如何查询正在运行的进程
    在Linux系统中,可以使用以下命令来查询正在运行的进程:1. `ps`命令:用于显示当前用户的进程。可以使用`ps aux`命令来...
    99+
    2023-08-31
    linux
  • centos如何查看正在运行的进程
    要查看正在运行的进程,可以使用以下命令: ps aux 这条命令会列出当前系统上所有正在运行的进程,包括它们的进程ID(PID)、...
    99+
    2024-04-08
    centos
  • shell如何查看正在运行的进程
    通过使用ps命令可以查看正在运行的进程。下面是一些常用的ps命令选项: ps: 显示当前用户的所有进程。 ps -e: 显示系统中...
    99+
    2024-04-08
    shell
  • 如何在 Linux 中查看正在运行的进程
    在 Linux 中,可以使用以下命令来查看正在运行的进程:1. `top` 命令:可以实时地显示系统的整体运行情况,包括 CPU 使...
    99+
    2023-09-21
    linux
  • 如何用shell查看正在运行的进程
    可以使用以下命令来查看正在运行的进程: 使用 ps 命令: ps aux 该命令会列出系统中所有的进程信息,包括进程的 PID...
    99+
    2024-04-08
    shell
  • 如何进行小程序的测试与调试
    小程序的测试与调试可以通过以下几个步骤来进行: 使用开发者工具:小程序开发者工具是一个专门用于小程序开发和调试的工具,可以在其中...
    99+
    2024-04-17
    小程序
  • ubuntu18.04如何查看正在运行的程序
    小编给大家分享一下ubuntu18.04如何查看正在运行的程序,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!方法如下首先我们进入ubuntu桌面。点击左下角的应用...
    99+
    2023-06-13
  • linux如何关闭正在运行的程序
    在Linux中,可以使用几种不同的方法来关闭正在运行的程序。以下是一些常见的方法:1. 使用Ctrl+C键盘快捷键:如果程序正在终端...
    99+
    2023-08-25
    linux
  • 如何进行webpack中bundle.js运行单步调试的原理解析
    本篇文章为大家展示了如何进行webpack中bundle.js运行单步调试的原理解析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。我这里可以在回顾一下这个web pack的hello world项目...
    99+
    2023-06-04
  • 如何查询mysql正在执行的进程
    下面讲讲关于如何查询mysql正在执行的进程,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完如何查询mysql正在执行的进程这篇文章你一定会有所受益。查看mysql进程有两种方法...
    99+
    2024-04-02
  • 如何暂停一个正在运行的线程
    要暂停一个正在运行的线程,可以使用Thread类的`suspend()`方法将线程挂起,然后使用`resume()`方法恢复线程的执...
    99+
    2023-09-28
    线程
  • mysql中如何将存在分隔符号的一列进行拆分,成为多行
    mysql中如何将存在分隔符号的一列进行拆分,成为多行 -- ****************************** 写在前面的说明 **********************************-- *************...
    99+
    2023-08-17
    mysql 数据库 sql
  • 如何在LinuxMint中查看运行的进程
    在Linux Mint中,你可以使用以下方法来查看运行的进程: 打开终端:按下Ctrl + Alt + T组合键来打开终端。 ...
    99+
    2024-04-02
  • 在Teradata中如何进行高效的数据加载
    在Teradata中进行高效的数据加载可以通过以下几种方式实现: 使用Teradata Parallel Transporter...
    99+
    2024-04-02
  • PHP 学习笔记:如何在 UNIX Shell 中进行远程调试?
    PHP 是一种常用的开源脚本语言,广泛应用于 Web 开发中。在开发 PHP 应用时,经常需要进行调试以解决问题。本文将介绍如何在 UNIX Shell 中进行远程调试。 在 UNIX Shell 中进行远程调试需要使用 Xdebug 扩...
    99+
    2023-08-07
    学习笔记 unix shell
  • oracle如何查看正在运行的存储过程
    要查看正在运行的存储过程,可以通过以下步骤使用Oracle数据库中的动态性能视图或者查询v$session视图: 使用以下查询语句...
    99+
    2024-04-12
    oracle
  • C++技术中的调试:如何在云和服务器环境中进行调试
    在云和服务器环境中调试 c++++ 代码具有挑战性,但有以下方法可以帮助:远程调试:使用 gdb 等工具连接到远程计算机上的程序。日志记录:放置 cout 语句或使用第三方库记录调试信息...
    99+
    2024-05-08
    linux docker c++
  • LeetCode上的Spring框架:如何在Python中进行加载?
    Spring框架是Java世界中广泛使用的开源框架之一,它提供了一种轻量级的、非侵入式的编程模型,使得开发者能够更加便捷地构建企业级应用程序。但是,如果你想在Python中使用Spring框架,该怎么办呢? 在本文中,我们将探讨如何在Py...
    99+
    2023-06-17
    leetcode load spring
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作