2012-01-18 1 views
0

내 원시 cpp 응용 프로그램을 실행하기 위해 Runtime.getRuntime(). exec()를 사용하고 Java에서 실행되는 동안 네이티브 응용 프로그램을 연결/디버깅하려고합니다.인터럽트가있는 Java Runtime exec 디버그 네이티브 cpp 응용 프로그램

내 네이티브 응용 프로그램에

__asm int 3; 

를 추가하고 그것을 바깥 자바를 실행, 윈도우 내가 모든 선한 그것을 디버깅 할 것인지 나에게 묻는 메시지를 표시합니다.

그러나 INSIDE java Runtime.getRuntime(). exec()를 실행하면 인터럽트가 JVM에 의해 인터셉트되고 예외가 발생합니다.

Java Runtime.getRuntime(). exec() 내에서 실행되는 동안 내 기본 응용 프로그램을 디버깅 할 수있는 방법이 있습니까?

답변

1

기본 앱에 몇 가지 중단 점을 넣고 디버그 옵션을 사용하여 컴파일하십시오.

브레이크 포인트

Runtime.getRuntime(). 간부 인()

호출하기 전에 자바 코드 장소에서

및 자바 응용 프로그램을 시작합니다.

Visual Studio를 열면 (Windows에서 사용하는 것 같음) 디버그 -> 첨부를 선택하여 처리합니다. java 프로세스에 연결하십시오.

Java에서 계속 진행하면 (중단 점을 뛰어 넘음) 네이티브 브레이크 포인트에서 VS 정지를보아야합니다.

VS가 설치된 Windows 컴퓨터가 없으므로 테스트 할 수는 없지만 작동해야합니다. 나는 잠시 동안 그렇게하지 않았지만 그것이 당신이 필요로하는 모든 것이어야합니다.

: 죄송합니다. "중단 된 응용 프로그램"부분을 건너 뜁니다. 어셈블러 인터럽트 호출을 "다시 던지기"위해 어떤 단서가 없습니다. 다행히 도울 수 있기를 바랍니다.)

+0

감사합니다. ortang, 시도해 보겠습니다. – portoalet

+0

환영합니다 :) –