Bug #72284 please use better options to MiniDumpWriteDump for informative minidump
| Submitted: | 9 Apr 2014 7:37 | ||
|---|---|---|---|
| Reporter: | Shane Bester (Platinum Quality Contributor) | Email Updates: | |
| Status: | Verified | Impact on me: | |
| Category: | MySQL Server: Windows | Severity: | S4 (Feature request) |
| Version: | 5.6, 5.7, 8.0 | OS: | Windows |
| Assigned to: | CPU Architecture: | Any |
[8 Apr 2015 8:27]
Shane Bester
So if you want to debug a crash on windows, you need a full dump instead of minidump. Edit registry like this: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\mysqld.exe] "DumpFolder"="c:\\mysql_crashes" "DumpCount"=dword:00000010 "DumpType"=dword:00000002 That would allow some full dumps of mysqld.exe to be saved in the path given.
[8 Apr 2015 8:27]
Shane Bester
"Collecting User-Mode Dumps" https://msdn.microsoft.com/en-us/library/windows/desktop/bb787181(v=vs.85).aspx
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.051 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.
Description: On Windows the --core-file option creates a minidump by calling MiniDumpWriteDump with the MiniDumpNormal option. This is not enough information to even get the query from the minidump. Relevant code: if(GetModuleFileName(NULL, path, sizeof(path))) { _splitpath(path, NULL, NULL,dump_fname,NULL); strncat(dump_fname, ".dmp", sizeof(dump_fname)); } hFile= CreateFile(dump_fname, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); if(hFile) { /* Create minidump */ if(MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hFile, MiniDumpNormal, &info, 0, 0)) { my_safe_printf_stderr("Minidump written to %s\n", _fullpath(path, dump_fname, sizeof(path)) ? path : dump_fname); } How to repeat: Examine variables in the minidump file. Note that the values aren't available and show up as invalid references, etc. Try get a query that crashed, it is not in the minidump. Suggested fix: http://msdn.microsoft.com/en-us/library/windows/desktop/ms680519(v=vs.85).aspx I don't know which option is perfect here. Note: we do not want innodb buffer pool included in the minidump. But I want similar information as provided by linux corefile. Lastly, please do not hardcode the name as "<module name>.dmp". Use the process id as part of the name. Otherwise these files get overridden.