brummer10 / guitarix

guitarix virtual versatile amplification for Jack/Linux
254 stars 28 forks source link

Current Raspberry Pi configuration to build guitarix #8

Closed Rippert closed 4 years ago

Rippert commented 4 years ago

Hello, I wanted to test out your new MIDI feedback option, but I am having a hard time getting guitarix to compile and run on my Raspberry PI. Just trying a generic compile using:

./waf configure
.waf build

does not work as the Pi (a 3B+) runs out of memory.

./waf configure -j 1

does not help as the -j option is ignored. I was able to get the compilation to complete by using an environment variable (export JOBS=1) prior to configuration. However the resulting executable fails to run with the message:

guitarix: symbol lookup error: guitarix: undefined symbol: _ZN3Gxw11PortDisplay14set_cutoff_lowEi

So I figured I would stop guessing and ask what configuration options I should use to compile the latest git on a Raspberry Pi 3B+.

My current OS is archlinuxarm, and I can install and run guitarix 0.39 from the pacman repository with no problems. I also have Raspbian Stretch and Buster available to try it on if that helps.

Thanks, Ted

brummer10 commented 4 years ago

Hi Thanks for reporting the issue. I've pushed a fix for the jobs flag. To the correct flags for the Pi 3B+ I can't say much, as I didn't own a Pi. However, usually recommended configure flags been: ./waf configure --prefix=/usr --includeresampler --includeconvolver you may want to add some flags for your CPU, for example: --cxxflags-release='-mcpu=cortex-a53 -mfpu=neon-fp-armv8'

When you've installed the version from the arch repository, and then build guitarix from source and install it, you may end up with two different versions installed, that may clash the library symbols from libgxwmm. Hence, recommended is the configure flag --prefix=/usr as that will ensure that the self build version will overwrite the one from the distro. Even better will be when you de-install the distro version before install the version build from source.

Rippert commented 4 years ago

Thanks Hermann. The jobs flag does work now. I can complete the compilation with your suggested flags, but the executable spits out mlock 1505172 bytes and then segmentation faults.

I played with the flags a bit, and finally came up with

--prefix=/usr --includeresampler --convolver-ffmpeg -j 1 --disable-sse --no-lv2 --no-faust

Which allowed the executable to first put up the flash screen and then segfault. It was mostly removing the --cxxflags-release options that got the flash screen up, so I'm not sure that changing the convolver option made much difference, and the last three are just to speed up the compilation.

I'm giving up for today. Let me know if you think I should try anything else.

I do get a core dump from the segfault. It's pretty large (~5MB), but the stack trace listed in the sytemd journal is:

Process 10759 (guitarix) of user 1000 dumped core.

                                                 Stack trace of thread 10759:
                                                 #0  0x0000000000708ee0 _ZN8LiveplayC2ERKN9gx_system14CmdlineOptionsERN9gx_engine13GxMachineBaseERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9GxActionsRN4Glib6RefPtrIN3Gio17SimpleActionGroupEEE (guitarix + 0x25bee0)

Thanks again

brummer10 commented 4 years ago

To find out if the segfault happen in the UI you may try to start guitarix headless, with the -N command-line switch, first. In case that work, try the UI with guitarix -G. Also building the debug version (--debug) may help to get a better stack trace.

brummer10 commented 4 years ago

Maybe you need to remove/backup ~/.config/guitarix rename it for example to ~/.config/guitarix_bak

Rippert commented 4 years ago

I had already backed up the the guitarix configuration. Didn't make a difference.

I tried starting guitarix with the -N switch, and, sure enough, it ran just fine. I was able to hook it to my sound card with jack and play through it. Tried to start anothter instance with the -G switch and it segfaulted. The -N instance kept going though, so it seems to be the UI that has the problem.

I'm re-compiling it with the --debug flag next.

brummer10 commented 4 years ago

Please send us the stack trace from the debug version, as it would be nice when we could fix that!

Rippert commented 4 years ago

OK, here's the stack trace from running guitarix with no switches, after building it with the --debug flag, and all the other flags I already mentioned.

Process 1679 (guitarix) of user 1000 dumped core.

                                                Stack trace of thread 1679:
                                                #0  0x0000000000717dfc _ZN3Gdk6Visual4gobjEv (guitarix + 0x28bdfc)
                                                #1  0x0000000000709580 _ZN10MainWindowC2ERN9gx_engine13GxMachineBaseERN9gx_system14CmdlineOptionsER7GxThemePN3Gtk6WindowERKN4Glib7ustringE (guitarix + 0x27d580)
                                                #2  0x0000000000782fc0 mainGtk (guitarix + 0x2f6fc0)
                                                #3  0x00000000007838ac mainProg (guitarix + 0x2f78ac)
                                                #4  0x000000000057c784 main (guitarix + 0xf0784)
                                                #5  0x0000000073e8fbb8 __libc_start_main (libc.so.6 + 0x1abb8)

and, just for completeness, here's the stack trace from the guitarix -G instance while guitarix -N is running properly:

Process 1734 (guitarix) of user 1000 dumped core.

                                                Stack trace of thread 1734:
                                                #0  0x0000000000739dfc _ZN3Gdk6Visual4gobjEv (guitarix + 0x28bdfc)
                                                #1  0x000000000072b580 _ZN10MainWindowC2ERN9gx_engine13GxMachineBaseERN9gx_system14CmdlineOptionsER7GxThemePN3Gtk6WindowERKN4Glib7ustringE (guitarix + 0x27d580)
                                                #2  0x00000000007a5828 mainFront (guitarix + 0x2f7828)
                                                #3  0x000000000059e784 main (guitarix + 0xf0784)
                                                #4  0x0000000073ebebb8 __libc_start_main (libc.so.6 + 0x1abb8)

Looks like they are the same.

brummer10 commented 4 years ago

Okay, that's not really useful. Didn't know if you've gdb installed on your Pi? If so, it may help if you could run the GUI in the debugger. After start the engine, try gdb --args guitarix -G when segfault, type bt-full that may give us a more manning full back trace.

Rippert commented 4 years ago

Here it is in gdb. I've got to shut down for now. Let me know what you think, and I can try anything you suggest tomorrow.

(gdb) run
Starting program: /usr/bin/guitarix -G
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0x6fdb2220 (LWP 1993)]

Thread 1 "guitarix" received signal SIGSEGV, Segmentation fault.
Liveplay::Liveplay (this=0xf24e88, options=..., machine_=..., fname=..., actions_=..., group=...)
    at ../src/gx_head/gui/liveplay.cpp:344
