Debugging AU in Logic changes?

Hi, since updating to latest Logic (10.7.8) my normal method for debuggins AU in Logic no longer works.

I normally:

  1. Switch to Rosetta mode so that AU is loaded inline rather than out of process
  2. Launch Logic through debug in XCode

This has always work fine in the past but gone to debug something today and it’s not being picked up the debugger.

ANyone else come across similar?
Thx

I had to turn off SIP for that to work. I don’t have a link handy for the instructions on how to do that, sorry. It still took almost a minute the very first time I tried before it allowed debugging.

1 Like

hmmmm… maybe this is it. maybe I disabled that on the other mac and not on this one. seems extreme to have to do this tho. ugh, will give it a go next week., though i’m pretty sure I’ve debugged AUs on this mac.

thx

Did you use the Rosetta Destination in Xcode?
You have to make it visible in Xcode 14/15 first, they are hidden by default (I just stumbled over this, too)

Product > Destination > Destination Architectures > Show Rosetta Destinations > Show Both

BTW

Is disabling SIP still the only possibility to debugging arm-builds in Logic?
Will there ever be a possibility without disabling SIP? @mfritze

To the best of my knowledge, yes. This is supported by official Apple documentation.

Attaching to system processes requires disabling system integrity protection in macOS before debugging.

1 Like

Please file bug reports against macOS (please not against Logic or GarageBand, there is nothing we can do about it) in regards of Audio Unit debugging. The more the better.

4 Likes

I thought I’d add some info in case it helps.

It can be easier to debug AUv3 on Intel, you have a spare Intel Mac. There is no need to deal with SIP for starters!

How to debug your AUv3 on Intel Mac (verified just now with macOS 15.3.1)

Switch to your AUv3 target/project, set one or more breakpoints in your AUv3
Project schema:

  • set Executable to Logic Pro (for example)
  • set Wait for the Executable to be launched
    To debug:
  • Run Logic Pro (or whatever you’re testing under)
  • review that your breakpoints are still active (some might be de-activated)
  • Open a Logic project that uses your AUv3

All nice and easy!

Best wishes, Pete

I also wanted to note that when debugging an AUv3, the call to:

File::getSpecialLocation(...hostApplicationPath...)

won’t return the path of the host application; rather, it returns the path of the AUv3.

This means that code to check the plug-in host will never work as expected, e.g.:

    juce::PluginHostType plugin_host;
    if (plugin_host.isLogic() == true) {
      // This will never be hit for AUv3!
    }
1 Like