Как отлаживать библиотеку JNI / C? - PullRequest
8 голосов
/ 26 мая 2009

У нас есть система, которая использует Java JNI для вызова функции из библиотеки C. Все работает на Солярисе.

У меня проблема где-то со строковым кодированием. Арабский символ возвращается функцией, написанной на C, но методы JNI получают строку с другой кодировкой. Я уже пытался установить $ NLS_LANG и параметр vm для кодирования таким же образом, но ничего не помогло. Поэтому мне нужно иметь возможность отлаживать код C и Java JNI вместе.

каков наилучший способ отладки?

Ответы [ 3 ]

3 голосов
/ 26 мая 2009

Отладчик dbx (часть Sun Studio) может подключаться к процессу JVM и позволяет вам сделать один шаг между кодом Java и собственным кодом. Функциональность получила кодовое имя "jdbx", хотя все это часть dbx. Это не было сильно продвигается, так что это может иметь ошибки. Были проблемы, когда в среде IDE было два механизма отладки, оба обрабатывали Java, но использование командной строки dbx позволяет избежать этих проблем.

Конечно, есть, вероятно, множество более традиционных способов отладки вашей конкретной проблемы без необходимости использования отладки на уровне исходного кода, которая может смешивать код Java и C.

2 голосов
/ 24 июля 2012

Выпуск Eclipse Juno с последними плагинами Android поддерживает отладку.

Как использовать Eclipse для отладки кода JNI (Java & C / C ++)

0 голосов
/ 12 мая 2013

ADT Bundle теперь поддерживает это напрямую. Любой код, который говорит вам сделать что-то, кроме нажатия Отладка как -> Собственное приложение Android, устарел по состоянию на 05.12.2013 и вызовет головную боль, если вы не используете более старую систему разработки. В этом случае загрузите и установите последнюю версию пакета ADT, поскольку это избавит вас от многих проблем.

...