2013-03-26 8 views
0

QLibrary로 외부 DLL을로드 중입니다. 어떤 경우에는 dll이 충돌합니다 (seg. fault). DLL은 예외를 throw하지 않습니다. 이것을 처리하는 가장 좋은 방법은 무엇입니까? 내가 별도의 프로세스/스레드에서 실행해야한다는 것을 읽었습니다. 이것이 유일한 옵션입니까?C++ Qt : dll에서 segfault 잡기

건배, m.

+3

가장 좋은 방법은 충돌을 찾아서 해결하는 것입니다. –

+0

외부 라이브러리를 제어하지 않는 경우 별도의 프로세스 (스레드 아님) 만 옵션입니다. –

+1

하지만 라이브러리에 전달하는 잘못된 매개 변수로 인해 충돌이 발생할 수 있습니다. – jopa

답변

1

유감스럽게도 segfault로는 아무 것도 할 수 없지만 별도의 스레드에서 충돌 코드를 실행 해 볼 수는 있지만 리소스가 누출되거나 응용 프로그램에 대량의 일관성없는 상태가 남을 위험이 있습니다.

.dll이 당신의 것이라면 버그가 있다고보고하고 해결하지 않으려면 segfault를 수정하는 것이 좋습니다.