WER

1. κ°œμš”

Windows Error Reporting(WER)은 Microsoft의 μžλ™ 보고 μ‹œμŠ€ν…œμœΌλ‘œ, Windows 운영 μ²΄μ œμ—μ„œ λ°œμƒν•˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜, λ“œλΌμ΄λ²„, 운영 체제 였λ₯˜λ₯Ό κ°μ§€ν•˜κ³  λ³΄κ³ ν•œλ‹€. 디지털 ν¬λ Œμ‹ 뢄석 κ΄€μ μ—μ„œ WER은 였λ₯˜ λ°œμƒ ν”„λ‘œκ·Έλž¨κ³Ό λ°œμƒ μ‹œκ°„μ„ 확인할 수 있으며 μ—°κ΄€λœ 이벀트 둜그λ₯Ό 톡해 μ‹œμŠ€ν…œ ν™œλ™μ„ 좔적할 수 μžˆλ‹€.


2. μ•„ν‹°νŒ©νŠΈ 경둜

WER λ³΄κ³ μ„œ 파일(Report.wer)

WER λ³΄κ³ μ„œ νŒŒμΌμ€ μ‹œμŠ€ν…œμ˜ 였λ₯˜ λ³΄κ³ μ„œλ₯Ό ν¬ν•¨ν•˜λ©°, 주둜 λ‹€μŒ κ²½λ‘œμ— μ €μž₯λœλ‹€.

  • 경둜: C:\\ProgramData\\Microsoft\\Windows\\WER

    • ν•˜μœ„ 폴더:

      • ReportArchive: λ³΄κ΄€λœ 였λ₯˜ λ³΄κ³ μ„œ

        • ReportQueue: λŒ€κΈ° 쀑인 였λ₯˜ λ³΄κ³ μ„œ

          • μ‹€μ œ νŒŒμΌμ€ ν™•μΈλ˜μ§€ μ•Šμ•˜μœΌλ‚˜ $I30 νŒŒμΌμ—μ„œ wer 파일이 μžˆμ—ˆμŒμ„ μ•Œ 수 μžˆλ‹€.

        • Temp: μž„μ‹œ 였λ₯˜ λ³΄κ³ μ„œ

          • μ‹€μ œ νŒŒμΌμ€ ν™•μΈλ˜μ§€ μ•Šμ•˜μœΌλ‚˜ $I30 νŒŒμΌμ—μ„œ wer 파일이 μžˆμ—ˆμŒμ„ μ•Œ 수 μžˆλ‹€.

  • 파일 ν˜•μ‹:

    • .wer: ν…μŠ€νŠΈ ν˜•μ‹μ˜ 였λ₯˜ λ³΄κ³ μ„œ

    • .dmp: λ©”λͺ¨λ¦¬ 덀프 파일

    • .hdmp: μ••μΆ•λœ λ©”λͺ¨λ¦¬ 덀프 파일 (ν•˜μ΄λΈŒλ¦¬λ“œ 덀프)

WER EventLog

  • 일반 이벀트 둜그:

    • 경둜: C:\\Windows\\System32\\winevt\\Logs

    • 이벀트 둜그 파일:

      • Application.evtx: μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ΄€λ ¨ 이벀트 둜그

        • Event ID: 1000, 1001

      • System.evtx: μ‹œμŠ€ν…œ 이벀트 둜그

  • WER 진단 이벀트 둜그:

    • 경둜: C:\\Windows\\System32\\winevt\\Logs\\Microsoft-Windows-WER-Diag%4Operational.evtx

    • 둜그 λ‚΄μš©: WER μ‹œμŠ€ν…œμ˜ 진단 정보와 κ΄€λ ¨λœ 이벀트 (예: 였λ₯˜ λ³΄κ³ μ„œ 생성 및 전솑 μƒνƒœ, 전솑 μ‹€νŒ¨ 이유 λ“±)

WER Registry

  • 경둜

    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting

    • HKEY_CURRENT_USER\Software\Microsoft\Windows\Windows Error Reporting

  • Registry

    • (S) Consent

      • (V) DefaultConsent

        • 1: Always ask

        • 2: Parameters only

        • 3: Parameter and safe data

        • 4: All data

    • (S) DebugApplications

      • (V) [ExeName]

        • 0: Processes with an executable image name of β€œExeName” do not require the user to choose β€œDebug” or β€œContinue”

        • 1: Processes with an executable image name of β€œExeName” require the user to choose β€œDebug” or β€œContinue”

    • (S) LocalDumps

      • (S) [Application Name]

        • (V) DumpFolder: 덀프 디렉터리 경둜. Default 값은 %LOCALAPPDATA%\CrashDumps.

        • (V) DumpCount: 덀프 μ΅œλŒ€ κ°’. Default 값은 10. μ΅œλŒ€ 값을 μ΄ˆκ³Όν•˜λ©΄ ν΄λ”μ—μ„œ κ°€μž₯ 였래된 덀프 파일이 μƒˆ 덀프 파일둜 λŒ€μ²΄

        • (V) DumpType

          • 0: Custom dump

          • 1: Minidump (default)

          • 2: Fulldump