344     gtk_widget_set_visual(liveplay_canvas->gobj(), rgba->gobj());

(gdb) bt -full

0 Liveplay::Liveplay(gx_system::CmdlineOptions const&, gx_engine::GxMachineBase&, std::__cxx11::basic_string<char, std::chartraits, std::allocator > const&, GxActions const&, Glib::RefPtr&) (this=0xf24e88, options=..., machine=..., fname=..., actions_=..., group=...)

at ../src/gx_head/gui/liveplay.cpp:344
    pb = {pCppObject_ = 0x10a8368}
    screen = {pCppObject_ = 0xdc5d60}
    rgba = {pCppObject_ = 0x0}
    ag = {pCppObject_ = 0x0}
    nulltarget = {gobject_ = 0x137106c}
    id_list = {0x8496cc "LivePlay", 0x0}
    liveplay_paintbox = <optimized out>
    cl = <optimized out>

1 0x0067d580 in MainWindow::MainWindow(gx_engine::GxMachineBase&, gx_system::CmdlineOptions&, GxTheme&, Gtk::Window*, Glib::ustring const&)

(this=0x7efff5dc, machine_=..., options_=..., theme_=..., splash=0x0, title=...)
at ../src/headers/gx_main_window.h:121
    rr = <optimized out>
    c = <optimized out>
    item = <optimized out>
    jack = 0x6803e8 <sigc::internal::slot_call1<sigc::bound_mem_functor1<bool, MainWindow, _GdkEventButton*>, bool, _GdkEventButton*>::call_it(sigc::internal::slot_rep*, _GdkEventButton* const&)>
    listTargets = warning: Type size unknown, assuming 1. Try casting to a known type, or void *.

warning: Type size unknown, assuming 1. Try casting to a known type, or void . Python Exception <class 'gdb.error'> Cannot perform pointer math on incomplete type "Gtk::TargetEntry", try casting to a known type, or void .: std::vector of length 32, capacity 32 ip = --Type for more, q to quit, c to continue without paging--c

