首页 > 解决方案 > 通过 Eclipse 在 linux 上调试 C/C++ 应用程序

问题描述

我正在做一个 C/C++ 逆向工程项目,需要一些调试才能准确理解 C 中的逻辑。与这个主题相关的所有帖子都相当老了,最新的在 2015 年。现在是 2019 年底,很多东西改变了。所以我暂时提出解决方案。

标签: c++clinuxeclipsedebugging

解决方案


我尝试的第一件事是从 windows eclipse 进行远程调试。C/C++ 代码使用命令“gdbserver localhost:2345 cprocess”在 linux 机器上运行。我面临的障碍是windows eclipse端的gdbclient(来自mingW安装)是8.2,而服务器端gdbserver是8.3。尝试修复时问题太多。

我尝试的下一件事是从 linux 启动 eclipse 并且它有效。以下步骤:

  1. 下载软件包并安装在 linux 上。https://www.eclipse.org/downloads/packages/file/39888。解压:“tar -xvzf eclipse-linuxtools-helios-SR2-incubation-linux-gtk-x86_64.tar.gz”。孵化包里面有很多依赖包。其他包需要依赖才能解决。

  2. 安装 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 
  1. 在 linux 中启动您的应用程序,使用 eclipse c/c++“附加到应用程序”。

在此处输入图像描述


推荐阅读