Delete a decoder trace marker and add a new one results in a segfault.
*** Bug 174 has been marked as a duplicate of this bug. ***
Commit 7fc7bde666b3c1234e3d9612caa0388381881059 properly returns an error, allowing Pulseview to detect something went wrong. The problem happens in srd_inst_option_set(), which is called by srd_inst_new() with the passed-in GHashTable *options.
Fixed in 119d62586036f4436de8e11824e388c3f0a882c4
Testing PulseView with the latest Git version of PulseView and libsigrokdecode, I get the following error when I add a second decoder: ----------------- >8 -------------------- Fatal Python error: GC object already tracked Current thread 0x00007f06775217c0: srd: Aborted ----------------- 8< --------------------
On a second run it gave me this error: ----------------- >8 -------------------- Fatal Python error: GC object already tracked Current thread 0xsrd: Protocol decoder instance uart: TypeError: ((((<NULL>,),),),)00007f1b276e87c0 : File "/home/joel/share/libsigrokdecode/decoders/uart/pd.py", line 301 in decode Aborted ----------------- 8< --------------------
I can reproduce the "Fatal Python error: GC object already tracked" and other errors mentioned by Joel below, but those only happen when two PDs run at the same time. That issue should be tracked in a separate bug, I guess. The one mentioned in this bug (add PD in PulseView, remove it, then re-add another one (or the same one)) works fine for me now with libsigrokdecode git HEAD. It also works fine to add two PDs in PulseView now, as long as the second one is only added after the first one has finished decoding (i.e. they don't run at the same time).
This is fixed in git HEAD, via one of (or both of): 119d62586036f4436de8e11824e388c3f0a882c4 308d9958c9b4ca8f7126d7e8c81be3b93749a2b1
Moving to libsigrokdecode, this was not a PulseView bug.