2 0x006f7828 in mainFront (Splash=0x0, need_new_preset=true, theme=..., options=...) at ../src/gx_head/gui/gx_main.cpp:648

    title = {static npos = 4294967295, string_ = "Guitarix / alarmpi.local:7000"}
    machine = {<gx_engine::GxMachineBase> = {_vptr.GxMachineBase = 0x953110 <vtable for gx_engine::GxMachineRemote+8>, update_timeout = {slot_ = 0x0}, impresp_list = {<sigc::signal2<void, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<gx_system::FileName, std::allocator<gx_system::FileName> >, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {callback_list_ = 0x0}, impl_ = 0x0}, <No data fields>}, <No data fields>}, update_map = std::map with 0 elements}, options = @0x7efff1a4, pmap = {<boost::noncopyable_::noncopyable> = {<boost::noncopyable_::base_token> = {<No data fields>}, <No data fields>}, id_map = std::map with 1540 elements = {["12AT7 feedback.on_off"] = 0xd68c00, ["12AT7 feedback.position"] = 0xcf7c70, ["12AT7 feedback.pp"] = 0xd75930, ["12AT7.on_off"] = 0xd482a0, ["12AT7.position"] = 0xcfd970, ["12AT7.pp"] = 0xcfead0, ["12AU7 feedback.on_off"] = 0xd22380, ["12AU7 feedback.position"] = 0xcf1400, ["12AU7 feedback.pp"] = 0xcf1828, ["12AU7.on_off"] = 0xd1f980, ["12AU7.position"] = 0xcea6d8, ["12AU7.pp"] = 0xce4b00, ["12ax7 feedback.on_off"] = 0xcfd6e0, ["12ax7 feedback.position"] = 0xce8fa0, ["12ax7 feedback.pp"] = 0xce3560, ["12ax7.on_off"] = 0xcf0470, ["12ax7.position"] = 0xce7790, ["12ax7.pp"] = 0xcebf60, ["6C16.on_off"] = 0xce82d8, ["6C16.position"] = 0xcec300, ["6C16.pp"] = 0xe17838, ["6DJ8 feedback.on_off"] = 0xdec508, ["6DJ8 feedback.position"] = 0xdc8150, ["6DJ8 feedback.pp"] = 0xd94028, ["6DJ8.on_off"] = 0xd8fba0, ["6DJ8.position"] = 0xda2680, ["6DJ8.pp"] = 0xe03b80, ["6V6.on_off"] = 0xe30700, ["6V6.position"] = 0xddf9b0, ["6V6.pp"] = 0xdc9c00, ["AC-15.on_off"] = 0xd64250, ["AC-15.position"] = 0xddfcd0, ["AC-15.pp"] = 0xdb2690, ["AC-30.on_off"] = 0xe30500, ["AC-30.position"] = 0xd93f70, ["AC-30.pp"] = 0xdec798, ["Ampeg.on_off"] = 0xdca240, ["Ampeg.position"] = 0xdca198, ["Ampeg.pp"] = 0xd6eea0, ["Bassman.on_off"] = 0xde5768, ["Bassman.position"] = 0xda9740, ["Bassman.pp"] = 0xdf28f0, ["Deville.on_off"] = 0xdedd18, ["Deville.position"] = 0xd85920, ["Deville.pp"] = 0xe021c8, ["Engl.on_off"] = 0xdec278, ["Engl.position"] = 0xdeda88, ["Engl.pp"] = 0xdf79e8, ["Fender.on_off"] = 0xdeedc0, ["Fender.position"] = 0xeb1600, ["Fender.pp"] = 0xd86600, ["GCB_95.Volume"] = 0xda4588, ["GCB_95.hotpotz"] = 0xe19a08, ["GCB_95.on_off"] = 0xd7fb00, ["GCB_95.position"] = 0xda95b8, ["GCB_95.pp"] = 0xdab670, ["GCB_95.s_h"] = 0xd86e90, ["Gibsen.on_off"] = 0xe14f30, ["Gibsen.position"] = 0xe20120, ["Gibsen.pp"] = 0xe14230, ["Hughes&Kettner.on_off"] = 0xe15620, ["Hughes&Kettner.position"] = 0xe0ae68, ["Hughes&Kettner.pp"] = 0xdbfda0, ["IR.auto_freq"] = 0xdb73b8, ["IR.bandwidth"] = 0xd91d00, ["IR.freq"] = 0xdac2e0, ["IR.on_off"] = 0xd8ab28, ["IR.peak"] = 0xdaaac8, ["IR.position"] = 0xda6bb8, ["IR.pp"] = 0xdca880, ["IR.s_h"] = 0xe3f500, ["Ibanez.on_off"] = 0xe91f00, ["Ibanez.position"] = 0xe67f00, ["Ibanez.pp"] = 0xe61300, ["JCM-2000.on_off"] = 0xda6610, ["JCM-2000.position"] = 0xda9330, ["JCM-2000.pp"] = 0xeb1b00, ["JCM-800.on_off"] = 0xeb2900, ["JCM-800.position"] = 0xeb5100, ["JCM-800.pp"] = 0xeb5f00, ["JCM800Pre.P6v"] = 0xeba100, ["JCM800Pre.on_off"] = 0xeac500, ["JCM800Pre.position"] = 0xe47b00, ["JCM800Pre.pp"] = 0xe31b00, ["JCM800Pre.s_h"] = 0xe40700, ["JTM-45.on_off"] = 0xe64300, ["JTM-45.position"] = 0xe36700, ["JTM-45.pp"] = 0xe8e600, ["Junior.on_off"] = 0xde7aa8, ["Junior.position"] = 0xddf528, ["Junior.pp"] = 0xde7758, ["M-Lead.on_off"] = 0xd8d3a0, ["M-Lead.position"] = 0xd96f88, ["M-Lead.pp"] = 0xd97700, ["M2199.on_off"] = 0xd96c28, ["M2199.position"] = 0xd6ed70, ["M2199.pp"] = 0xda9da8, ["MIG 100 H.on_off"] = 0xd92150, ["MIG 100 H.position"] = 0xd8dbe8, ["MIG 100 H.pp"] = 0xd92e00...}, replace_mode = false, insert_remove = {<sigc::signal2<void, gx_engine::Parameter*, bool, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {callback_list_ = 0x0}, impl_ = 0x0}, <No data fields>}, <No data fields>}}, pluginlist = {pmap = std::map with 190 elements = {["12AT7"] = 0xf19448, ["12AT7 feedback"] = 0xf19498, ["12AU7"] = 0xf19548, ["12AU7 feedback"] = 0xf195e0, ["12ax7"] = 0xf196a8, ["12ax7 feedback"] = 0xf19740, ["6C16"] = 0xf19808, ["6DJ8"] = 0xf198a0, ["6DJ8 feedback"] = 0xf19938, ["6V6"] = 0xf19a00, ["AC-15"] = 0xf19a98, ["AC-30"] = 0xf19b30, ["Ampeg"] = 0xf19bc8, ["Bassman"] = 0xf19c60, ["Deville"] = 0xf19d10, ["Engl"] = 0xf19dc0, ["Fender"] = 0xf19e58, ["GCB_95"] = 0xf19f08, ["Gibsen"] = 0xf1a0b8, ["Hughes&Kettner"] = 0xf1a168, ["IR"] = 0xf1a1e8, ["Ibanez"] = 0xf1a328, ["JCM-2000"] = 0xf1a3d8, ["JCM-800"] = 0xf1a488, ["JCM800Pre"] = 0xf1a538, ["JTM-45"] = 0xf1a648, ["Junior"] = 0xf1a708, ["M-Lead"] = 0xf1a7f8, ["M2199"] = 0xf1a8e8, ["MIG 100 H"] = 0xf1a9d0, ["Mesa Boogie"] = 0xf1aac0, ["Peavey"] = 0xf1ab98, ["Princeton"] = 0xf1ac70, ["Roland"] = 0xf1ad60, ["SOL 100"] = 0xf1ae50, ["Trio Preamp"] = 0xf1af40, ["Triple Giant"] = 0xf1b048, ["Twin Reverb"] = 0xf1b140, ["abgate"] = 0xf1b230, ["aclipper"] = 0xf1b2f8, ["amp"] = 0xf1b3e0, ["amp.bass_boost"] = 0xf1b4c8, ["amp.clip"] = 0xf1b540, ["amp.tonestack"] = 0xf1b6c0, ["ampmodul"] = 0xf1b798, ["ampstack"] = 0xf1b820, ["astrofuzz"] = 0xf1b9d8, ["auto"] = 0xf1bbb8, ["axface"] = 0xf1bca0, ["balance"] = 0xf1bd88, ["bassEnhancer"] = 0xf1be70, ["baxandall"] = 0xf1bf98, ["bboom"] = 0xf1c088, ["bfuzz"] = 0xf1c190, ["biquad"] = 0xf1c270, ["bitdowner"] = 0xf1c370, ["bmp"] = 0xf1c458, ["bossds1"] = 0xf1c540, ["buffb"] = 0xf1c630, ["buzz"] = 0xf1c738, ["cab"] = 0xf1c820, ["cab_st"] = 0xf1c8f0, ["camp"] = 0xf1c9c0, ["chorus"] = 0xf1cad0, ["chorus_mono"] = 0xf1cbb8, ["colbwah"] = 0xf1cca0, ["colwah"] = 0xf1cda8, ["compressor"] = 0xf1ce98, ["con"] = 0xf1cf88, ["coverd"] = 0xf1d060, ["crybaby"] = 0xf1d0e8, ["cstbt1"] = 0xf1d210, ["dallaswah"] = 0xf1d288, ["dattorros_progenitor"] = 0xf1d410, ["default"] = 0xf1d478, ["delay"] = 0xf1d618, ["dide"] = 0xf1d708, ["didest"] = 0xf1d808, ["distortion2"] = 0xf1d880, ["dout"] = 0xf1da00, ["drumout"] = 0xf1dac0, ["dubber"] = 0xf1db78, ["duckDelay"] = 0xf1dc60, ["duckDelaySt"] = 0xf1dd50, ["echo"] = 0xf1de48, ["eldist"] = 0xf1df38, ["epiphone"] = 0xf1e048, ["eq"] = 0xf1e140, ["eqs"] = 0xf1e218, ["expander"] = 0xf1e310, ["feedback"] = 0xf1e408, ["ffreak"] = 0xf1e4f8, ["flanger"] = 0xf1e588, ["flanger_mono"] = 0xf1e6e0, ["flanger_mono_gx"] = 0xf1e800, ["foxeylady"] = 0xf1e8f0, ["foxwah"] = 0xf1e9c8, ["freeverb"] = 0xf1eab8, ["fumaster"] = 0xf1eba0, ["fuzzdrive"] = 0xf1eca0...}, insert_remove = {<sigc::signal2<void, char const*, bool, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {callback_list_ = 0x0}, impl_ = 0x0}, <No data fields>}, <No data fields>}}, banks = {banklist = std::__cxx11::list = {[0] = 0xd88268, [1] = 0xdf4b98, [2] = 0xd8b858, [3] = 0xd89190}, filepath = "", mtime = 0, preset_dir = ""}, engine_state_change = {<sigc::signal1<void, gx_engine::GxEngineState, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {callback_list_ = 0x0}, impl_ = 0x136e450}, <No data fields>}, <No data fields>}, selection_changed = {<sigc::signal0<void, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {callback_list_ = 0x0}, impl_ = 0x116dfb8}, <No data fields>}, <No data fields>}, presetlist_changed = {<sigc::signal0<void, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {callback_list_ = 0x0}, impl_ = 0x12f8a90}, <No data fields>}, <No data fields>}, socket = {pCppObject_ = 0xeb1458}, writebuf = 0xd83fe8, os = 0xd27e00, jw = 0xe30780, notify_list = std::vector of length 0, capacity 0, idle_conn = {slot_ = 0x0}, rack_units = {mono = std::vector of length 1, capacity 1 = {"ampstack"}, stereo = std::vector of length 0, capacity 0, rack_unit_order_changed = {<sigc::signal1<void, bool, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {callback_list_ = 0x0}, impl_ = 0x116e398}, <No data fields>}, <No data fields>}}, midi_changed = {<sigc::signal0<void, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {callback_list_ = 0x0}, impl_ = 0x0}, <No data fields>}, <No data fields>}, midi_value_changed = {<sigc::signal2<void, int, int, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {callback_list_ = 0x0}, impl_ = 0x0}, <No data fields>}, <No data fields>}, midi_controller_map = {<std::vector<std::__cxx11::list<gx_engine::MidiController, std::allocator<gx_engine::MidiController> >, std::allocator<std::__cxx11::list<gx_engine::MidiController, std::allocator<gx_engine::MidiController> > > >> = std::vector of length 328, capacity 328 = {empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list, empty std::__cxx11::list...}, <No data fields>}, current_bank = {static npos = 4294967295, string_ = ""}, current_preset = {static npos = 4294967295, string_ = ""}, bank_drag_get_counter = 0, bank_drag_get_path = "", tuner_switcher_display = {<sigc::signal2<void, Glib::ustring const&, Glib::ustring const&, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {callback_list_ = 0x0}, impl_ = 0x0}, <No data fields>}, <No data fields>}, tuner_switcher_set_state = {<sigc::signal1<void, TunerSwitcher::SwitcherState, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {callback_list_ = 0x0}, impl_ = 0x0}, <No data fields>}, <No data fields>}, tuner_switcher_selection_done = {<sigc::signal1<void, bool, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {callback_list_ = 0x0}, impl_ = 0x0}, <No data fields>}, <No data fields>}, plugin_changed = {<sigc::signal2<void, gx_engine::Plugin*, gx_engine::PluginChange::pc, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {callback_list_ = 0x0}, impl_ = 0x116f6e0}, <No data fields>}, <No data fields>}}
    gui = {<sigc::trackable> = {callback_list_ = 0x12bab88}, options = @0x7efff1a4, machine = @0x7efff014, theme = @0x7effee84, bld = {<Glib::RefPtr<gx_gui::GxBuilder>> = {pCppObject_ = 0xf2c570}, tunerbox = 0x111ebf8, tuner_box_no_rack = 0x111ec28, vrack_scrolledbox = 0xf44778, monorackscroller = 0x111ec58, stereorackcontainerH = 0x111ec88, stereorackcontainerV = 0x111ecb8, rackcontainer = 0x111ece8, stereorackbox = 0xf44750, monocontainer = 0x111ed18, monoampcontainer = 0x111ed48, main_vpaned = 0x111ed78, monobox = 0x111eda8, upper_rackbox = 0x111edd8, preset_scrolledbox = 0xf447a0, preset_box_no_rack = 0x111ee08, effects_frame_paintbox = 0x111ee38, insert_image = 0xf7d200, status_image = 0x1109dc0, jackd_image = 0x110a388, logstate_image = 0x110a658, window = 0x111ebc8, show_rack_button = 0x111ef68, rack_order_h_button = 0x111ef98, config_mode_button = 0x111efc8, liveplay_button = 0x111eff8, tuner_button = 0x111f028, effects_button = 0x111f058, presets_button = 0x111f088, compress_button = 0x111f0b8, expand_button = 0x111f0e8, effects_toolpalette = 0x111f118, amp_background = 0x111f148, tuner_on_off = 0xf6ea20, tuner_mode = 0x110b5e8, tuner_reference_pitch = 0x111cd08, tuner_tuning = 0x1118830, tuner_temperament = 0x1119cc0, racktuner = 0x110b108, ampdetail_compress = 0x111f1a0, ampdetail_expand = 0x111f1d0, ampdetail_mini = 0x111f200, ampdetail_normal = 0x111f230, fastmeter = {0xf30c48, 0xf31b90}, preset_status = 0x111f260, menubar = 0x111f290}, freezer = {window = 0x0, tag = {slot_ = 0x0}, need_thaw = false, size_x = -1, size_y = -1, work = {<sigc::slot0<void>> = {<sigc::slot_base> = {<sigc::functor_base> = {<No data fields>}, rep_ = 0x0, blocked_ = false}, <No data fields>}, <No data fields>}}, gx_head_icon = {pCppObject_ = 0x10ce808}, boxbuilder = {fBox = {stack = std::vector of length 0, capacity 0}, machine = @0x7efff014, widget = 0x0, accels = {pCppObject_ = 0x111c5f8}, window_icon = {pCppObject_ = 0x10ce808}, next_flags = 0, current_plugin = 0x0}, uimanager = {menu = {pCppObject_ = 0x112bfa0}, accelgroup = {pCppObject_ = 0x111c5f8}, actiongroup = {pCppObject_ = 0xf7d228}, menubar = 0x111f290}, actions = {quit = {pCppObject_ = 0x12c0d60}, compress = {pCppObject_ = 0x12c30c0}, expand = {pCppObject_ = 0x12c3150}, jackstartup = {pCppObject_ = 0x12c3a08}, loadladspa = {pCppObject_ = 0x12c3d90}, rack_config = {pCppObject_ = 0x12c2e78}, live_play = {pCppObject_ = 0x12c1700}, engine_mute = {pCppObject_ = 0x12c0940}, engine_mute_conn = {slot_ = 0x12c0ac4}, engine_bypass = {pCppObject_ = 0x12c0b48}, engine_bypass_conn = {slot_ = 0x12c0b94}, jackserverconnection = {pCppObject_ = 0x12bf0e0}, jackports = {pCppObject_ = 0x12bf0c0}, midicontroller = {pCppObject_ = 0x12c0140}, meterbridge = {pCppObject_ = 0x12c18f0}, loggingbox = {pCppObject_ = 0x12c1510}, animations = {pCppObject_ = 0x12c3f28}, show_plugin_bar = {pCppObject_ = 0x12c1120}, presets = {pCppObject_ = 0x12c0df0}, show_rack = {pCppObject_ = 0x12c1320}, tuner = {pCppObject_ = 0x1120450}, tunermove = {pCppObject_ = 0xf47e10}, livetuner = {pCppObject_ = 0x119d500}, show_values = {pCppObject_ = 0x12c35f8}, tooltips = {pCppObject_ = 0x12c37e0}, midi_in_presets = {pCppObject_ = 0xf47330}, rackh = {pCppObject_ = 0x12c3328}, midiout = {pCppObject_ = 0x12c4f30}, skin = {pCppObject_ = 0x1309338}, latency = {pCppObject_ = 0x133de98}, osc_buffer_size = {pCppObject_ = 0x134a728}, preset_list_menu = {pCppObject_ = 0x12be690}, new_bank = {pCppObject_ = 0x12c5488}, save_changes = {pCppObject_ = 0x12d2968}, organize = {pCppObject_ = 0x10e52c8}, online_preset_bank = {pCppObject_ = 0x12df3e0}}, plugin_dict = {<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, PluginUI*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, PluginUI*> > >> = std::map with 109 elements = {["GCB_95"] = 0x1180ab0, ["IR"] = 0x117fda8, ["JCM800Pre"] = 0x117b260, ["abgate"] = 0x11773b0, ["aclipper"] = 0x11765e8, ["amp.tonestack"] = 0x119a8c0, ["ampmodul"] = 0x119a910, ["astrofuzz"] = 0x119a960, ["axface"] = 0x119a9b0, ["bassEnhancer"] = 0x10bae00, ["baxandall"] = 0x10bae50, ["bboom"] = 0x10baea0, ["bfuzz"] = 0x10baef0, ["biquad"] = 0x10baf40, ["bitdowner"] = 0x10baf90, ["bmp"] = 0x1199898, ["bossds1"] = 0x11998e8, ["buffb"] = 0x1199938, ["buzz"] = 0x1199988, ["cab"] = 0x11999d8, ["cab_st"] = 0x1199a28, ["chorus"] = 0x1199a78, ["chorus_mono"] = 0x1199ac8, ["compressor"] = 0x119b000, ["coverd"] = 0x119b050, ["crybaby"] = 0x119b0a0, ["cstbt1"] = 0x119b0f0, ["dattorros_progenitor"] = 0x119b140, ["delay"] = 0x119b190, ["dide"] = 0x119b1e0, ["didest"] = 0x119b230, ["distortion2"] = 0x119b280, ["dubber"] = 0x119b2d0, ["duckDelay"] = 0x119b320, ["duckDelaySt"] = 0x119b370, ["echo"] = 0x119b3c0, ["eldist"] = 0x119b410, ["eq"] = 0x119b488, ["eqs"] = 0x119b4d8, ["expander"] = 0x119b528, ["feedback"] = 0x119b578, ["ffreak"] = 0x119b5c8, ["flanger"] = 0x119b640, ["flanger_mono"] = 0x119b690, ["flanger_mono_gx"] = 0x119b6e0, ["foxeylady"] = 0x119b730, ["freeverb"] = 0x119b7a8, ["fumaster"] = 0x119b7f8, ["fuzzdrive"] = 0x119b870, ["fuzzface"] = 0x119b8c0, ["fuzzfacefm"] = 0x119b938, ["fuzzfacerm"] = 0x119b9b0, ["gain"] = 0x119ba28, ["graphiceq"] = 0x119baa0, ["gx_distortion"] = 0x119baf0, ["hfb"] = 0x119bb40, ["highbooster"] = 0x119bbb8, ["hogsfoot"] = 0x119bc08, ["hornet"] = 0x119bc80, ["jconv"] = 0x119a328, ["jconv_mono"] = 0x11840c0, ["low_highpass"] = 0x119bcf8, ["lpbboost"] = 0x119bd48, ["mbc"] = 0x119bdc0, ["mbchor"] = 0x119be10, ["mbclip"] = 0x119be88, ["mbcs"] = 0x119bf00, ["mbd"] = 0x119bf50, ["mbdel"] = 0x119bfc8, ["mbe"] = 0x119c040, ["metro"] = 0x119c090, ["mole"] = 0x119c0e0, ["moog"] = 0x119c130, ["muff"] = 0x119c180, ["mxrdis"] = 0x119c1d0, ["oscilloscope"] = 0x119c220, ["overdrive"] = 0x119c270, ["panoram_enhancer"] = 0x119c2c0, ["phaser"] = 0x119c310, ["phaser_mono"] = 0x119c360, ["poweramp"] = 0x119c3b0, ["pre"] = 0x119c400, ["pre_st"] = 0x119c450, ["rangem"] = 0x119c4a0, ["recorder"] = 0x119c518, ["reversedelay"] = 0x119c568, ["ringModulatorSt"] = 0x119c5b8, ["ring_modulator"] = 0x119c630, ["rolandwah"] = 0x119c680, ["ruin"] = 0x119c6f8, ["scream"] = 0x119c770, ["seq"] = 0x119c7c0, ["smbPitchShift"] = 0x119c838, ["st_recorder"] = 0x119c8b0, ["stereodelay"] = 0x119c900, ["stereoecho"] = 0x119c950, ["stereoverb"] = 0x119c9a0, ["susta"] = 0x119c9f0, ["thick_distortion"] = 0x119ca40, ["tonemodul"] = 0x119ca90...}, monorackcontainer = {<Gtk::VBox> = {<No data fields>}, plugin_dict = @0x7efff78c, in_drag = -2, count = 0, targets = std::vector of length 2, capacity 2 = {"application/x-guitarix-mono", "application/x-gtk-tool-palette-item-mono"}, othertargets = std::vector of length 2, capacity 2 = {"application/x-guitarix-stereo", "application/x-gtk-tool-palette-item-stereo"}, highlight_connection = {slot_ = 0x0}, autoscroll_connection = {slot_ = 0x0}}, stereorackcontainer = {<Gtk::VBox> = {<No data fields>}, plugin_dict = @0x7efff78c, in_drag = -2, count = 0, targets = std::vector of length 2, capacity 2 = {"application/x-guitarix-stereo", "application/x-gtk-tool-palette-item-stereo"}, othertargets = std::vector of length 2, capacity 2 = {"application/x-guitarix-mono", "application/x-gtk-tool-palette-item-mono"}, highlight_connection = {slot_ = 0x0}, autoscroll_connection = {slot_ = 0x0}}, groupmap = std::map with 8 elements = {[{static npos = 4294967295, string_ = "Distortion"}] = 0x1178fd0, [{static npos = 4294967295, string_ = "Echo / Delay"}] = 0x1185900, [{static npos = 4294967295, string_ = "Fuzz"}] = 0x117f620, [{static npos = 4294967295, string_ = "Guitar Effects"}] = 0x11922e0, [{static npos = 4294967295, string_ = "Misc"}] = 0x10ba670, [{static npos = 4294967295, string_ = "Modulation"}] = 0x118a690, [{static npos = 4294967295, string_ = "Reverb"}] = 0x11828e8, [{static npos = 4294967295, string_ = "Tone Control"}] = 0x1174db0}, monotargets = std::vector of length 2, capacity 2 = {"application/x-guitarix-mono", "application/x-gtk-tool-palette-item-mono"}, stereotargets = std::vector of length 2, capacity 2 = {"application/x-guitarix-stereo", "application/x-gtk-tool-palette-item-stereo"}, boxbuilder = @0x7efff6c8, machine = @0x7efff014, options = @0x7efff1a4, toolpalette = @0x111f118, uimanager = @0x7efff6ec, config_mode = false, plugins_hidden = false, drag_icon = 0x0}, oldpos = 0, scrl_size_x = -1, scrl_size_y = -1, pre_act = 0, pool_act = 1948772092, is_visible = false, preset_list_menu_bank = {static npos = 4294967295, string_ = ""}, live_play = 0x0, preset_window = 0x101f660, portmap_window = 0x0, select_jack_control = 0x0, select_midi_channel = 0x0, fLoggingWindow = {<Gtk::Window> = {<No data fields>}, box = <incomplete type>, ok_button = <incomplete type>, buttonbox = <incomplete type>, scrollbox = <incomplete type>, tbox = <incomplete type>, static tagdefs = {{tagname = 0x8492b0 "colinfo", tag_color = 0x8492b8 "#cccccc"}, {tagname = 0x8492c0 "colwarn", tag_color = 0x8492c8 "#77994f"}, {tagname = 0x8492d0 "colerr", tag_color = 0x8492d8 "#ff8800"}}, tags = {{pCppObject_ = 0x12ac7a0}, {pCppObject_ = 0x12ae580}, {pCppObject_ = 0x12ae5d8}}, highest_unseen_msg_level = -1, msg_level_changed = {<sigc::signal0<void, sigc::nil>> = {<sigc::signal_base> = {<sigc::trackable> = {callback_list_ = 0x0}, impl_ = 0x0}, <No data fields>}, <No data fields>}}, amp_radio_menu = {machine = @0x7efff014, id = "tube.select", action = {pCppObject_ = 0x1352280}}, pixbuf_insert_on = {pCppObject_ = 0x12a3b10}, pixbuf_insert_off = {pCppObject_ = 0x12a3be0}, pixbuf_on = {pCppObject_ = 0x12b0fd0}, pixbuf_off = {pCppObject_ = 0x12ada40}, pixbuf_bypass = {pCppObject_ = 0x12adb00}, pixbuf_jack_connected = {pCppObject_ = 0x12b0a38}, pixbuf_jack_disconnected = {pCppObject_ = 0x12b5930}, pixbuf_log_grey = {pCppObject_ = 0x12b5a08}, pixbuf_log_yellow = {pCppObject_ = 0x12b5ae0}, pixbuf_log_red = {pCppObject_ = 0x12b0ae8}, in_session = false, status_icon = {pCppObject_ = 0x129cda0}, keyswitch = {<sigc::trackable> = {callback_list_ = 0x0}, machine = @0x7efff014, display = {<sigc::slot2<void, Glib::ustring const&, Glib::ustring const&>> = {<sigc::slot_base> = {<sigc::functor_base> = {<No data fields>}, rep_ = 0x12b9718, blocked_ = false}, <No data fields>}, <No data fields>}, key_timeout = {slot_ = 0x0}, last_bank_key = {static npos = 4294967295, string_ = ""}}, ladspalist_window = 0x0, left_column = {pCppObject_ = 0x0}}
    frontend = <optimized out>
    theme = {options = 0x7efff1a4, css_provider = {pCppObject_ = 0xdc5a78}, css_show_values = {pCppObject_ = 0xdc5f90}, style_context = {pCppObject_ = 0xdc45a0}, window = 0x111ebc8, window_x = 1, window_y = 1928707280}
    posixsig = {waitset = {__val = {84743, 0 <repeats 31 times>}}, thread = 0xce18f8, gui = true, theme = 0x7effee84, exit = false}
    options = {<gx_system::BasicOptions> = {<boost::noncopyable_::noncopyable> = {<boost::noncopyable_::base_token> = {<No data fields>}, <No data fields>}, user_dir = "/home/alarm/.config/guitarix/", user_IR_dir = "/home/alarm/.config/guitarix/IR/", sys_IR_dir = "/usr/share/gx_head/sounds/", IR_pathlist = {dirs = std::__cxx11::list = {[0] = {pCppObject_ = 0xcedc48}, [1] = {pCppObject_ = 0xcedbe8}}}, IR_prefixmap = {dirs = std::map with 2 elements = {[83 'S'] = "/usr/share/gx_head/sounds", [85 'U'] = "/home/alarm/.config/guitarix/IR"}}, static instance = 0x7efff1b0, builder_dir = "/usr/share/gx_head/builder/"}, <Glib::OptionContext> = {<No data fields>}, main_group = <incomplete type>, optgroup_style = <incomplete type>, optgroup_jack = <incomplete type>, optgroup_overload = <incomplete type>, optgroup_file = <incomplete type>, optgroup_debug = <incomplete type>, path_to_program = "/usr/bin/guitarix", version = false, clear = false, jack_input = {static npos = 4294967295, string_ = ""}, jack_midi = {static npos = 4294967295, string_ = ""}, jack_instance = {static npos = 4294967295, string_ = ""}, jack_outputs = std::vector of length 0, capacity 0, jack_uuid = {static npos = 4294967295, string_ = ""}, jack_uuid2 = {static npos = 4294967295, string_ = ""}, jack_noconnect = false, jack_single = false, jack_servername = {static npos = 4294967295, string_ = ""}, load_file = "", style_dir = "/usr/share/gx_head/skins/", factory_dir = "/usr/share/gx_head/factorysettings/", pixmap_dir = "/usr/share/pixmaps/", old_user_dir = "/home/alarm/.gx_head/", preset_dir = "/home/alarm/.config/guitarix/banks/", pluginpreset_dir = "/home/alarm/.config/guitarix/pluginpresets/", lv2_preset_dir = "/home/alarm/.config/guitarix/pluginpresets/lv2/", temp_dir = "/home/alarm/.config/guitarix/temp/", plugin_dir = "/home/alarm/.config/guitarix/plugins/", loop_dir = "/home/alarm/.config/guitarix/pluginpresets/loops/", rcset = {static npos = 4294967295, string_ = ""}, nogui = false, rpcport = 7000, rpcaddress = {static npos = 4294967295, string_ = "127.0.0.1"}, onlygui = true, liveplaygui = false, hideonquit = false, mute = false, setbank = {static npos = 4294967295, string_ = ""}, cmdline_bank = {static npos = 4294967295, string_ = ""}, cmdline_preset = {static npos = 4294967295, string_ = ""}, tuner_tet = {static npos = 4294967295, string_ = ""}, tuner_ref = {static npos = 4294967295, string_ = ""}, sporadic_overload = 0, idle_thread_timeout = 0, convolver_watchdog = true, xrun_watchdog = false, lterminal = false, a_save = false, auto_save = false, dump_parameter = false, skin = {name = {static npos = 4294967295, string_ = "Guitarix"}, skin_list = std::vector of length 22, capacity 32 = {{static npos = 4294967295, string_ = "Aluminium"}, {static npos = 4294967295, string_ = "Burl"}, {static npos = 4294967295, string_ = "Camouflage"}, {static npos = 4294967295, string_ = "Copper"}, {static npos = 4294967295, string_ = "Dark"}, {static npos = 4294967295, string_ = "Gold"}, {static npos = 4294967295, string_ = "Grandma"}, {static npos = 4294967295, string_ = "Grungy_Sun"}, {static npos = 4294967295, string_ = "Grungy_Sun_Dark"}, {static npos = 4294967295, string_ = "Guitarix"}, {static npos = 4294967295, string_ = "Guitarix_Oak"}, {static npos = 4294967295, string_ = "Hippie"}, {static npos = 4294967295, string_ = "Lavender"}, {static npos = 4294967295, string_ = "Nebula"}, {static npos = 4294967295, string_ = "Oak"}, {static npos = 4294967295, string_ = "Olive"}, {static npos = 4294967295, string_ = "Orange"}, {static npos = 4294967295, string_ = "Plain_Dark"}, {static npos = 4294967295, string_ = "Psycedelic"}, {static npos = 4294967295, string_ = "Rust"}, {static npos = 4294967295, string_ = "Sky"}, {static npos = 4294967295, string_ = "White_Oak"}}}, mainwin_x = -1, mainwin_y = -1, mainwin_height = -1, window_height = 600, preset_window_height = 220, mul_buffer = 1, no_warn_latency = false, system_order_rack_h = false, system_show_value = false, system_show_tooltips = true, system_animations = true, system_show_presets = false, system_show_toolbar = false, system_show_rack = false, system_midiout = false, reload_lv2_presets = true}
    main = <incomplete type>
    theme_ok = false
    Splash = 0x0
    popup = {msg = {static npos = 4294967295, string_ = ""}, active = false, dialog = 0x0}
    need_new_preset = false

