Soundtoys, Softube, Plugin Alliance debuging error

Hello,
I created some plugin that is analyser. And when I debug it in Logic Pro X or in JUCE plugin host example, everything works great until I launch any plugin from Soundtoys, Softube or Plugin Alliance. System just doesn’t allow me to launche those plugins when I am in debug mode. I wonder why.

I also tried new app, anunced on that forum: Pluginval

And found out that plugins from SoundToys just don’t pass tests. There are some info in log console, but I don’t understand it at all. But what is more strange my plugins pass all tests. It’s strange because I am still beginner so I doubt I am better programmer than people from SoundToys :slight_smile:

Does anyone know what’s going on? Forgot to mention that with other plugins I don’t get that issue. For example UAD, Fabfilter or Waves, work with no problem in debug mode

It’s a fairly common (and irritating) technique that plugins use to terminate if a debugger is attached. It’s to do with protection and cracking but I’m not sure how effective it is.

For the plugins that don’t validate with pluginval, can you post the logs here? It could be worth pointing the devs at them. That was the whole point of creating pluginval :wink:

It’s not necessarily about being a better programmer than SoundToys, just that there plugins are probably more complex. pluginval tried to stress test and find all the edge cases in plugins so developers can automate some fairly rigorous testing.

3 Likes

Or if pluginval was running in debug mode, maybe it was failing intentionally for the same reason…

Or if pluginval was running in debug mode, maybe it was failing intentionally for the same reason…

No, it was released version of Pluginval, and running independent of any debuger.

So what did the pluginval log say? It should at least tell you what test crashed…

OK, sorry for that. But now I’ve just tried again, and now all tests are passed successful. But even though there is still some warning window error:

And when it appears the testing is paused. And that warning appears always two times during one test. When you click OK it starts running further.

What plugin is being tested when this happens? And what test is being run?

At a guess I’d say this is an plugin-internal UI error message. It could possibly be related to the quick show/hide nature of the plugin test. You’d have to ask the plugin developers for specifics though.

One final thing to check, what strictness level are testing at? (5 is a good starting point for host compatibility).

What plugin is being tested when this happens?

Little Microshift and Little Alterboy.

And what test is being run?

Actually I don’t know. I think it was some default tests, because I haven’t changed anything, just clicked “Test selected”

For Little AlterBoy first warning happens when on console is: “Starting test: pluginval / Editor…”
And second just moment later when there is: “Time taken to open editor (cold): 2 secs”

And now (in opposit what I said earlier that there are no problems anymore) there are some problems. Log from console looks like that (it’s still for Little Alterboy):

pluginval v0.1.4 - JUCE v5.3.2
Started validating: AudioUnit-Little AlterBoy-56c28992-7e60403f
Random seed: 0x2a42795
Validation started: 4 Oct 2018 1:45:01am

Testing plugin: AudioUnit-Little AlterBoy-56c28992-7e60403f

Starting test: pluginval / Open plugin (cold)…

Time taken to open plugin (cold): 463 ms
All tests completed successfully

Starting test: pluginval / Open plugin (warm)…

Time taken to open plugin (warm): 0
All tests completed successfully

Starting test: pluginval / Plugin info…

Plugin name: Little AlterBoy
Alternative names: Little AlterBoy
SupportsDoublePrecision: no
Reported latency: 0
Reported taillength: 0

Time taken to run test: 1 ms
All tests completed successfully

Starting test: pluginval / Editor…

Time taken to open editor (cold): 1 sec
Time taken to open editor (warm): 713 ms

Time taken to run test: 2 secs
All tests completed successfully

Starting test: pluginval / Audio processing…
Testing with sample rate [44100] and block size [64]
Testing with sample rate [44100] and block size [128]
Testing with sample rate [44100] and block size [256]
Testing with sample rate [44100] and block size [512]
Testing with sample rate [44100] and block size [1024]
Testing with sample rate [48000] and block size [64]
Testing with sample rate [48000] and block size [128]
Testing with sample rate [48000] and block size [256]
Testing with sample rate [48000] and block size [512]

*** FAILED: VALIDATION CRASHED

0 pluginval 0x00000001084fec60 _ZN4juce11SystemStats17getStackBacktraceEv + 64
1 pluginval 0x0000000108453794 _ZN12_GLOBAL__N_119getCrashLogContentsEv + 52
2 pluginval 0x00000001084fed74 _ZN4juceL11handleCrashEi + 20
3 libsystem_platform.dylib 0x00007fff714caf5a _sigtramp + 26
4 ??? 0x0000000000000000 0x0 + 0
5 LittleAlterBoy 0x000000010cc67fc2 LittleAlterBoyAUFactory + 409794
6 CoreFoundation 0x00007fff492d46b4 CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION + 20
7 CoreFoundation 0x00007fff492d4334 __CFRunLoopDoTimer + 1108
8 CoreFoundation 0x00007fff492d3e2a __CFRunLoopDoTimers + 346
9 CoreFoundation 0x00007fff492cb5cb __CFRunLoopRun + 2427
10 CoreFoundation 0x00007fff492ca9b7 CFRunLoopRunSpecific + 487
11 HIToolbox 0x00007fff485aad96 RunCurrentEventLoopInMode + 286
12 HIToolbox 0x00007fff485aab06 ReceiveNextEventCommon + 613
13 HIToolbox 0x00007fff485aa884 _BlockUntilNextEventMatchingListInModeWithFilter + 64
14 AppKit 0x00007fff4685ba73 _DPSNextEvent + 2085
15 AppKit 0x00007fff46ff1e34 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 3044
16 AppKit 0x00007fff46850885 -[NSApplication run] + 764
17 pluginval 0x000000010845bd5b main + 347
18 libdyld.dylib 0x00007fff711bc015 start + 1
19 ??? 0x0000000000000002 0x0 + 2

Binary Images:
0x108450000 pluginval
0x7fff714c9000 libsystem_platform.dylib
0x10c994000 LittleAlterBoy
0x7fff49249000 CoreFoundation
0x7fff4857b000 HIToolbox
0x7fff4681a000 AppKit
0x7fff711bb000 libdyld.dylib

Well to me it looks like it’s LittleAlterBoy crashing in this function of their own code whilst running the Audio Processing test with Testing with sample rate [48000] and block size [512].

I’d have to look at all the threads stack traces to be sure but it looks like a bug in their code to me. Seems like a timer callback is calling in to their LittleAlterBoyAUFactory which is calling a nullptr (line 4).

Amen to that! One plugin from Air Music Tech just straight up crashes the host when debugger is running :angry: I suppose they have the luxury of “developing only” on their machines and not also writing music.