My juce plugin segfaults half of the time when I start it up. Putting the core in gdb doesn’t find the place of the error.
#15 0x00007fcd29ddc002 __libc_start_main (libc.so.6 + 0x27002)
#16 0x00005570a093057e n/a (/Develop/GeoHead-alpha/Builds/LinuxMakefile/build/GeoHead-alpha + 0x7d57e)
Core was generated by `./GeoHead-alpha'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00005570a0d723cb in ?? ()
I don’t know how to use valgrind, and have no idea where to look. I wasn’t using git so I don’t know what change made the error. If any pros can take a look at it, it would be appreciated. I think it’s in the CreateWavetable class.
here is the code (cool concept I’ve never seen before):
I can upload the core files as well.
reuk
July 3, 2020, 5:02pm
2
Normally for these kinds of bugs, I’d use the Address Sanitizer to try and find more information about the crash. You can enable Address Sanitizer by adding -fsanitize=address
to your compile flags and your link flags, in your Projucer project. Then, rebuild your project and run it, ideally in a debugger. If the sanitizer detects any invalid memory usage, it’ll print some stack traces showing where the error ocurred, and where any memory regions involved were allocated/freed. The debugger should pause, too, allowing you to check the state of the application.
When I compile with -fsanitize-adress, it gives me the error
undefined reference to
__asan_option_detect_stack_use after return`
No idea what this means…
Full error:
/usr/bin/ld: build/GeoHead-alpha.a(PluginProcessor_a059e380.o): in function `GeoHeadalphaAudioProcessor::GeoHeadalphaAudioProcessor()':
/home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:16: undefined reference to `__asan_option_detect_stack_use_after_return'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:16: undefined reference to `__asan_stack_malloc_4'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:18: undefined reference to `__asan_report_store8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:18: undefined reference to `__asan_report_store4'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:18: undefined reference to `__asan_report_store4'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:18: undefined reference to `__asan_report_store8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:18: undefined reference to `__asan_report_store4'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:18: undefined reference to `__asan_report_store4'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:23: undefined reference to `__asan_report_store_n'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:23: undefined reference to `__asan_report_store_n'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:35: undefined reference to `__asan_report_store8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:31: undefined reference to `__asan_report_store4'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:30: undefined reference to `__asan_report_store4'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:29: undefined reference to `__asan_report_store4'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:31: undefined reference to `__asan_report_store8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:32: undefined reference to `__asan_report_store4'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:32: undefined reference to `__asan_report_store4'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:32: undefined reference to `__asan_report_store4'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:32: undefined reference to `__asan_report_store8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:33: undefined reference to `__asan_report_store4'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:33: undefined reference to `__asan_report_store4'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:33: undefined reference to `__asan_report_store4'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:33: undefined reference to `__asan_report_store8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:34: undefined reference to `__asan_report_store4'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:34: undefined reference to `__asan_report_store8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:35: undefined reference to `__asan_report_store8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:35: undefined reference to `__asan_report_store8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:35: undefined reference to `__asan_report_store8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:35: undefined reference to `__asan_report_store8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:38: undefined reference to `__asan_report_load8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:38: undefined reference to `__asan_report_store8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:39: undefined reference to `__asan_report_load8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:39: undefined reference to `__asan_report_store8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:40: undefined reference to `__asan_report_load8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:40: undefined reference to `__asan_report_store8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:41: undefined reference to `__asan_report_load8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:41: undefined reference to `__asan_report_store8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:18: undefined reference to `__asan_handle_no_return'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:35: undefined reference to `__asan_handle_no_return'
/usr/bin/ld: build/GeoHead-alpha.a(PluginProcessor_a059e380.o): in function `GeoHeadalphaAudioProcessor::~GeoHeadalphaAudioProcessor()':
/home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:45: undefined reference to `__asan_report_store8'
/usr/bin/ld: build/GeoHead-alpha.a(PluginProcessor_a059e380.o): in function `GeoHeadalphaAudioProcessor::prepareToPlay(double, int)':
/home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:113: undefined reference to `__asan_option_detect_stack_use_after_return'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:113: undefined reference to `__asan_stack_malloc_2'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:114: undefined reference to `__asan_report_load8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:114: undefined reference to `__asan_report_store8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:115: undefined reference to `__asan_report_load8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:115: undefined reference to `__asan_report_store8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:116: undefined reference to `__asan_report_load8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:116: undefined reference to `__asan_report_store8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:117: undefined reference to `__asan_report_load8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:117: undefined reference to `__asan_report_store8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:119: undefined reference to `__asan_report_load8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:121: undefined reference to `__asan_report_load8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:121: undefined reference to `__asan_report_load8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:121: undefined reference to `__asan_report_load8'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:121: undefined reference to `__asan_report_load8'
/usr/bin/ld: build/GeoHead-alpha.a(PluginProcessor_a059e380.o): in function `GeoHeadalphaAudioProcessor::isBusesLayoutSupported(juce::AudioProcessor::BusesLayout const&) const':
/home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:136: undefined reference to `__asan_option_detect_stack_use_after_return'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:136: undefined reference to `__asan_stack_malloc_3'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:143: undefined reference to `__asan_report_store_n'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:143: undefined reference to `__asan_report_store_n'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:144: undefined reference to `__asan_report_store_n'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:144: undefined reference to `__asan_report_store_n'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:143: undefined reference to `__asan_handle_no_return'
/usr/bin/ld: build/GeoHead-alpha.a(PluginProcessor_a059e380.o): in function `GeoHeadalphaAudioProcessor::processBlock(juce::AudioBuffer<float>&, juce::MidiBuffer&)':
/home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:159: undefined reference to `__asan_option_detect_stack_use_after_return'
/usr/bin/ld: /home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:159: undefined reference to `__asan_stack_malloc_0'
/usr/bin/ld: build/GeoHead-alpha.a(PluginProcessor_a059e380.o): in function `GeoHeadalphaAudioProcessor::createEditor()':
/home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:195: undefined reference to `__asan_handle_no_return'
/usr/bin/ld: build/GeoHead-alpha.a(PluginProcessor_a059e380.o): in function `createPluginFilter()':
/home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:216: undefined reference to `__asan_handle_no_return'
/usr/bin/ld: build/GeoHead-alpha.a(PluginProcessor_a059e380.o): in function `__static_initialization_and_destruction_0(int, int)':
/home/eye/Develop/GeoHead-alpha/Builds/LinuxMakefile/../../Source/PluginProcessor.cpp:217: undefined reference to `__asan_before_dynamic_init'
omitted rest for lenght
reuk
July 4, 2020, 10:49am
4
Did you add -fsanitize=address
to the link flags too?