Bloodbat / SanguineMutants

VCV Rack modules based on Mutable Instruments, Audible Instruments and alternative firmwares for them.
Other
6 stars 1 forks source link

Crash on Rack startup using Nebulae branch build [Windows, Rack 2.5] #3

Closed SteveRussell33 closed 5 months ago

SteveRussell33 commented 5 months ago

Just to let you know that I have built the current Nebulae branch for testing as I myself was working on a module that used one of the alt firmwares - I haven't got as far you have atm. It seems there's something that's uninitialized but I can't make out exactly where - indicators point to the ModeDisplay struct in src/nebulae.cpp but I can't see why. Anyway here's my GDB log

Thread 1 received signal ?, Unknown signal.
0x00007ff9cb5cba99 in RaiseException () from C:\WINDOWS\System32\KernelBase.dll
(gdb) bt
#0  0x00007ff9cb5cba99 in RaiseException () from C:\WINDOWS\System32\KernelBase.dll
#1  0x00007ff9b3e92701 in ?? () from C:\Program Files\VCV\Rack2 Pro\libgcc_s_seh-1.dll
#2  0x00007ff9b3e927d0 in ?? () from C:\Program Files\VCV\Rack2 Pro\libgcc_s_seh-1.dll
#3  0x00007ff96a28f63b in __cxa_rethrow () from C:\Program Files\VCV\Rack2 Pro\plugins-win-x64\SanguineMutants\plugin.dll
#4  0x00007ff96a2871bf in std::__do_uninit_copy<ModeDisplay const*, ModeDisplay*> (__first=0x14ef70, __first@entry=0x14ecb0, __last=0x14e300, __last@entry=0x14f230,
    __result=<optimized out>) at C:/msys64/mingw64/include/c++/14.1.0/bits/stl_uninitialized.h:126
#5  0x00007ff96a273f4a in std::__uninitialized_copy<false>::__uninit_copy<ModeDisplay const*, ModeDisplay*> (__first=0x14ecb0, __last=0x14f230,
    __result=<optimized out>) at C:/msys64/mingw64/include/c++/14.1.0/bits/stl_uninitialized.h:135
#6  std::uninitialized_copy<ModeDisplay const*, ModeDisplay*> (__first=0x14ecb0, __last=0x14f230, __result=<optimized out>)
    at C:/msys64/mingw64/include/c++/14.1.0/bits/stl_uninitialized.h:185
#7  std::__uninitialized_copy_a<ModeDisplay const*, ModeDisplay*, ModeDisplay> (__first=0x14ecb0, __last=0x14f230, __result=<optimized out>)
    at C:/msys64/mingw64/include/c++/14.1.0/bits/stl_uninitialized.h:373
#8  std::vector<ModeDisplay, std::allocator<ModeDisplay> >::_M_range_initialize<ModeDisplay const*> (this=this@entry=0x7ff96a3619f0 <modeDisplays>, __first=0x14ecb0,
    __last=0x14f230) at C:/msys64/mingw64/include/c++/14.1.0/bits/stl_vector.h:1697
#9  0x00007ff96a273fb3 in std::vector<ModeDisplay, std::allocator<ModeDisplay> >::vector (this=0x7ff96a3619f0 <modeDisplays>, __l=..., __a=...)
    at C:/msys64/mingw64/include/c++/14.1.0/bits/stl_vector.h:682
#10 0x00007ff96a14d99a in __static_initialization_and_destruction_0 () at C:/msys64/mingw64/include/c++/14.1.0/bits/new_allocator.h:88
#11 0x00007ff96a14e4e2 in _GLOBAL__sub_I_nebulae.cpp(void) () at src/nebulae.cpp:656
#12 0x00007ff96a1863b2 in __do_global_ctors () at C:/M/B/src/mingw-w64/mingw-w64-crt/crt/gccmain.c:44
#13 0x00007ff96a1412dd in __DllMainCRTStartup (hDllHandle=0x7ff96a140000, dwReason=1, lpreserved=0x0) at C:/M/B/src/mingw-w64/mingw-w64-crt/crt/crtdll.c:185
#14 0x00007ff9cdcc9a1d in ntdll!RtlActivateActivationContextUnsafeFast () from C:\WINDOWS\SYSTEM32\ntdll.dll
#15 0x00007ff9cdd1c2c7 in ntdll!LdrGetProcedureAddressEx () from C:\WINDOWS\SYSTEM32\ntdll.dll
#16 0x00007ff9cdd1c05a in ntdll!LdrGetProcedureAddressEx () from C:\WINDOWS\SYSTEM32\ntdll.dll
#17 0x00007ff9cdced947 in ntdll!RtlSwitchedVVI () from C:\WINDOWS\SYSTEM32\ntdll.dll
#18 0x00007ff9cdccfbae in ntdll!RtlGetFullPathName_UstrEx () from C:\WINDOWS\SYSTEM32\ntdll.dll
#19 0x00007ff9cdcc73e4 in ntdll!RtlDosPathNameToNtPathName_U () from C:\WINDOWS\SYSTEM32\ntdll.dll
#20 0x00007ff9cdcc6af4 in ntdll!LdrLoadDll () from C:\WINDOWS\SYSTEM32\ntdll.dll
#21 0x00007ff9cb5d4232 in LoadLibraryExW () from C:\WINDOWS\System32\KernelBase.dll
#22 0x00007ff9802b8f61 in rack::plugin::loadLibrary (libraryPath=<error reading variable: Cannot access memory at address 0xb22f2ecd01006c6c>)
    at C:/msys64/mingw64/include/c++/13.2.0/bits/basic_string.h:222
#23 rack::plugin::loadPluginCallback (plugin=0x541ea40) at src/plugin.cpp:114
#24 rack::plugin::loadPlugin (path="./plugins-win-x64/SanguineMutants") at src/plugin.cpp:178
#25 0x00007ff9802b9fce in rack::plugin::loadPlugins (path="./plugins-win-x64") at C:/msys64/mingw64/include/c++/13.2.0/bits/basic_string.tcc:238
#26 rack::plugin::init () at src/plugin.cpp:281
#27 0x00007ff7d0b90ee6 in main (argc=<optimized out>, argv=0x14fd60) at adapters/standalone.cpp:210
Bloodbat commented 5 months ago

Thanks for reporting, it affected, at least, Linux as well. I'm rather surprised it never, ever happened to me. In any case, I think I fixed it, would you be so kind as to test again, please? Thanks :)

SteveRussell33 commented 5 months ago

Done a rebuild and no crash on startup - will do more testing later.

Also the Deadman's Catch firmware repo has a PR for a cymbal function you could add to Mortuus if interested https://github.com/timchurches/Mutated-Mutables/pull/8

Bloodbat commented 5 months ago

Thanks a lot, I'll check the PR later :)