λ‚˜λ¨Έμ§€λŠ” 곡식 λ¬Έμ„œλ₯Ό μ°Έκ³ ν•œλ‹€.


3. Report.wer

ν•΄λ‹Ή λ‹¨λ½μ—μ„œλŠ” ReportArchiveμ—μ„œ 발견된 Report.wer 파일의 ν•„λ“œ 값에 λŒ€ν•΄ 정리함. Report.wer은 AppCrashView.exe ν”„λ‘œκ·Έλž¨μœΌλ‘œ 확인할 수 μžˆλ‹€.

Report.wer 폴더 λͺ…

Report.wer 파일의 폴더 λͺ…을 보면 였λ₯˜ μœ ν˜•λΆ€ν„° ν•΄μ‹œκ°’λ“€μ΄ ν¬ν•¨λ˜μ–΄ μžˆλ‹€.

%였λ₯˜ μœ ν˜•%_%좩돌 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 이름%_%첫번째 ν•΄μ‹œ%_%λ‘λ²ˆμ§Έ ν•΄μ‹œ%_%ReportIdentifier%

μ˜ˆμ‹œ)
AppCrash_Explorer.EXE_9cd53897ffc9d25be27f21a71ffa52cae8ae1aa_1c1d6539_29da9992

첫번째 ν•΄μ‹œ

폴더 λͺ…μ—μ„œ λ°œκ²¬λ˜λŠ” 첫번째 ν•΄μ‹œλ‘œλŠ” μ •ν™•ν•˜κ²Œ λͺ…μΉ­μ΄λ‚˜ κ΄€λ ¨λœ μ„€λͺ…을 확인할 수 μ—†μœΌλ‚˜, μ—¬λŸ¬ Report.wer νŒŒμΌμ„ λΆ„μ„ν•œ κ²°κ³Ό Sig ν•„λ“œλ‘œ λ§Œλ“€μ–΄μ§€λŠ” κ²ƒμœΌλ‘œ μ˜ˆμƒλœλ‹€. Sig ν•„λ“œ μ•ˆμ—λŠ” ν”„λ‘œκ·Έλž¨μ— λŒ€ν•œ 정보 및 μ˜ˆμ™Έ μ½”λ“œ λ“± μ—¬λŸ¬ 데이터가 ν¬ν•¨λ˜μ–΄μžˆλ‹€.

첫번째 ν•΄μ‹œκ°’μ΄ κ°™λ‹€λ©΄ λ™μΌν•œ ν”„λ‘œκ·Έλž¨, ν”„λ‘œκ·Έλž¨ 버전, 였λ₯˜, μ˜ˆμ™Έ μ½”λ“œμž„μ„ μ•Œ 수 μžˆλ‹€.

λ‘λ²ˆμ§Έ ν•΄μ‹œ

폴더 λͺ…μ—μ„œ λ°œκ²¬λ˜λŠ” λ‘λ²ˆμ§Έ ν•΄μ‹œλ‘œλŠ” ReportTypeκ³Ό TargetAppVer둜 λ§Œλ“€μ–΄μ§€λŠ” κ²ƒμœΌλ‘œ μ˜ˆμƒλœλ‹€.

λ‘λ²ˆμ§Έ ν•΄μ‹œκ°’μ΄ κ°™λ‹€λ©΄ 같은 ReportType와 ν”„λ‘œκ·Έλž¨μ— 버전이 동일함을 μ•Œ 수 μžˆλ‹€.

였λ₯˜ μœ ν˜•μ΄ NonCritical인 경우 ReportType이 β€˜0β€™μ΄μ§€λ§Œ Report.werμ—μ„œλŠ” μ €μž₯λ˜μ§€ μ•ŠλŠ”λ‹€. κ·Έλž˜μ„œ λ‘λ²ˆμ§Έ ν•΄μ‹œ 값이 00000000으둜 κ³ μ •λœλ‹€.

Report.wer ν•„λ“œ

EventType

  • APPCRASH

  • BEX

  • BEX64

  • MoAppHang

  • AppHangB1

  • StoreAgentInstallFailure1

  • StoreAgentDownloadFailure1

