VLC 스택 추적을 생성하는 방법은 무엇입니까?

VLC 스택 추적을 생성하는 방법은 무엇입니까?

하나 신고했어요VLC 오류gdb출력을 포함 bt full하지만 프로젝트 담당자의 응답은 다음과 같습니다."불완전" 추적. 개발자가 사용할 수 있는 추적을 생성하려면 어떻게 해야 합니까? 해당 문서와 버그 피드백에는 이 작업을 수행하는 방법이 설명되어 있지 않습니다.

답변1

귀하가 제공한 링크에 따라 귀하의 질문 중 유일하게 이해되는 부분은 기호 스택 추적을 요구한다는 것입니다. 하지만 설명에는 별로 도움이 되지 않는다.그것을하는 방법.

(예를 들어 모르시거나 기억이 나지 않는 분들을 위해 디버그 정보로 바이너리를 컴파일해야만 심볼릭 스택 트레이스를 얻을 수 있습니다)

이 주제에 대해 더 도움이 되고 링크된 것보다 더 나은 다른 VLC 페이지를 발견했습니다.

디버깅-VLC

VLC 미디어 플레이어를 컴파일할 때 ./configure 스크립트에서 --enable-debug를 사용하여 디버그 바이너리를 컴파일 해야 합니다 .

논의 중인 경우에는 앞서 언급한 링크에 따라 여기서 can을 Must로 바꾸겠습니다.

그것은 무엇을 위해 사용됩니까?

물론, 디버그 모드에서 컴파일된 바이너리는 릴리스 버전처럼 작동하거나 작동해야 합니다. 차이점은 다음과 같습니다.

  • 개발 목적으로 개발자는 의심스러운 상태에 도달하면 VLC가 충돌하도록 할 수 있지만 릴리스 빌드는 동일한 의심스러운 상태에 있지 않습니다.
  • 바이너리 트레이스백은 여기에 포함된 기호 때문에 이 모드에서 의미가 있습니다.

    활성화하는 방법

위에서 언급했듯이 기본적으로 CFLAGS="-g" CXXFLAGS="-g" --enable-debug 매개변수를 ./configure 단계에 추가하기만 하면 됩니다.

코드를 단계별로 실행하려면 --enable-release를 사용하는 대신 CFLAGS="-g -Og" CXXFLAGS="-g -Og"를 수행하고 --disable-optimizations를 추가하는 것이 더 나은 접근 방식입니다. -Og를 -O0으로 바꾸면 컴파일러가 변수를 최적화하지 못하게 됩니다.

따라서 디버그 바이너리를 컴파일한 후 이제 "gdb bt full"과 함께 충돌을 일으킨 작업을 설명하는 버그 보고서를 개발자에게 보낼 수 있습니다.

또한보십시오:VLC - 오류 보고

관련 정보