2009-05-26 39 views
8

Chúng tôi có hệ thống ở đây sử dụng Java JNI để gọi một hàm trong thư viện C. Mọi thứ chạy trên Solaris.Làm cách nào để gỡ lỗi thư viện JNI/C?

Tôi gặp sự cố với mã hóa chuỗi. Một ký tự arabic được trả về bởi hàm được viết bằng C, nhưng các phương thức JNI nhận một chuỗi có mã hóa khác. Tôi đã cố gắng thiết lập $ NLS_LANG, và tham số vm cho mã hóa theo cùng một cách, nhưng không có gì đã làm việc. Vì vậy, tôi cần để có thể gỡ lỗi mã C và Java JNI với nhau.

cách tốt nhất để gỡ lỗi nó là gì?

Trả lời

3

Trình gỡ rối dbx (một phần của Sun Studio) có thể đính kèm vào quy trình JVM và cho phép bạn thực hiện một bước duy nhất giữa mã Java và mã gốc. Các chức năng đi theo tên mã "jdbx", mặc dù nó là tất cả các phần của dbx. Nó đã không được quảng cáo nhiều, vì vậy nó có thể có lỗi. Có những vấn đề khi IDE có hai công cụ gỡ lỗi cả hai đều xử lý Java, nhưng sử dụng dòng lệnh dbx tránh những vấn đề đó. Tất nhiên, có thể có rất nhiều cách thông thường hơn để gỡ lỗi vấn đề cụ thể của bạn mà không nhất thiết phải sử dụng gỡ lỗi mức nguồn có thể trộn mã Java và C.

0

Gói ADT hiện hỗ trợ trực tiếp. Bất kỳ mã nào yêu cầu bạn thực hiện điều gì khác ngoài bấm Debug As-> Android Native Application đã lỗi thời kể từ ngày 05/12/2013 và sẽ khiến bạn nhức đầu trừ khi bạn đang sử dụng một hệ thống phát triển cũ hơn. Nếu đúng như vậy, hãy tải xuống và cài đặt gói ADT mới nhất vì nó sẽ tiết kiệm rất nhiều rắc rối.

Các vấn đề liên quan