Re: Windows crash / abort handling
Andrew Dunstan <andrew@dunslane.net>
From: Andrew Dunstan <andrew@dunslane.net>
To: Andres Freund <andres@anarazel.de>, pgsql-hackers@postgresql.org
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Craig Ringer <craig.ringer@enterprisedb.com>
Date: 2022-01-10T15:57:00Z
Lists: pgsql-hackers
On 10/5/21 15:30, Andres Freund wrote > > To actually get the crash reports I ended up doing the following on the OS > level [5]: > > Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug' -Name 'Debugger' -Value '\"C:\Windows Kits\10\Debuggers\x64\cdb.exe\" -p %ld -e %ld -g -kqm -c \".lines -e; .symfix+ ;.logappend c:\cirrus\crashlog.txt ; !peb; ~*kP ; .logclose ; q \"' ; ` > New-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug' -Name 'Auto' -Value 1 -PropertyType DWord ; ` > Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug' -Name Debugger; ` > > This requires 'cdb' to be present, which is included in the Windows 10 SDK (or > other OS versions, it doesn't appear to have changed much). Whenever there's > an unhandled crash, cdb.exe is invoked with the parameters above, which > appends the crash report to crashlog.txt. > > Alternatively we can generate "minidumps" [6], but that doesn't appear to be more > helpful for CI purposes at least - all we'd do is to create a backtrace using > the same tool. But it might be helpful for local development, to e.g. analyze > crashes in more detail. > > The above ends up dumping all crashes into a single file, but that can > probably be improved. But cdb is so gnarly that I wanted to stop looking once > I got this far... > > > Andrew, I wonder if something like this could make sense for windows BF animals? > Very possibly. I wonder how well it will work on machines where I have more than one animal .e.g. lorikeet (cygwin) jacana (msys) and bowerbird (MSVC) are all on the same machine. Likewise drongo (MSVC) and fairywren (msys2). cheers andrew -- Andrew Dunstan EDB: https://www.enterprisedb.com
Commits
-
windows: Improve crash / assert / exception handling.
- f3feff825940 15.0 landed
-
ci: windows: run tests under timeout.
- 6dcc18526673 15.0 landed
-
Prevent Win32 from displaying a popup box on backend crash. Instead let
- 27bff7502f04 8.2.0 cited