ReportType

  • 0: NonCritical

  • 1: Critical

  • 2: ApplicationCrash

  • 3: ApplicationHang

  • 4: Kernel

  • 5: Invalid

ReportStatus

  • λŒ€λΆ€λΆ„ **268435456 (2^28)**으둜 Bit κ°’μœΌλ‘œ μ˜ˆμƒλ¨

    • 268435456

      • 2^28

    • 268566528

      • 2^28 + 2^17

    • 97

      • 2^0 + 2^5 + 2^6

ReportIdentifier

  • WER λ³΄κ³ μ„œ μ‹λ³„μž. 폴더 λͺ…에 λ§ˆμ§€λ§‰μ— 해당됨

IntegratorReportIdentifier

  • ν†΅ν•©λœ λ³΄κ³ μ„œ μ‹λ³„μž

  • 이벀트 λ‘œκ·Έμ—λŠ” ν•΄λ‹Ή μ‹λ³„μž 값이 λ³΄κ³ μ„œ ID둜 ν™•μΈλœλ‹€.

TargetAppId

  • β€œWβ€λ‘œ μ‹œμž‘ν•˜λŠ” 것과 β€œUβ€λ‘œ μ‹œμž‘ν•˜λŠ” 것이 있음.

  • AppCrashκ°€ λ°œμƒν•œ 것은 β€œWβ€λ‘œ μ‹œμž‘

  • Application Hang (μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 쀑단)은 β€œUβ€λ‘œ μ‹œμž‘ν•¨. λ‹€λ§Œ 기쑴에 AppCrashκ°€ λ‚œ ν”„λ‘œκ·Έλž¨μΈ 경우 β€œWβ€λ‘œ ν‘œμ‹œλ¨

TargetAppVer

  • 버전λͺ…!μ‹œκ°„!ν•΄μ‹œ!ν”„λ‘œκ·Έλž¨ 이름 으둜 κ΅¬μ„±λ˜μ–΄μžˆλ‹€.

    • μ‹œκ°„μ€ ν”„λ‘œκ·Έλž¨μ˜ μ†μ„±μ—μ„œ μžμ„Ένžˆ 보기 ν›„ μˆ˜μ •ν•œ μ‹œκ°„μœΌλ‘œ ν™•μΈλœλ‹€.

    • 버전 λͺ…은 λŒ€λΆ€λΆ„ μ—†μ§€λ§Œ Windows Storeμ—μ„œ λ‹€μš΄ 받은 파일인 경우 버전이 확인됨

전체 ν•„λ“œ

ν•„λ“œμ„€λͺ…λΉ„κ³ 

Version

λ³΄κ³ μ„œ 버전

EventType

이벀트 μœ ν˜•

BEX=Buffer overflow EXception

AppCrash

EventTime

이벀트 λ°œμƒ μ‹œκ°„

FileTime Timestamp

ReportType

λ³΄κ³ μ„œ μœ ν˜•

0: NonCritical

1: Critical

2: ApplicationCrash

3: ApplicationHang

4: Kernel

5: Invalid

Consent

Microsoft에 λ³΄κ³ μ„œλ₯Ό 전솑 λ™μ˜ μ—¬λΆ€

UploadTime

λ³΄κ³ μ„œκ°€ μ—…λ‘œλ“œλœ μ‹œκ°„

ReportStatus

λ³΄κ³ μ„œμ˜ μƒνƒœ

λ³΄κ³ μ„œ μ—…λ‘œλ“œ, 보λ₯˜ λ“±λ“±

ReportIdentifier

λ³΄κ³ μ„œ μ‹λ³„μž

IntegratorReportIdentifier

ν†΅ν•©λœ λ³΄κ³ μ„œ μ‹λ³„μž

Wow64Host

64bit ν˜ΈμŠ€νŠΈμ—μ„œ μ‹€ν–‰λ˜λŠ” 32bit ν”„λ‘œμ„ΈμŠ€

Wow64Guest

32λΉ„νŠΈ 게슀트 ν”„λ‘œμ„ΈμŠ€λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

NsAppName

였λ₯˜κ°€ λ°œμƒν•œ μ‘μš© ν”„λ‘œκ·Έλž¨μ˜ 이름

OriginalFilename

μ‘μš© ν”„λ‘œκ·Έλž¨μ˜ μ›λž˜ 파일 이름

AppSessionGuid

μ‘μš© ν”„λ‘œκ·Έλž¨ μ„Έμ…˜μ˜ 고유 μ‹λ³„μž

TargetAppId

νƒ€κ²Ÿ μ‘μš© ν”„λ‘œκ·Έλž¨μ˜ μ‹λ³„μž