3 mainProg(int, char**) (argc=, argv=) at ../src/gx_head/gui/gx_main.cpp:718

    frontend = <optimized out>
    theme = {options = 0x7efff1a4, css_provider = {pCppObject_ = 0xdc5a78}, css_show_values = {pCppObject_ = 0xdc5f90}, style_context = {pCppObject_ = 0xdc45a0}, window = 0x111ebc8, window_x = 1, window_y = 1928707280}
    posixsig = {waitset = {__val = {84743, 0 <repeats 31 times>}}, thread = 0xce18f8, gui = true, theme = 0x7effee84, exit = false}
    options = {<gx_system::BasicOptions> = {<boost::noncopyable_::noncopyable> = {<boost::noncopyable_::base_token> = {<No data fields>}, <No data fields>}, user_dir = "/home/alarm/.config/guitarix/", user_IR_dir = "/home/alarm/.config/guitarix/IR/", sys_IR_dir = "/usr/share/gx_head/sounds/", IR_pathlist = {dirs = std::__cxx11::list = {[0] = {pCppObject_ = 0xcedc48}, [1] = {pCppObject_ = 0xcedbe8}}}, IR_prefixmap = {dirs = std::map with 2 elements = {[83 'S'] = "/usr/share/gx_head/sounds", [85 'U'] = "/home/alarm/.config/guitarix/IR"}}, static instance = 0x7efff1b0, builder_dir = "/usr/share/gx_head/builder/"}, <Glib::OptionContext> = {<No data fields>}, main_group = <incomplete type>, optgroup_style = <incomplete type>, optgroup_jack = <incomplete type>, optgroup_overload = <incomplete type>, optgroup_file = <incomplete type>, optgroup_debug = <incomplete type>, path_to_program = "/usr/bin/guitarix", version = false, clear = false, jack_input = {static npos = 4294967295, string_ = ""}, jack_midi = {static npos = 4294967295, string_ = ""}, jack_instance = {static npos = 4294967295, string_ = ""}, jack_outputs = std::vector of length 0, capacity 0, jack_uuid = {static npos = 4294967295, string_ = ""}, jack_uuid2 = {static npos = 4294967295, string_ = ""}, jack_noconnect = false, jack_single = false, jack_servername = {static npos = 4294967295, string_ = ""}, load_file = "", style_dir = "/usr/share/gx_head/skins/", factory_dir = "/usr/share/gx_head/factorysettings/", pixmap_dir = "/usr/share/pixmaps/", old_user_dir = "/home/alarm/.gx_head/", preset_dir = "/home/alarm/.config/guitarix/banks/", pluginpreset_dir = "/home/alarm/.config/guitarix/pluginpresets/", lv2_preset_dir = "/home/alarm/.config/guitarix/pluginpresets/lv2/", temp_dir = "/home/alarm/.config/guitarix/temp/", plugin_dir = "/home/alarm/.config/guitarix/plugins/", loop_dir = "/home/alarm/.config/guitarix/pluginpresets/loops/", rcset = {static npos = 4294967295, string_ = ""}, nogui = false, rpcport = 7000, rpcaddress = {static npos = 4294967295, string_ = "127.0.0.1"}, onlygui = true, liveplaygui = false, hideonquit = false, mute = false, setbank = {static npos = 4294967295, string_ = ""}, cmdline_bank = {static npos = 4294967295, string_ = ""}, cmdline_preset = {static npos = 4294967295, string_ = ""}, tuner_tet = {static npos = 4294967295, string_ = ""}, tuner_ref = {static npos = 4294967295, string_ = ""}, sporadic_overload = 0, idle_thread_timeout = 0, convolver_watchdog = true, xrun_watchdog = false, lterminal = false, a_save = false, auto_save = false, dump_parameter = false, skin = {name = {static npos = 4294967295, string_ = "Guitarix"}, skin_list = std::vector of length 22, capacity 32 = {{static npos = 4294967295, string_ = "Aluminium"}, {static npos = 4294967295, string_ = "Burl"}, {static npos = 4294967295, string_ = "Camouflage"}, {static npos = 4294967295, string_ = "Copper"}, {static npos = 4294967295, string_ = "Dark"}, {static npos = 4294967295, string_ = "Gold"}, {static npos = 4294967295, string_ = "Grandma"}, {static npos = 4294967295, string_ = "Grungy_Sun"}, {static npos = 4294967295, string_ = "Grungy_Sun_Dark"}, {static npos = 4294967295, string_ = "Guitarix"}, {static npos = 4294967295, string_ = "Guitarix_Oak"}, {static npos = 4294967295, string_ = "Hippie"}, {static npos = 4294967295, string_ = "Lavender"}, {static npos = 4294967295, string_ = "Nebula"}, {static npos = 4294967295, string_ = "Oak"}, {static npos = 4294967295, string_ = "Olive"}, {static npos = 4294967295, string_ = "Orange"}, {static npos = 4294967295, string_ = "Plain_Dark"}, {static npos = 4294967295, string_ = "Psycedelic"}, {static npos = 4294967295, string_ = "Rust"}, {static npos = 4294967295, string_ = "Sky"}, {static npos = 4294967295, string_ = "White_Oak"}}}, mainwin_x = -1, mainwin_y = -1, mainwin_height = -1, window_height = 600, preset_window_height = 220, mul_buffer = 1, no_warn_latency = false, system_order_rack_h = false, system_show_value = false, system_show_tooltips = true, system_animations = true, system_show_presets = false, system_show_toolbar = false, system_show_rack = false, system_midiout = false, reload_lv2_presets = true}
    main = <incomplete type>
    theme_ok = false
    Splash = 0x0
    popup = {msg = {static npos = 4294967295, string_ = ""}, active = false, dialog = 0x0}
    need_new_preset = false

