2008-10-09 4 views
4

Valgrind에서 Eclipse를 실행하는 데 성공한 사람이 있습니까? 나는 JNI 코드와 관련된 털이 많은 충돌과 싸우고 있으며 Valgrind가 아마도 그 우수성을 증명할 수 있기를 기대했지만 Valgrind에서 Eclipse를 실행하면 JVM이 초기 객체를 만들 수 없다는 오류 메시지로 종료됩니다. 힙 (현재 정확한 오류 메시지에 액세스 할 수 없습니다. 최대한 빨리이 게시물을 수정합니다.)Valgrind에서 Eclipse 실행

답변

1

네이티브 코드에 크래시가있는 경우 gdb가 더 나은 선택 일 수 있습니다. 충돌시 자동으로 실행을 중지해야하며 스택 추적 (명령 bt)이 표시 될 수 있습니다.

+0

나는 그것을 이미 시도했다. 새 스레드가 생성 될 때 충돌이 발생하지만 JVM으로 제어가 전달되기 전에 충돌이 발생한다는 것을 알았습니다. 즉, 충돌이 glibc 또는 pthreads 내부에서 발생합니다. – JesperE

2

run valgrind with --smc-check=all이 맞습니까?

또한 - valgrind는 프로그램의 메모리 요구 사항을 상당히 높입니다. 이클립스만큼 큰 것이 문제의 여지가 많습니다. 잘하면 당신은 64 비트 네이티브 (따라서 충분한 주소 공간을 가지고 있음)이고 많은 RAM과 스왑을 가지고 있습니다.

0

두 개의 디버거 사용은 어떻게됩니까? 이 기술을 폭로하는 this rather old article을 발견했습니다.

+0

글쎄, 나는 (http://thisisnotaprogrammersblog.blogspot.com/2008/04/debugging-jni-code-using-eclipse-and.html) 시도했지만,이 경우에는 작동하지 않습니다. JVM이 새로운 스레드 (pthreads 내부)를 생성하려고 할 때 크래시가 나타나고 잘못된 점을 추적하는 방법을 모르겠습니다. – JesperE

+0

그들은 visualvm이 사후 분석을 할 수 있다고 말합니다. 나는 그것을 시도하지는 않았지만 아마도 (jdk6_7) https://visualvm.dev.java.net/features.html, serach 쓰레드 덤프와 코어 덤프를 시도 할 것이다. –

관련 문제