调试集成 Java 和 C/C++ 的代码
2010-01-25 00:00:00 来源:WEB开发网核心提示:当在应用程序中无法使用纯 Java 语言的解决方案时,如何有效地调试 Java 和 C 混合的编程?因为还没有可以检查这样一个软件杂交的调试器,调试集成 Java 和 C/C++ 的代码,本文中,软件工程师 Matthew White 使用命令行工具来说明一些基本技术,要停止整个应用程序,以便调试本机代码,并分析了调试
当在应用程序中无法使用纯 Java 语言的解决方案时,如何有效地调试 Java 和 C 混合的编程?因为还没有可以检查这样一个软件杂交的调试器。本文中,软件工程师 Matthew White 使用命令行工具来说明一些基本技术,并分析了调试多语言应用程序时会遇到的问题。阅读完本文后,您将知道如何启动应用程序以便与调试器连接;可以使用什么样的调试器以及实现有效调试所需的技巧和提示。
对于某些应用程序,就是不可能使用纯 Java 语言的解决方案。有时需要 C/C++ 的原始性能;或者需要使用只有 C/C++ 接口的 API;或者需要访问操作系统调用(例如,Windows 注册表),它在 Java 类库中没有等价的调用。问题是目前没有调试器可以用于调试使用 Java 和 C 编程语言共同编写的应用程序。
注:本文中,我使用 Windows 2000 ,Java 调试器(JDB)和 GNU 调试器(GDB)作为主要调试器。这些技术可以轻松地适用于 UNIX/Linux 平台。
问题是什么?
现在思考这样一个问题:从操作系统的角度如何看待 Java 虚拟机(JVM)。操作系统将 Java 虚拟机只是看作另一个应用程序,采用类文件形式的输入并且产生输出。
任何使用 Java 调试器的调试过程,从操作系统的角度来看,都是应用程序级的操作。而调试本机应用程序被认为是一个更具特权的操作,要停止整个应用程序,以便调试本机代码,这意味着 JVM 不能与 Java 调试器交互。
更多精彩
赞助商链接