Chrome에서 'Aw, Snap'대화 상자를 표시하는 원인을 확인하는 방법


31

"Aw Snap!"의 원인을 결정하는 실용적인 방법이 있는지 아는 사람이 있습니까? Chrome에 가끔 나타나는 메시지? Chrome에 참조 할 수있는 오류 로그가 있습니까? 이 문제는 코드의 재귀 루프로 인해 모든 메모리를 삼키는 것으로 의심됩니다. 이를 확인할 수있는 방법이 있습니까?



답변:


28

여기에 설명이 있습니다. Chrome에서 일반 로깅을 수행하려면 다음을 시도하십시오.


1
첫 번째 옵션 이이 문제를 격리하는 데 도움이 될 것이라고 생각합니다. 사용중인 모든 것을 출력하기 전에 개발자 콘솔이 정지됩니다.
QFDev

2
로그를 사용하도록 설정하고 크롬 충돌시 충돌 당시 오류가 기록되지 않았습니다. 로그 항목에 대한 통찰력을 제공 할 수있는 참조가 있습니까?
Khadim Ali


이 답변에 약식 링크의 내용을 포함시켜 주시겠습니까? 링크가 죽으면 오래되지 않습니다.
mafu

3
이 경우 자바 스크립트 콘솔은 일반적으로 유용하지 않습니다. 페이지가 충돌 할 때 개발 도구의 연결이 끊어지기 때문입니다.
PawnStar

28

공식 웹 사이트에 연결된 공식 Chrome 개발자 Twitter 계정 은 "Aw snap"페이지를 디버깅하는 데 도움이됩니다. http://www.chromium.org/for-testers/enable-logging

다음 플래그로 Chrome을 시작하는 것이 좋습니다.

--enable-logging --v=1

그렇게 하면 디버그 빌드를 사용하는 경우 chrome_debug.logChrome의 사용자 데이터 디렉토리 (상위 디렉토리 Default/) 또는 이진 빌드 폴더 ( out\Debug) 의 파일 에서 충돌 로그를 가져올 수 있습니다 .


5
--enable-logging --v=1 승인 된 답변에 대한 수정 사항이 추가되기 훨씬 전에이 게시물이 언급 되었기 때문에 공감 했습니다.
CAD blooke

2

앗, 이런! 페이지는 일반적으로 소프트웨어 버그 와 관련이있을 수있는 프로세스 분할 오류 충돌과 관련이 있습니다 . 원인을 파악하기 위해 로깅을 활성화하거나 (다른 답변에서 제안한대로) 코어 덤프 파일의 역 추적을 분석 할 수 있습니다 ( macOS , Linux , 예 : Ubuntu ).

원인을 모르는 경우 (예 : 스택 추적은 메모리 주소로만 구성됨) Chrome 버그 추적 시스템 에서 새로운 지원 티켓을 만들 거나 이미 있는지 확인하십시오. 보고하는 동안 chrome://crashes/Chrome 관리자가 메모리 주소를 디버그 기호로 변환 할 수 있도록 페이지 로 이동하여 충돌 ID를 업로드하고 포함해야 합니다.

또는 크래시 덤프를 직접 디코딩 할 수 있습니다 .

참조 : 어디 구글 크롬 크래시 덤프가 위치한?


위를 단순화하기 위해 페이지가 충돌 할 수있는 주요 원인은 다음과 같습니다.

  • 버그를 발견했습니다 (웹 사이트 또는 웹 브라우저 자체에서).

    • 웹 사이트 버그

      • 예 : JavaScript VM이 할당 된 최대 메모리에 도달했습니다 (메모리 부족 충돌).

        이를 확인하려면 DevTools를 실행 하고 메모리 탭을 확인 하십시오. 이 경우 메모리 부족 충돌이 발생하기 직전에 코드가 자동으로 일시 중지되어야합니다 (예 : 문제 810015 ). 그렇다면 웹 사이트 소유자에게 문제를보고하거나 JS 코드를 프로파일 링하여 버그를 찾으십시오.

    • 브라우저 버그

      • 확장 프로그램을 사용 중지하거나 시크릿 모드로 실행 해보세요 .
      • 캐시 된 파일 제거를 고려 하십시오 .
      • 버그를보고하십시오 .
      • 브라우저를 다시 설치하십시오.
      • Chromium , Dev 또는 Canary 채널 과 같은 다른 버전의 Chrome을 사용하십시오 .
      • Epic, Firefox, Opera, Brave, Waterfox, Torch 또는 기타와 같은 다른 브라우저를 사용하십시오.
      • 문제가 반복 가능한 경우 디버그 기호로 Chrome 소스 를 다시 컴파일 하고 스택 추적을 분석하거나보고 할 수 있습니다.
  • 시스템에서 열린 최대 파일 수에 도달했습니다 ( # 787381 참조 ).

    Linux / Unix / macOS에서이를 확인하려면 다음을 실행하십시오.

    sysctl -a | grep files
    

    kern.num_files한도에 도달 했는지 확인합니다 kern.maxfiles.

    이 경우 다음 명령을 실행하여 한계를 늘리십시오.

    sysctl -w kern.maxfiles=20480
    which launchctl && launchctl limit maxfiles 65536 unlimited
    which ulimit && ulimit -c unlimited
    
  • 충돌을 일으키는 Chrome 파일을 변경하는 맬웨어 / 바이러스가있을 수 있습니다.

  • 하드웨어 메모리 관련 문제 가있을 수 있습니다 . 따라서 테스트를 실행하십시오 (예 :) memtest.

맥 OS

Chrome에서 로그를 표시하려면 다음을 실행하십시오.

log stream --level debug --predicate 'processImagePath contains "Google"'

또는 크래시 덤프를 확인하거나 체크인 할 수있는 콘솔 앱 을 실행 하면 ~/Library/Logs/DiagnosticReports됩니다. 참조 : Chrome에서 'Aw, Snap!'오류 디버깅


디버깅

위의 방법 중 어느 것도 도움이되지 않으면 소스에서 Chrome을 컴파일 하는 데 시간이 오래 걸리고 터미널에서 직접 실행할 수 있습니다. 그 후, 각“Aw, Snap!”오류 다음에는 소스 코드 파일에서 발생한 기능 및 행을 포함하는 전체 스택 추적이 와야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.