Debugging Logic AU

Hi, does anyone know if there are any ways to debug Silicon AUs in Logic without turning off SIP?

I thought this had been sorted at some point but can’t seem to find any info on it.

Cheers

I do it like this. In the constructor of the audio processor:

#if JUCE_DEBUG
    const juce::PluginHostType host;
    if (host.isLogic() || host.isAbletonLive() || host.isBitwigStudio()) {
        freopen("/tmp/stdout.txt", "a", stdout);
        freopen("/tmp/stderr.txt", "a", stderr);
    }
#endif

Then I use DBG() statements in various places to figure out what’s going on, while in a Terminal window I do tail -f /tmp/stderr.txt to track the output from DBG().

If the issue isn’t specific to Logic, I load the AU in REAPER and attach the debugger to REAPER.

Bitwig’s plug-in process (not the main process) also allows attaching a debugger but it won’t capture any debug output, which is why I still use the stdout and stderr redirects.

1 Like

hi, thanks - I meant is there a way to physically attach a debugger to the AUPluginHosting_Arrow process without disabling SIP.

Not that I know of.

1 Like

This really does suck balls. The Logic team should add some flags/options so they can still launch the AUs in-process or something for development otherwise they are gonna be getting second class support for their customers issues…

2 Likes

Honestly, attaching a debugger to the AUHostingService process on Silicon without disabling SIP is still a massive headache. Apple’s security hardened the hosting process specifically to prevent this. Most of us have just resigned to using a separate host like REAPER for the ‘heavy’ debugging and only switching to Logic with file logging once we’re hunting down Logic-specific quirks.

1 Like

Yes, snap, I do most of my work under Live, just using Logic to sort out any funnies there.