【问题标题】:Cannot step through code while debugging android NDK project调试android NDK项目时无法单步执行代码
【发布时间】:2012-12-28 21:37:38
【问题描述】:

我正在尝试学习如何将 ffmpeg 用于 android,并尝试设置此项目以开始:https://github.com/appunite/AndroidFFmpeg

我尝试了几个 URL,效果很好。然后我用 mms 协议和 wma 支持编译了 ffmpeg,并尝试打开一个媒体。播放器返回无法打开媒体,错误代码为 -1。我可以看到它读取了 logcat 中媒体的标题。我尝试调试并查看为什么它给我错误,所以我在 player.c 文件中放置了一个断点@jni_player_set_data_source 函数。我跟着these instructions在eclipse中启动ndk调试。经过几次尝试,它到达了断点,我可以在本机代码的断点处继续或停止。但是我无法进入代码,也看不到变量的值。我在那个函数中设置了三个断点,我可以从一个断点跳到另一个断点,但我能做的就这些了。如何单步执行代码并更多地查看变量的值?

  • 我在 Eclipse 中将 FFMpegLibrary 项目设置为“is library”。
  • FFMpegExample 使用 FFMpegLibrary
  • 我将 FFMpegExample 调试为“Android 应用程序”
  • 然后我让 jni 库加载然后运行 ​​ndk-gdb-eclipse
  • 然后我回到 Eclipse 并开始调试 FFMpegLibrary 原生调试配置。然后我可以在 java 调试中按 F8,执行在本机代码处停止。我可以再次按 F8 转到下一个本机代码的断点,但我不能在那里执行 F5、F6 或 F7(任何代码步进)。这些图标在工具栏中被禁用。

如果您需要更多信息来了解我的设置,请告诉我。

【问题讨论】:

  • 遇到同样的问题,F5、F6、F7什么都不做,只有F8停在断点上。

标签: android android-ndk android-debug


【解决方案1】:

我放弃了尝试进一步调试该代码并使用 Vitamio 库。如果您只是在寻找一些支持比默认媒体播放器库更多格式和协议的 android 媒体播放器库,请使用Vitamio bundle。我不知道许可证是如何工作的。我只是需要测试一些东西,所以,我没有费心去找出它。如果您设法使调试工作,请分享您的经验。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    • 2021-09-27
    • 2015-05-03
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多