how would i make the names readable? i’m on windows which doesn’t have address sanitizer but i could try to run rack in a linux vm for that.
I think there is a way to use standard tools that you already have to “un mangle” the names. There might even be a web site that will do it - but I don’t know myself
Yeah, ASAN. In my experience it’s easy to use on mac, possible to use in Linux, and I have never tried on windows. It’s enough of a pain to try on linux that I can’t with good concience recommend that, esp if you don’t already have a Linux VM set up. I have done it twice when I had mysterious crashes, but… It would probably be much easier to get all the free plugins required to load @rsmus7 's patch and try to report.
Totally unrelated, if you stay in this “business” you will want a linux VM, for a variety of reasons.
I just had the Audio-8 module loaded and just when I want to load the RandomChordRecorder VCV crashes.
So, from my last log file:
[210.882 info src/MultiVUMeter.h:40] short 1
[221.833 fatal src/main.cpp:45] Fatal signal 22. Stack trace:
36: ZN4rack10appDestroyEv 0x456435
35: raise 0x8207abe0
34: abort 0x8207f1e0
33: ZN9__gnu_cxx27__verbose_terminate_handlerEv 0x6fc5f170
32: ZN10__cxxabiv111__terminateEPFvvE 0x6fc581b0
31: ZSt9terminatev 0x6fd302b0
30: _cxa_throw 0x6fd39080
29: ZSt21__throw_runtime_errorPKc 0x6fd3a640
28: ZNSt13random_device7_M_initERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE 0x6fcf10f0
27: ZNSt13random_deviceC1Ev 0x4e72da20
26: ZN19Randomchordrecorder16getSeededTwisterEv 0x4e724880
25: ZN19RandomchordrecorderC1Ev 0x4e7256b0
24: ZZN4rack11createModelI19Randomchordrecorder25RandomchordrecorderWidgetEEPNS_6plugin5ModelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEN6TModel18createModuleWidgetEv 0x4e733520
23: ZN4rack3app11AudioWidget12setAudioPortEPNS_5audio4PortE 0x49839c
22: ZN4rack3app8ModelBox8onButtonERKNS_5event6ButtonE 0x75cbc0
21: ZN4rack6widget6Widget8onButtonERKNS_5event6ButtonE 0x7726f0
20: ZN4rack6widget6Widget8onButtonERKNS_5event6ButtonE 0x7726f0
19: ZN4rack6widget6Widget8onButtonERKNS_5event6ButtonE 0x7726f0
18: ZN4rack2ui12ScrollWidget8onButtonERKNS_5event6ButtonE 0x4a3ed4
17: ZN4rack6widget12OpaqueWidget8onButtonERKNS_5event6ButtonE 0x771cd0
16: ZN4rack3app14BrowserOverlay8onButtonERKNS_5event6ButtonE 0x7530d0
15: ZN4rack6widget12OpaqueWidget8onButtonERKNS_5event6ButtonE 0x771cd0
14: ZN4rack5event5State12handleButtonENS_4math3VecEiii 0x4576c8
13: ZN4rack7updater17isUpdateAvailableEv 0x45914e
12: glfwPlatformUnlockMutex 0x4d78ae
11: CallWindowProcW 0x80f0e460
10: CallWindowProcW 0x80f0e460
9: glPushClientAttrib 0x6c089520
8: CallWindowProcW 0x80f0e460
7: DispatchMessageW 0x80f0e040
6: glfwPlatformPollEvents 0x4daf66
5: ZN4rack6Window3runEv 0x4594ea
4: main 0x781840
3: main 0x781840
2: main 0x781840
1: BaseThreadInitThunk 0x823a7020
0: RtlUserThreadStart 0x824e2630
[230.234 info src/Settings.cpp:69] Saving plugin settings C:\Users\smues\DOCUME~1/Rack/SlimeChild/Substation.json
I use the FL Studio ASIO driver on my WIN10 Ryzen laptop
There’s a known issue with random number generator seeding in windows using time. I ran into it and it was a pita to figure out.
Look at some of my (frozen wasteland) modules that use probability (and there are a few) and see how I do the seeding
thanks, i see you use srand(time(NULL)); in the constructor, i’m not sure if that will work with what i was doing though, because i’m using random_device
Yeah, don’t use random device
I was using random device because the discrete_distribution function uses that, do you know if that would be usable with srand? I could just write up my own function to get a weighted random distribution but i don’t want to reinvent the wheel if i don’t have to.
I think you may be over complicating things - you can still use std::random, you just need to change how you seed it (as mentioned above). Most other random distributions are derived from that base random function, so you should not need to do anything very esoteric unless you really want to
Hoping this helps.
I’ve run into this issue with building (I build nearly everything myself) some plugins on Windows. One of the latest is a Pull Request I’ve made for SilverMoss (yet to be released.)
This PR shows how I’ve fixed this issue. It’s to do with what version of GCC one uses to compile the code. The background, if you’re interested, is linked there as well.
Like Eric said avoid random device. You can however seed using time; in this case use time(0)
as well as the necessary #include <ctime>
I’ll submit a PR to your repo for review.
thanks! i had released it already on vcv library but i intended to fix it. i just want to double check by building it on my computer and then i’ll approve the pull request and change the version so it’s not broken in vcv library.
No problem, glad to help.