4 0x004f0784 in main(int, char**) (argc=2, argv=0x7efffc24) at ../src/gx_head/gui/gx_main.cpp:754

(gdb)

brummer10 commented 4 years ago

Thanks for the bt. Still I can't reproduce the issue, but, I'm able to see now were the crash happen and have a idea why. So I've pushed a possible fix for that to the repository. Just, if it is fixed or not, I cant say for sure.

Rippert commented 4 years ago

Hermann, That fixed it. It runs without crashing and sound comes out of my card, at least with the simple preset I'm using. Thanks again.

Rippert commented 4 years ago

Just a follow up for anyone that comes here from a web search. If your building on a Raspberry pi on archlinuxarm, you really don't need any options in the waf configuration if you've never installed Guitarix before, but you probably want to use --prefix=/usr to be sure that you don't get conflicts with an installed version in the future, and you definitly need it if you have installed from the repository previously. This assumes that you have installed all the dependencies, which are available via pacman. You probably also want --disable-sse also to build the lv2 plugins

The case is different in rasbian. I just got Guitarix to build in rasbian Buster. I needed these switches on the waf configuration:

./waf configure --no-faust --disable-sse --prefix=/usr --cxxflags='-I/usr/include/arm-linux-gnueabihf/ -mtune=cortex-a53 -march=native' --ldflags='-L/usr/lib/arm-linux-gnueabihf/'

