HISE Logo Forum
    • Categories
    • Register
    • Login

    Crash on MacOS in compiled plugin when working with HardcodedEnvelopeModulator

    Scheduled Pinned Locked Moved Bug Reports
    27 Posts 3 Posters 274 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Christoph HartC
      Christoph Hart @Orvillain
      last edited by

      @Orvillain just checked, I couldn't reproduce the crash:

      • which host are you using? Can you reproduce this with the minimal JUCE audio plugin host?
      • Does it crash when running under a debugger? If yes, then giving me the location will get us to 80% of solving that.
      • Can you post the exact script node network? I'm plugging the modules you mentioned there, but no crash (also as a side node you don't need the peak node, the modulation signal is being calculated as the audio signal).
      OrvillainO 1 Reply Last reply Reply Quote 0
      • OrvillainO
        Orvillain @Christoph Hart
        last edited by

        @Christoph-Hart said in Crash on MacOS in compiled plugin when working with HardcodedEnvelopeModulator:

        @Orvillain just checked, I couldn't reproduce the crash:

        • which host are you using? Can you reproduce this with the minimal JUCE audio plugin host?
        • Does it crash when running under a debugger? If yes, then giving me the location will get us to 80% of solving that.
        • Can you post the exact script node network? I'm plugging the modules you mentioned there, but no crash (also as a side node you don't need the peak node, the modulation signal is being calculated as the audio signal).

        I'll check it out. I've debugged HISE standalone, but not yet debugged a plugin inside a host, so will need to go and figure that out.

        Musician - Instrument Designer - Sonic Architect - Creative Product Owner
        Crafting sound at every level. From strings to signal paths, samples to systems.

        GoodflowG 1 Reply Last reply Reply Quote 0
        • GoodflowG
          Goodflow @Orvillain
          last edited by

          @Orvillain I think someone here mentioned debugging plugins as standalone apps; I can't find the exact post but the steps are

          1. Export > Export as Standalone App, then close the terminal window/cancel the process.
          2. Open the generated Xcode project /Binaries/Builds/MacOSX/(PROJECT).xcodeproj
          3. Compile/debug

          I can't get your snippet to crash with a osc-sig2mod-peak node, but I'm getting the crash reliably with hardcoded fx and am pretty sure it's the same root issue.

          HiseSnippet 1938.3oc2Ys0aaaCEVJ1L25k0r1ULLfA3G1CoacARx2wdno4haMVt3U6lUf8P.iLUrPjH0jnSS1vdeuseS6ev9oz+AaGJJYQ43l35lFzNUf.Sd3g76bNemCuzNgLaRTDKTSe4dmGPzzuMp64T9fMGfcoZs2RS+tnH6P2.tyYbRDWaiyCvQQj9Z55EdlXL5KUTK96MOYCrGlZSx5RS6.lqMYGWeWdVucV+Gc87Zg6S545qL5Jq21lQ2j4wFB3o.xPK.aeB9XxdXwvlCo8bbz.M8uE4XZVwoZix1VGQbNx11whPbZTsV0ZF8q6Xa07HqZ052zVSe9s66xYgc4X.8Z5E2f0+7tCXulJWfCbibOxiHZXp0EVYY2sXd8ElnnWsMG350uSpiJRClzNYtsBR21CP6512cT+Ytu6EKnTlFpNP84xCuB4fmoJ7LTf2DfjtBjJJgzJntwAtLIB7bKTaJmD5fg3jJTjiUS+uQaxfAP4q4iOgzJDZLRgUqYX73RvedzOrryPpM2kQKwn6w3j8oq9nk+8kWZ4+X4RiKxwYhxDqSHyyiDNQwBtQ3ko3pzg9GQBeboSwdCIiFHX+4cpn2tSUMlaKMakAxnsot78CHz2FSPKwWA+5ks2BywhHQRev3BHgbWADz2hbJjGHiKKg1hDcBmE.YBWHnAzEV+gdXddNjHSKQ.3CxE3DQGZjK+b0LwwIVEmNh0ky6mV3tBpiK2dvjw6bS.ufW6CMdSRSuCZaGGhMOCrEQsd0klSdsCkEkP4qPOyicD1KyAB7F.UDYd5WmHtzH4kFM.yKoJ7+LsUgCl5pvimPUb5RnthhnE+nqH5zxuu+EBMQu6YjWOk5WQBSDZmV6m3ofekALyqFXa3Fv7vgB4sBI+5PB0VQ9hqKXHsyHXq+Wq+y3SINrP+jxYilocHGCqoZO8H9AL37D1pjwt9LFefK8377tGr9NLVv1TL3E5qNIcFfiDahDQ34lFXZ6w1EGAaNsoGy9DUgsOlxBIxMlT6eygQblepADelhtbRPboa8eAUqxZvmy2I9ayMg+Td+qm1ZuCgeyKO7O2TyRELgQgbAm3Fjkp8NgxQDuORQ4ktiVgoZGsqELN66hM6K+KXC4Px5tXdn6YPol8F52E1Zvl.qNkR7DmvReNQtkrsgncbBJg1Otw+BeIBMEs0SDZlJTSN4xCPoZu2UZu2B0E11K9dIwV6CiaWRjFW5YDXCwKVp6C9lh6aygkuWHlFEvhxMwcI9t8XTgaOqyWFQDr7WHnO4pHwvgSTzadRKvHmnNcw7ggw7vm5yFRyUVTuvmTaVeidvz2+yQe8rq8RoXrqqefGYa5oDO3xBwX7ygaG3fG5wS6MOudWFkELfQcysk5KHP9ywGSBUw9DMnmx4X0sJev5uf3QvpD3uY8c.hGND7SjYzWX9NeY0IFu9RjDtkDIik9+w8eJ7o18etVCyKm7lDvZJV7amzrTqWYNwWi3OQYW7OHjDfCI8Xc7vmuZDVj5.kFIOtzQhi+0082HW70BBjPXCwHV0NYGqY4QEl+ll7uHZ6y3gXyaxiCcSrWe1SlrGg+ZV3IwNkjeClsjWHeywCcNyT6oddrWuIyOvMIaJ1ndNNpG10K4Y7HgQwRV.YrF7OoNcXdmmVqTufbFRsjzMNklSVp5FoToQV1vn..+6S6BJGeBBHEQeu3ZiKzBaC98y6fgCl.o81oWPeM6QgwblRVnTfZ4yZla.hnVGbHH.tUSjzREqU5IOjXBLEegKTb8E8BB4wWLPBp4kuxmOrGrDE4.4Wn.xrgLIboNESKDzyAAhf+dnObh9bP3d.DBIqkIcxqdl7qX0KlE85gCOlviRdENJwVxWh8Ls6KtmbzoNZibvhttEJ6VuZJtdwEsRaAJtqK8.QEAwbHHX6hOKo87HyZPGhqQlvaPlPagKXATaZexYZ4zTa5lV4rLoY8yPI4rccOlh8Fa1EzbOxYoOF4VtQAP4xMFBk8kkex0CzVBQXefu2LdGizGsLu2Hmj3ZXhVPYn4jj71QGHjZmgGHwRgMH8743A2A435Il80DhlDIPpzUQ9FyhaImzredAaTMHOuRzXgrnw7Hq7gikfNfOQH4Dxqk1g3LvFqYY0roQkp0rrJWoQ8FUSdk8LVUOfI2iEOO.o7TvMIVL0QjbhujkZQjobkd5PNyGJomtA+jIN2GvPYi3OSylVFMsZpf66iZtVilhuZlMpV1vpd4KZA0pT2rdCy5kMpU0rQsXKn.5mzxQEUW9hYK+BfOsw3IDMRnpyGef62G9+XPsrgogvXa1rQkl0MLSb1idRozk5ghYyno7qd8ZUZXUsg0zu1UdK4dyihOU70aB8RnzW8ZLG9aKYDx+TXsxDPYtjfSoMUzX3vEjP5nmeNtN4xHHW5HXug9WMK+pY04wfZE4YsdxL8+wxMwYZFaMVYhqwhuWqQhPKUMsFSXYUMKOlvJpZVYLgUU0r5XBqopYswDVWUy5i7H9X6P1g1xCUKBwKF2CTWgFWZeIzth1kL0NMgYN5tPhicbnsc9o5BJZMqJVdVUrxrpX0YUwZyph0mUEab0JJdbmjclDEMfCO2Ya46mqO5w60Kn8e.onlJU
          

          This snippet uses a scriptFX and needs HISE_NUM_SCRIPTNODE_FX_MODS=1 or more in the project's extra definitions. On compile+debug, it'll throw JUCE Assertion failure in juce_SmoothedValue.h:301 scriptFXstacktrace.txt

          If you compile and replace the scriptFX with a HardcodedMasterFX, it'll throw JUCE Assertion failure in ModulatorChain.cpp:2023 on compile+debug. Same error occurs with a polyphonic instance. hardcodedFXstacktrace.txt

          I noticed the modulation chain processes in the stack traces and figured our crashes were related.

          OrvillainO 2 Replies Last reply Reply Quote 1
          • OrvillainO
            Orvillain @Goodflow
            last edited by

            @Goodflow Thanks for responding!!

            @Christoph-Hart
            24413bff-f47b-4504-a630-0e84bd00881e-image.png

            This is my network.

            I am recompiling and re-exporting the plugin now. Will see if it crashes.

            Musician - Instrument Designer - Sonic Architect - Creative Product Owner
            Crafting sound at every level. From strings to signal paths, samples to systems.

            OrvillainO 1 Reply Last reply Reply Quote 0
            • OrvillainO
              Orvillain @Orvillain
              last edited by

              @Christoph-Hart
              https://www.dropbox.com/scl/fi/g5235ul4gkviziv0j6n8r/blankplugin.zip?rlkey=tdxaelcnteyrjy9i8de1bhkqu&st=uyke58pd&dl=0

              Here's a link to the project, in case it helps.

              I'm gonna investigate how to get it debugged.

              Musician - Instrument Designer - Sonic Architect - Creative Product Owner
              Crafting sound at every level. From strings to signal paths, samples to systems.

              1 Reply Last reply Reply Quote 0
              • OrvillainO
                Orvillain @Goodflow
                last edited by

                @Goodflow Your snippet does not crash for me. I think these are different issues.

                Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                Crafting sound at every level. From strings to signal paths, samples to systems.

                1 Reply Last reply Reply Quote 0
                • OrvillainO
                  Orvillain
                  last edited by Orvillain

                  Hmmm, I don't understand.

                  My 'blankplugin debug.vst3' file doesn't show in Ableton Live. But it did show in Reaper, and it loaded and worked.

                  My regular exported from HISE directly blankplugin.vst3 file does show in Ableton Live, but crashes it, and does not show in Reaper - presumably because it crashes validation.

                  If I build blankplugin.vst3 directly in xcode, then it won't pass validation in any host.

                  Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                  Crafting sound at every level. From strings to signal paths, samples to systems.

                  1 Reply Last reply Reply Quote 0
                  • OrvillainO
                    Orvillain
                    last edited by

                    So far little success in debugging. But here's the Live crashed thread:

                    Thread 0 Crashed:: MainThread Dispatch queue: com.apple.main-thread
                    0   blankplugin                   	       0x33ae250a0 0x33ab24000 + 3149984
                    1   blankplugin                   	       0x33ae2cf20 0x33ab24000 + 3182368
                    2   blankplugin                   	       0x33ac0b208 0x33ab24000 + 946696
                    3   blankplugin                   	       0x33ac16b44 0x33ab24000 + 994116
                    4   blankplugin                   	       0x33ac0b208 0x33ab24000 + 946696
                    5   blankplugin                   	       0x33ac473d4 0x33ab24000 + 1192916
                    6   blankplugin                   	       0x33ae3856c 0x33ab24000 + 3229036
                    7   blankplugin                   	       0x33ac0b208 0x33ab24000 + 946696
                    8   blankplugin                   	       0x33ac473d4 0x33ab24000 + 1192916
                    9   blankplugin                   	       0x33ac7d1a8 0x33ab24000 + 1413544
                    10  blankplugin                   	       0x33aedcc7c 0x33ab24000 + 3902588
                    11  blankplugin                   	       0x33aedb610 0x33ab24000 + 3896848
                    12  blankplugin                   	       0x33ab32294 0x33ab24000 + 58004
                    13  blankplugin                   	       0x33ab29fa0 0x33ab24000 + 24480
                    14  blankplugin                   	       0x33ab3de18 0x33ab24000 + 106008
                    15  Live                          	       0x102c7d498 0x1006e0000 + 39441560
                    16  Live                          	       0x102a9f240 0x1006e0000 + 37483072
                    17  Live                          	       0x102a9ec2c 0x1006e0000 + 37481516
                    18  Live                          	       0x102a9e448 0x1006e0000 + 37479496
                    19  Live                          	       0x101a63a48 0x1006e0000 + 20462152
                    20  Live                          	       0x101a63710 0x1006e0000 + 20461328
                    21  Live                          	       0x101a72658 0x1006e0000 + 20522584
                    22  Live                          	       0x101a47f9c 0x1006e0000 + 20348828
                    23  Live                          	       0x102c85464 0x1006e0000 + 39474276
                    24  Live                          	       0x102c05210 0x1006e0000 + 38949392
                    25  Live                          	       0x102b9d63c 0x1006e0000 + 38524476
                    26  Live                          	       0x102108904 0x1006e0000 + 27429124
                    27  Live                          	       0x1021315cc 0x1006e0000 + 27596236
                    28  Live                          	       0x1020cd940 0x1006e0000 + 27187520
                    29  Live                          	       0x10212e870 0x1006e0000 + 27584624
                    30  Live                          	       0x10212e4f4 0x1006e0000 + 27583732
                    31  Live                          	       0x10212e6ac 0x1006e0000 + 27584172
                    32  Live                          	       0x102f11b20 0x1006e0000 + 42146592
                    33  Live                          	       0x103516720 0x1006e0000 + 48457504
                    34  Live                          	       0x103516390 0x1006e0000 + 48456592
                    35  Live                          	       0x101833c8c 0x1006e0000 + 18168972
                    36  Live                          	       0x10157eabc 0x1006e0000 + 15329980
                    37  Live                          	       0x10157e62c 0x1006e0000 + 15328812
                    38  Live                          	       0x10178d7e4 0x1006e0000 + 17487844
                    39  Foundation                    	       0x1949d0fcc __NSFireTimer + 104
                    40  CoreFoundation                	       0x1933e2e14 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 32
                    41  CoreFoundation                	       0x1933e2ad4 __CFRunLoopDoTimer + 980
                    42  CoreFoundation                	       0x1933e2610 __CFRunLoopDoTimers + 332
                    43  CoreFoundation                	       0x1933c8a18 __CFRunLoopRun + 1848
                    44  CoreFoundation                	       0x1933c7c58 CFRunLoopRunSpecific + 572
                    45  HIToolbox                     	       0x19ee5c27c RunCurrentEventLoopInMode + 324
                    46  HIToolbox                     	       0x19ee5f4e8 ReceiveNextEventCommon + 676
                    47  HIToolbox                     	       0x19efea484 _BlockUntilNextEventMatchingListInModeWithFilter + 76
                    48  AppKit                        	       0x1972efab4 _DPSNextEvent + 684
                    49  AppKit                        	       0x197c8e5b0 -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 688
                    50  AppKit                        	       0x1972e2c64 -[NSApplication run] + 480
                    51  Live                          	       0x10178cbb0 0x1006e0000 + 17484720
                    52  dyld                          	       0x192f3eb98 start + 6076
                    

                    I suppose it isn't terribly useful, but pasting here anyway.

                    Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                    Crafting sound at every level. From strings to signal paths, samples to systems.

                    1 Reply Last reply Reply Quote 0
                    • OrvillainO
                      Orvillain
                      last edited by Orvillain

                      If I unload my hardcoded network, and comment out the .setEffect() call that sets it, then it does not crash.

                      I don't get this behaviour on Windows again by the way - that nework, whether I need various elements of it or not, compiles fine and runs in the DAW fine.

                      If I leave the realtime script node modulator in, instead of a hardcoded, and compile the plugin, the plugin does not crash, but the network does not seem active either - I guess it gets unloaded when compiling?? Never been 100% clear on the expectation there, I've typically just tried to compile my networks as soon as possible.

                      Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                      Crafting sound at every level. From strings to signal paths, samples to systems.

                      1 Reply Last reply Reply Quote 0
                      • OrvillainO
                        Orvillain
                        last edited by

                        If I remove the Peak node in my network and compile, I get this:
                        68865e72-2caa-4b99-8ff5-0e97396e2054-image.png

                        It seemed previously that my network needed 1 channel to be able to be used as a global modulator. Is that correct?

                        I will try compiling with 2 channels, although it is saying it is expecting -1 lol - why?!

                        Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                        Crafting sound at every level. From strings to signal paths, samples to systems.

                        Christoph HartC 1 Reply Last reply Reply Quote 0
                        • Christoph HartC
                          Christoph Hart @Orvillain
                          last edited by

                          @Orvillain yes, modulators are monophonic signal generators so they need to compiled with NumChannels==1. -1 indicates that something else went wrong, but it's hard to guess from here.

                          Oh and I would recommend to check out a better host for testing than a full DAW (unless you specifically need to debug a certain bug that only occurs there), as this vastly accelerates the debug cycle. Check out the JUCE plugin host - you might have to build it with the VST3 SDK from source, but this is a really minimal host that you can directly launch from Xcode and if you save the plugin setup within the host, it will automatically restore it whenever you launch Xcode.

                          I suppose it isn't terribly useful, but pasting here anyway.

                          Looks like a release build without symbols, so yeah not much to gain from this.

                          OrvillainO 1 Reply Last reply Reply Quote 0
                          • OrvillainO
                            Orvillain @Christoph Hart
                            last edited by

                            @Christoph-Hart I have the JUCE minimal host, but whenever I add this test plugin to it, it crashes on scan. No useful log out of it.

                            How do I build a debug version of my plugin? Open the xcode project and change the run target to debug? There isn't a way to do one from inside HISE directly is there?

                            Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                            Crafting sound at every level. From strings to signal paths, samples to systems.

                            1 Reply Last reply Reply Quote 0
                            • OrvillainO
                              Orvillain
                              last edited by Orvillain

                              Right. So I emptied my Scriptnode network. Completely. Just a blank network. Compiled it. 1 channel. Re-launched HISE. Re-exported my plugin with the hardcoded network loaded as a global modulator.

                              Still crashes. I don't think it is to do with the contents of the network. Just the fact I have a hardcoded script envelope modulator in the global modulators altogether.

                              If I remove the Matrix Modulator on the waveform generator, but keep the global modulator (again, hardcoded envelope, but the network has nothing in it) and it still crashes.

                              At this point, I can only assume it is a configuration issue, or a HISE specific crash that I'm not describing well enough for you to reproduce it, Christoph.

                              Only other thing I can think is if you take my dropbox project above, compile the network in HISE on your Mac, and export the plugin your side and see if it crashes ???

                              The moment I remove the global modulator hardcodedenvelope instance, the plugin will load in any host.

                              FULL SPECS:
                              Macbook Pro M1 (2021)
                              MacOS 15.5 (24F74)
                              Xcode version: Version 16.4 (16F6)
                              Hise commit: 162f714b4b49264abf8081199ae9fe2d46c8a040

                              Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                              Crafting sound at every level. From strings to signal paths, samples to systems.

                              1 Reply Last reply Reply Quote 0
                              • OrvillainO
                                Orvillain
                                last edited by

                                I opened the blankplugin xcode project. Set the scheme to debug. Compiled the plugin. I get blankplugin debug.vst3 out at the end, as well as blankplugin debug.a library file. Copy the plugin to the plugins folder, make sure the old one is no longer there.

                                It shows up in the DAW, and it does not crash.

                                Sooooo... debug version not crashing.... release version... crashing. That I don't understand.

                                Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                                Crafting sound at every level. From strings to signal paths, samples to systems.

                                1 Reply Last reply Reply Quote 0
                                • OrvillainO
                                  Orvillain
                                  last edited by

                                  Yeah man, this is wild AF. The debug version works fine - even the hardcoded global envelope modulator is working.

                                  There's something skwicky with my release build. Maybe I compiled HISE with a flag or setting, set incorrectly....???

                                  Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                                  Crafting sound at every level. From strings to signal paths, samples to systems.

                                  1 Reply Last reply Reply Quote 0
                                  • OrvillainO
                                    Orvillain
                                    last edited by Orvillain

                                    Turning off link-time optimization in the xcode project seems to stop the crash from happening. It was originally set to 'Monolithic' for release, and turned off for 'debug' so that explains why debug was working and release was not.

                                    I'm trying to build a release version with symbol support so I can see what the heck is going on.

                                    Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                                    Crafting sound at every level. From strings to signal paths, samples to systems.

                                    1 Reply Last reply Reply Quote 0
                                    • OrvillainO
                                      Orvillain
                                      last edited by Orvillain

                                      @Christoph-Hart

                                      I turned on all symbol support and recompiled with LTO set to 'Monolithic' and this is the crash I get:

                                      Thread 0 Crashed:: MainThread Dispatch queue: com.apple.main-thread
                                      0   blankplugin                   	       0x17d35567c hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2680
                                      1   blankplugin                   	       0x17d35d4fc hise::HardcodedSwappableEffect::restoreHardcodedData(juce::ValueTree const&) + 308
                                      2   blankplugin                   	       0x17d13ae60 hise::Processor::restoreFromValueTree(juce::ValueTree const&) + 3376
                                      3   blankplugin                   	       0x17d14679c hise::EnvelopeModulator::restoreFromValueTree(juce::ValueTree const&) + 40
                                      4   blankplugin                   	       0x17d13ae60 hise::Processor::restoreFromValueTree(juce::ValueTree const&) + 3376
                                      5   blankplugin                   	       0x17d17702c hise::ModulatorSynth::restoreFromValueTree(juce::ValueTree const&) + 1496
                                      6   blankplugin                   	       0x17d368ce0 non-virtual thunk to hise::GlobalModulatorContainer::restoreFromValueTree(juce::ValueTree const&) + 40
                                      7   blankplugin                   	       0x17d13ae60 hise::Processor::restoreFromValueTree(juce::ValueTree const&) + 3376
                                      8   blankplugin                   	       0x17d17702c hise::ModulatorSynth::restoreFromValueTree(juce::ValueTree const&) + 1496
                                      9   blankplugin                   	       0x17d1ad784 hise::ModulatorSynthChain::restoreFromValueTree(juce::ValueTree const&) + 336
                                      10  blankplugin                   	       0x17d40d3f0 hise::FrontendProcessor::createPreset(juce::ValueTree const&) + 152
                                      11  blankplugin                   	       0x17d40bd84 hise::FrontendProcessor::FrontendProcessor(juce::ValueTree&, juce::AudioDeviceManager*, juce::AudioProcessorPlayer*, juce::MemoryInputStream*, juce::MemoryInputStream*, juce::MemoryInputStream*, juce::MemoryInputStream*, juce::ValueTree*, juce::ValueTree*) + 10924
                                      12  blankplugin                   	       0x17d062294 juce::JuceVST3Component::JuceVST3Component(Steinberg::Vst::IHostApplication*) + 4404
                                      13  blankplugin                   	       0x17d059fa0 juce::createComponentInstance(Steinberg::Vst::IHostApplication*) + 36
                                      14  blankplugin                   	       0x17d06de18 juce::JucePluginFactory::createInstance(char const*, char const*, void**) + 216
                                      15  Live                          	       0x106e308c4 0x104860000 + 39651524
                                      16  Live                          	       0x106c5261c 0x104860000 + 37692956
                                      17  Live                          	       0x106c52008 0x104860000 + 37691400
                                      18  Live                          	       0x106c51824 0x104860000 + 37689380
                                      19  Live                          	       0x105c147e4 0x104860000 + 20662244
                                      20  Live                          	       0x105c144ac 0x104860000 + 20661420
                                      21  Live                          	       0x105c233d8 0x104860000 + 20722648
                                      22  Live                          	       0x105bf8cf4 0x104860000 + 20548852
                                      23  Live                          	       0x106e38890 0x104860000 + 39684240
                                      24  Live                          	       0x106db8758 0x104860000 + 39159640
                                      25  Live                          	       0x106d50b38 0x104860000 + 38734648
                                      26  Live                          	       0x1062bb118 0x104860000 + 27635992
                                      27  Live                          	       0x1062e3de0 0x104860000 + 27803104
                                      28  Live                          	       0x106280154 0x104860000 + 27394388
                                      29  Live                          	       0x1062e1084 0x104860000 + 27791492
                                      30  Live                          	       0x1062e0d08 0x104860000 + 27790600
                                      31  Live                          	       0x1062e0ec0 0x104860000 + 27791040
                                      32  Live                          	       0x1070c5b7c 0x104860000 + 42359676
                                      33  Live                          	       0x1076ca798 0x104860000 + 48670616
                                      34  Live                          	       0x1076ca408 0x104860000 + 48669704
                                      35  Live                          	       0x1059e44ec 0x104860000 + 18367724
                                      36  Live                          	       0x10572f654 0x104860000 + 15529556
                                      37  Live                          	       0x10572f1c4 0x104860000 + 15528388
                                      38  Live                          	       0x10593dc9c 0x104860000 + 17685660
                                      39  Foundation                    	       0x1949d0fcc __NSFireTimer + 104
                                      40  CoreFoundation                	       0x1933e2e14 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 32
                                      41  CoreFoundation                	       0x1933e2ad4 __CFRunLoopDoTimer + 980
                                      42  CoreFoundation                	       0x1933e2610 __CFRunLoopDoTimers + 332
                                      43  CoreFoundation                	       0x1933c8a18 __CFRunLoopRun + 1848
                                      44  CoreFoundation                	       0x1933c7c58 CFRunLoopRunSpecific + 572
                                      45  HIToolbox                     	       0x19ee5c27c RunCurrentEventLoopInMode + 324
                                      46  HIToolbox                     	       0x19ee5f4e8 ReceiveNextEventCommon + 676
                                      47  HIToolbox                     	       0x19efea484 _BlockUntilNextEventMatchingListInModeWithFilter + 76
                                      48  AppKit                        	       0x1972efab4 _DPSNextEvent + 684
                                      49  AppKit                        	       0x197c8e5b0 -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 688
                                      50  AppKit                        	       0x1972e2c64 -[NSApplication run] + 480
                                      51  Live                          	       0x10593d068 0x104860000 + 17682536
                                      52  dyld                          	       0x192f3eb98 start + 6076
                                      
                                      

                                      Looks to be related to restoring a JUCE value tree??

                                      This does not happen when LTO is set to 'No' - I'm going to try 'Incremental' as well - I'm changing the VST3 and the SharedCode targets.

                                      BTW - this crash happens with or without calling .setEffect() in my Interface script. IE: Even if I comment this out:

                                      const var HardcodedEnvelopeModulator1 = Synth.getSlotFX("HardcodedEnvelopeModulator1");
                                      HardcodedEnvelopeModulator1.setEffect("ScriptEnvNetwork");
                                      

                                      I still get the crash.

                                      Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                                      Crafting sound at every level. From strings to signal paths, samples to systems.

                                      1 Reply Last reply Reply Quote 0
                                      • OrvillainO
                                        Orvillain
                                        last edited by

                                        ScriptEnvNetwork.xml

                                        This is my network file.

                                        Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                                        Crafting sound at every level. From strings to signal paths, samples to systems.

                                        1 Reply Last reply Reply Quote 0
                                        • OrvillainO
                                          Orvillain
                                          last edited by Orvillain

                                          Attaching xcode as a debugger - which to do I had to use this script:https://gist.github.com/talaviram/1f21e141a137744c89e81b58f73e23c3

                                          So yes, it is definitely crashing in setEffect. It looks like
                                          d7dfbd52-902c-4b04-a5c3-3b45a3558751-image.png

                                          ->  0x3419347c4 <+2820>: ldar   w8, [x0]
                                          MainThread (1): EXC_BAD_ACCESS (code=1, address=0xfffffffffffffff0)
                                          

                                          So I would suggest that link-time optimization is corrupting a pointer, and garbage is being fed into setEffect() but I am honestly reaching the limits of my debugging skills here now.

                                          Closest I can get to is:
                                          HISE/hi_core/hi_modules/hardcoded/HardcodedModuleBase.cpp

                                          Line 427:
                                          bool HardcodedSwappableEffect::setEffect(const String& factoryId, bool /unused/)

                                          The crash happens somewhere in this function.

                                          @Christoph-Hart Is any of this useful??

                                          Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                                          Crafting sound at every level. From strings to signal paths, samples to systems.

                                          1 Reply Last reply Reply Quote 0
                                          • OrvillainO
                                            Orvillain
                                            last edited by

                                            I believe it is this part blowing up:

                                            HISE/hi_core/hi_modules/hardcoded/HardcodedModuleBase.cpp:506
                                            → asProcessor().parameterNames.removeRange(getParameterOffset(), INT_MAX);
                                            

                                            This is what I got when I did a trace using a release build with symbols, with xcode attached to Ableton Live.

                                            (lldb) image lookup --address $pc
                                                  Address: blankplugin[0x000000000030167c] (blankplugin.__TEXT.__text + 3146236)
                                                  Summary: blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2680 [inlined] int std::__1::__cxx_atomic_load[abi:ne190102]<int>(std::__1::__cxx_atomic_base_impl<int> const*, std::__1::memory_order) at cxx_atomic_impl.h:317:10
                                                           blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2680 [inlined] std::__1::__atomic_base<int, false>::load[abi:ne190102](std::__1::memory_order) const at atomic_base.h:59:12
                                                           blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2680 [inlined] juce::Atomic<int>::get() const at juce_Atomic.h:64:60
                                                           blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2680 [inlined] juce::StringHolder::isEmptyString(juce::StringHolder*) at juce_String.cpp:219:33
                                                           blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2680 [inlined] juce::StringHolder::release(juce::StringHolder*) at juce_String.cpp:162:15
                                                           blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2680 [inlined] juce::StringHolder::release(juce::CharPointer_UTF8) + 4 at juce_String.cpp:169:9
                                                           blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2676 [inlined] juce::String::~String() + 4 at juce_String.cpp:247:5
                                                           blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2672 [inlined] juce::String::~String() at juce_String.cpp:246:1
                                                           blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2672 [inlined] juce::Identifier::~Identifier() at juce_Identifier.cpp:27:37
                                                           blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2672 [inlined] juce::Identifier::~Identifier() at juce_Identifier.cpp:27:36
                                                           blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2672 [inlined] std::__1::enable_if<!IsTriviallyCopyable<juce::Identifier>::value, void>::type juce::ArrayBase<juce::Identifier, juce::DummyCriticalSection>::removeElementsInternal<juce::Identifier>(int, int) + 60 at juce_ArrayBase.h:508:31
                                                           blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2612 [inlined] juce::ArrayBase<juce::Identifier, juce::DummyCriticalSection>::removeElements(int, int) at juce_ArrayBase.h:363:13
                                                           blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2612 [inlined] juce::Array<juce::Identifier, juce::DummyCriticalSection, 0>::removeRange(int, int) at juce_Array.h:926:20
                                                           blankplugin`hise::HardcodedSwappableEffect::setEffect(juce::String const&, bool) + 2612 at HardcodedModuleBase.cpp:506:33
                                            
                                            (lldb) frame select 13
                                            expr -- (int)getParameterOffset()
                                            expr -- (int)asProcessor().parameterNames.size()
                                            frame #13: 0x000000017d679638 blankplugin`hise::HardcodedSwappableEffect::setEffect(this=0x000000011dcb8000, factoryId=<unavailable>, (null)=<unavailable>) at HardcodedModuleBase.cpp:506:33 [opt]
                                               503 			}
                                               504 			else
                                               505 			{
                                            -> 506 				asProcessor().parameterNames.removeRange(getParameterOffset(), INT_MAX);
                                                				                             ^
                                               507 			}
                                               508 	
                                               509 			auto illegalIds = getIllegalParameterIds();
                                            (int) $4 = 2
                                            error: Couldn't look up symbols:
                                              __ZN4hise24HardcodedSwappableEffect11asProcessorEv
                                            Hint: The expression tried to call a function that is not present in the target, perhaps because it was optimized out by the compiler.
                                            

                                            Is any of this useful?

                                            Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                                            Crafting sound at every level. From strings to signal paths, samples to systems.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            20

                                            Online

                                            1.9k

                                            Users

                                            12.3k

                                            Topics

                                            106.9k

                                            Posts