TargetAppVer

νƒ€κ²Ÿ μ‘μš© ν”„λ‘œκ·Έλž¨μ˜ 버전

BootId

μ‹œμŠ€ν…œ λΆ€νŒ… μ‹λ³„μž

TargetAsId

νƒ€κ²Ÿ μ‘μš© ν”„λ‘œκ·Έλž¨ μ„Έμ…˜μ˜ 고유 μ‹λ³„μž

IsFatal

였λ₯˜κ°€ 치λͺ…적인지 μ—¬λΆ€

Response.BucketId

문제의 버킷 μ‹λ³„μž

Response.BucketTable

문제의 버킷 ν…Œμ΄λΈ”

Response.LegacyBucketId

이전 문제 버킷 μ‹λ³„μž

Response.type

응닡 μœ ν˜•

Sig

였λ₯˜μ— λŒ€ν•œ μ‹œκ·Έλ‹ˆμ²˜ 정보

DynamicSig

동적 μ„œλͺ… 정보

UI

μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€

LoadModules

λ‘œλ“œ λͺ¨λ“ˆ 이름

State

μƒνƒœ 정보

OsInfo

운영체제 정보

FriendlyEventName

μ‚¬μš©μžμ—κ²Œ ν‘œμ‹œλ˜λŠ” 이벀트의 μΉœμˆ™ν•œ 이름

ConsentKey

λ™μ˜ μ—¬λΆ€

AppName

μ‘μš©ν”„λ‘œκ·Έλž¨ 이름

AppPath

μ‘μš©ν”„λ‘œκ·Έλž¨ 경둜

NsPartner

νŒŒνŠΈλ„ˆ 정보

NsGroup

κ·Έλ£Ή 정보

ApplicationIdentity

μ‘μš© ν”„λ‘œκ·Έλž¨ 식별 정보

MetadataHash

메타데이터 ν•΄μ‹œ


4. Event Log 속 WER

ν•΄λ‹Ή λ‹¨λ½μ—μ„œλŠ” Application.evtx μ—μ„œ 확인할 수 μžˆλŠ” λ‚΄μš©μ— λŒ€ν•΄ 정리함. 이벀트 λ·°μ–΄λ₯Ό ν™•μΈν•˜κΈ° μœ„ν•΄μ„œλŠ” eventvwr.msc ν”„λ‘œκ·Έλž¨μ„ μ‚¬μš©ν•΄ 확인할 수 μžˆλ‹€. (Win + r ν›„ eventvwr.msc μž…λ ₯)

Event ID 1001

ν•΄λ‹Ή 이벀트 λ‘œκ·Έμ—μ„œλŠ” 10개의 λ§€κ°œλ³€μˆ˜λ₯Ό 확인할 수 μžˆλ‹€. ν•΄λ‹Ή νŒŒλΌλ―Έν„°λŠ” Report.werμ—μ„œ Sig ν•„λ“œμ™€ κ°™λ‹€.

Get-EventLog -LogName Application -InstanceId 1001 -Source 'Windows Error Reporting'

Event ID 1000

ν•΄λ‹Ή 이벀트 λ‘œκ·Έμ—μ„œλŠ” 1001μ—μ„œ ν™•μΈν•œ νŒŒλΌλ―Έν„°μ˜ κ°’μ˜ λŒ€ν•΄ μ •ν™•ν•œ λͺ…μΉ­κ³Ό ν•¨κ»˜ 값을 확인할 수 μžˆλ‹€.

Get-EventLog -LogName Application -InstanceId 1000 -Source 'Application Error'

5. WER λ·°μ–΄ 및 νŒŒμ„œ ν”„λ‘œκ·Έλž¨ μ œμž‘

GitHub - tkddnr924/WER-Parser

  • ν”„λ‘œκ·Έλž¨ μž‘μ„± 쀑

  • 각 ν•„λ“œμ— 의미λ₯Ό 확인 ν›„ μΆ”κ°€ν•  μ˜ˆμ •μ΄λ©°, ν•„λ“œ κ°’ λ³„λ‘œ λΆ„λ₯˜ 및 κ²€μƒ‰κΉŒμ§€ κ°€λŠ₯ν•˜κ²Œ ν•  μ˜ˆμ •μ΄λ‹€.

  • 이 ν”„λ‘œκ·Έλž¨μ— λͺ©μ μ€ κΈ°μ‘΄ WER λ·°μ–΄μ˜ κΈ°λŠ₯을 κ°•ν™”ν•˜κ³  더 보기 μ’‹κ²Œ ν•˜κΈ° μœ„ν•¨μ΄λ‹€.

6. μ°Έκ³ 

Last updated