I have what appears to be a deadlock(?) bug in my Julia package that is exposed only on Appveyor, and only when I test through the CI – if I enter the Appveyor VM through RDP and manually run tests, they pass…weird. Also, FWIW, this only happens on Julia 1.3. It all works for Julia 1.2. Please see this github issue for context.
Essentially, because the bug is only exposed through the CI, I need a way to generate a minidump or other debugging info via commands in the appveyor.yml, or I can RDP into the VM while my program is hanging and run commands manually from another terminal session (that might be the best option?).
I’m pretty new to debugging at this level, so any help (especially suggesting specific commands to run to generate the info I need) would be very much appreciated.
Hmm, when trying to run the above, I’m getting some errors (I think)
# gdb
GNU gdb (GDB) 8.3
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-w64-mingw32".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
(gdb) attach 1316
Attaching to process 1316
[New Thread 1316.0x2e4]
[New Thread 1316.0x60c]
[New Thread 1316.0x500]
[New Thread 1316.0x34c]
warning: "C:\julia\bin\julia.exe": not in executable format: no symbols
warning: `C:\julia\bin\julia.exe': can't read symbols: no symbols.
(gdb) bt
#0 0x00000000 in ?? ()
I get a similar result for both of the PIDs named julia.exe
I don’t know why this has been happening, since I thought older versions used to work, but type sharedlibrary and (nearly) everything may start working again (of things that worked before).
Just bumping this. Anyone have any advice on how to get a backtrace or minidump from a hanging Julia process? I think this will help resolve a bug in Julia 1.3 as well (as this issue does not occur in 1.2) if that provides any additional motivation
I’m using the 64 bit version of MinGW provided on the appveyor VM, and running gdb.exe directly. Appveyor has several versions of MinGW (64 and 32 bit) installed, and I’ve tried all of them with no luck (I’m getting the same error as above about incompatible architecture).
EDIT
And since this post was originally about creating a mindump, here’s how to do that:
Step 1: Open an internet browser
Step 2: go to Process Explorer - Windows Sysinternals | Microsoft Docs
Step 3: click run now from Sysinternals Live
Step 4: Right click on the Julia process and select create dump > create minidump