The compiler could not find the cairo libraries without the --ldflags='-L/usr/lib/arm-linux-gnueabihf/' switch and the raspbian version of faust is too old to use with guitarix. The --cxxflags are not totally neccessary, but they are helpful if you want low latency, realtime operation. The -mtune=cortex-a53 flag is specific to a raspberry pi 3, but the -march=native flag works on all models.

Rippert commented 4 years ago

One more update. note that you also need a -j 1 switch if you don't have at least 512 MB of swap space on your Pi 3. With that much, you can let waf use all four cores, which is the default.

Also, after talking with Hermann in another issue, my recommended --cxxflags for a Pi 3 are:

--cxxflags='-Wall -DGSEAL_ENABLE -I/usr/include/arm-linux-gnueabihf/ -mtune=cortex-a53 -march=native'

Rippert commented 4 years ago

Another note, if you are building with debug symbols (-g in cxxflags or the --debug switch in the waf configure) you definitely need the -j 1 waf flag or you the build will fail due to lack of memory. I tried it on a Raspberry Pi 3B+ running raspbian Buster with 1 GB of swap space.

puleglot commented 1 year ago

Please note that after a5917a8a7274a57e1ce40aa297d73ad45853a473 it is no longer possible to configure and build with different number of jobs. So if for example I do

waf configure -j1
waf build -j8

then guitarix still gets built with 1 job. The correct solution for the reporter of this issue is to pass -j also to the build command.