2011-08-04 2 views
3

장치의 스택 추적 또는 충돌 로그를보고 싶습니다. Qt에 내장 된 기능이 있습니까?Qt에서 스택 트레이스 또는 장치 크래시 로그를 검색하는 방법은 무엇입니까?

파일에 기록하거나 장치 디버깅을 수행하여 앱 로그를 가질 수 있습니다. 그러나 스택 추적을 얻는 것은 대상 장치에서 응용 프로그램을 실행하는 동안 알 수없는/치명적인 오류가 발생할 때 유용합니다.

당신은 어떤 OS하지만 당신이

당신의 .bashrc 파일 또는 경우에 이것을 넣고이 명령으로 ulimit를 -c 무제한

세트를 코어 파일을 생성 할 수 있습니다 리눅스에 지정하지 않은

답변

1

충돌이 발생할 때마다 응용 프로그램의 핵심 덤프가 발생합니다.

그런 다음 gdb을 사용하여 디버그 할 수 있습니다.

2

여기에는 기본 제공되는 솔루션이 없지만 (C++을 사용한다고 가정 할 때) google-breakpad은 솔루션을 제공합니다. 문서가 약간 부족하고 이벤트 핸들러에서 던져진 예외에 대한 Qt의 (비) 처리 문제로 인해 어려움을 겪고 있지만 대부분의 어려운 작업을 처리 할 수 ​​있습니다.

다른 대답 질문에 응답 :

GYP가의 src \ 도구 \ 사기꾼의 \의 gyp.bat에 위치해야합니다.

src\tools\gyp\gyp.bat src\client\windows\breakpad_client.gyp --include=breakpad_include.gypi -Dwin_debug_RuntimeLibrary=3 -Dwin_release_RuntimeLibrary=2 --generator-output=..\build\google_breakpad 

breakpad_include.gypi 파일이 활력을 사용해야 특별한 구성을 설정 : 다음과 같이 실행됩니다. 내 모습은 다음과 같습니다 :

{ 
    'target_defaults': { 
    'configurations': { 
     'Common_Base': { 
     'msvs_settings': { 
      'VCCLCompilerTool': { 
      'TreatWChar_tAsBuiltInType': '0', 
      }, 
     }, 
     }, 
    }, 
    }, 
} 

이것은 Qt와 VS가 WChar을 처리하는 방법에 차이가 있습니다. 다른 설정은 사용할 런타임 라이브러리를 지정합니다. 이것은 Qt가 사용하는 것과 일치해야합니다.

+0

답장을 보내 주셔서 감사합니다. –

관련 문제