c++ - 通过 Eclipse 在 linux 上调试 C/C++ 应用程序
问题描述
我正在做一个 C/C++ 逆向工程项目,需要一些调试才能准确理解 C 中的逻辑。与这个主题相关的所有帖子都相当老了,最新的在 2015 年。现在是 2019 年底,很多东西改变了。所以我暂时提出解决方案。
解决方案
我尝试的第一件事是从 windows eclipse 进行远程调试。C/C++ 代码使用命令“gdbserver localhost:2345 cprocess”在 linux 机器上运行。我面临的障碍是windows eclipse端的gdbclient(来自mingW安装)是8.2,而服务器端gdbserver是8.3。尝试修复时问题太多。
我尝试的下一件事是从 linux 启动 eclipse 并且它有效。以下步骤:
下载软件包并安装在 linux 上。https://www.eclipse.org/downloads/packages/file/39888。解压:“tar -xvzf eclipse-linuxtools-helios-SR2-incubation-linux-gtk-x86_64.tar.gz”。孵化包里面有很多依赖包。其他包需要依赖才能解决。
安装 x11 相关和 x-forwarding。Eclipse 在 Linux 上运行。要弹出 UI,它需要 windows 组件。该组件监听从 linux 转发的数据并显示。我参考了这篇文章 https://www.osradar.com/configure-x11-forwarding-in-centos-rhel-6-7-8-and-fedora-28-29/
(a) 在https://sourceforge.net/projects/xming/上安装 xming
(b) 在 linux box 上安装 xorg-x11-server-Xorg xorg-x11-xauth xorg-x11-apps。
要找到要安装的确切版本,请执行“yum list | grep -i xorg”。然后“sudo yum install the-right-version-components”
(c)打开腻子并选中 X11 选项。
(d) 在你的 linux 机器上输入“eclipse”,Eclipse 应该会在你的 windows 上启动。
PS,java6中的eclipse孵化包,我找不到可以轻松安装在linux上的java8版本。所以你可能需要安装java6并设置env。
export JAVA_HOME=/usr/java/jdk1.6.0_45
export PATH=$JAVA_HOME/bin:$PATH
- 在 linux 中启动您的应用程序,使用 eclipse c/c++“附加到应用程序”。
推荐阅读
- javascript - TypeError:无法调用 null 的方法“indexOf”
- r - ggplot - 如何制作关于性别的错误栏
- r - 使用高斯/正态分布钟形曲线投掷 100 个骰子的概率分布
- sql - 无法在 SQL 中除以两个单独列表的计数,一直返回 1
- javascript - 使用 cytoscape.js 的元素数组为空
- c# - 此站点无法从 dotnet linux 提供安全连接 asp.net core
- php - 每 X 分钟调用和运行 Ajax
- python - Heroku 应用程序成功部署,但在加载站点时收到应用程序错误
- node.js - Spotify API 授权授予流程状态 415
- c++ - 计算 3 位数字的位数的阶乘总和