Debugger crashes drive me nuts

I remember Joe saying that stepping “too fast” through the debugger results in crashes of the debugger. But - seriously - how fast is that? Click once every 10 seconds? This drives me nuts. I need to work through a lengthy algorithm. After clicking half a dozen up to a dozen times the debugger crashes EVERY TIME.

Is this so hard to reproduce for Xojo? How do you debug your own Xojo code?

Am I the only one to get those crashes? I’m using a Wacom tablet so I can click a bit faster than mouse users.

Mac OS 10.10., Xojo 2015r2.

Intermittent crashes are about the worst things to isolate. It may also have something to do with your project or even your particular machine. If you can reproduce it, make sure you include a project in which you can and give very specific details about your hardware and software configuration.

For instance… You’re running 10.10, but Yosemite will run on machines manufactured all the way from 2011 through summer 2015.

Be sure to be aware of computed properties. If an error occurs in a getter, the app will crash when the debugger tries to display the result of the getter function. (I’ve been bitten by this more than a few times)

Could we have a setting to exclude computed properties from the “Values” pane?

Another source I’ve seen is the debug will crash if you are viewing the contents of a picture and step.

FWIW - I’ve find the debugger crashes a lot if you have an open Recordset to a remote database while you’re stepping.

This one is a known issue.

  • No opening of recordsets.
  • No viewing of anything special in the debugger. Just stepping through the code for some classes.
  • At least 10.9 and perhaps 10.8, too.
  • Can occur in any place of the code. I just need to have a complex piece of code and click a few times. Then I see the pizza of death and boom the debugger goes.
  • The project is about 450 classes.

I will try on the weekend with another computer. And also with a partial project.

The crash log is always like this:

Thread 3 Crashed:
0 com.xojo.XojoFramework 0x01c315fe TCPSocket_SetSSLSettings + 35415
1 com.xojo.XojoFramework 0x01c38a6c StringDBCSLeft + 42
2 com.xojo.XojoFramework 0x01c9f674 BreakOnExceptions + 6432
3 com.xojo.XojoFramework 0x01c9dd9a BreakOnExceptions + 70
4 com.xojo.XojoFramework 0x01c9c376 Crypto_GenerateRandomBytes + 31935
5 com.xojo.XojoFramework 0x01d5771b AddMainLoopHook + 1609
6 com.xojo.XojoFramework 0x01d577f3 AddMainLoopHook + 1825
7 com.xojo.XojoFramework 0x01c2d995 TCPSocket_SetSSLSettings + 19950
8 com.xojo.XojoFramework 0x01c2a87a TCPSocket_SetSSLSettings + 7379
9 com.xojo.XojoFramework 0x01d575c8 AddMainLoopHook + 1270
10 com.xojo.XojoFramework 0x01ca38d3 DebuggerHook + 651
11 com.xojo.XojoFramework 0x01ca3786 DebuggerHook + 318
12 com.mothsoftware.mailarchiverx 0x00c8151f MailParser.parse%i4%os + 6491
13 com.mothsoftware.mailarchiverx 0x00c15d68 ArchiveThread.Event_Run%%o + 7563
14 com.xojo.XojoFramework 0x01d65bc8 threadRun + 979
15 libsystem_pthread.dylib 0x97bf6c25 _pthread_body + 138
16 libsystem_pthread.dylib 0x97bf6b9b _pthread_start + 162
17 libsystem_pthread.dylib 0x97bf3e32 thread_start + 34

Thread 3 Crashed:
0 com.xojo.XojoFramework 0x01ca0a65 BreakOnExceptions + 7441
1 com.xojo.XojoFramework 0x01c9ed9a BreakOnExceptions + 70
2 com.xojo.XojoFramework 0x01c9d376 Crypto_GenerateRandomBytes + 31935
3 com.xojo.XojoFramework 0x01d5871b AddMainLoopHook + 1609
4 com.xojo.XojoFramework 0x01d587f3 AddMainLoopHook + 1825
5 com.xojo.XojoFramework 0x01c2e995 TCPSocket_SetSSLSettings + 19950
6 com.xojo.XojoFramework 0x01c2b87a TCPSocket_SetSSLSettings + 7379
7 com.xojo.XojoFramework 0x01d585c8 AddMainLoopHook + 1270
8 com.xojo.XojoFramework 0x01ca48d3 DebuggerHook + 651
9 com.xojo.XojoFramework 0x01ca4786 DebuggerHook + 318
10 com.mothsoftware.mailarchiverx 0x009ca7c9 WriteMailboxToDatabase.Constructor%%ososos + 696
11 com.mothsoftware.mailarchiverx 0x00c8da72 MailParser.WriteMailbox%i4%o + 1033
12 com.mothsoftware.mailarchiverx 0x00c81b17 MailParser.parse%i4%os + 6071
13 com.mothsoftware.mailarchiverx 0x00c16504 ArchiveThread.Event_Run%%o + 7563
14 com.xojo.XojoFramework 0x01d66bc8 threadRun + 979
15 libsystem_pthread.dylib 0x97bf6c25 _pthread_body + 138
16 libsystem_pthread.dylib 0x97bf6b9b _pthread_start + 162
17 libsystem_pthread.dylib 0x97bf3e32 thread_start + 34

Thread 10 Crashed:
0 com.xojo.XojoFramework 0x01ca0a65 BreakOnExceptions + 7441
1 com.xojo.XojoFramework 0x01c9ed9a BreakOnExceptions + 70
2 com.xojo.XojoFramework 0x01c9d376 Crypto_GenerateRandomBytes + 31935
3 com.xojo.XojoFramework 0x01d5871b AddMainLoopHook + 1609
4 com.xojo.XojoFramework 0x01d587f3 AddMainLoopHook + 1825
5 com.xojo.XojoFramework 0x01c2e995 TCPSocket_SetSSLSettings + 19950
6 com.xojo.XojoFramework 0x01c2b87a TCPSocket_SetSSLSettings + 7379
7 com.xojo.XojoFramework 0x01d585c8 AddMainLoopHook + 1270
8 com.xojo.XojoFramework 0x01ca48d3 DebuggerHook + 651
9 com.xojo.XojoFramework 0x01ca4786 DebuggerHook + 318
10 com.mothsoftware.mailarchiverx 0x009ca6d7 WriteMailboxToDatabase.Constructor%%ososos + 454
11 com.mothsoftware.mailarchiverx 0x00c8da72 MailParser.WriteMailbox%i4%o + 1033
12 com.mothsoftware.mailarchiverx 0x00c81b17 MailParser.parse%i4%os + 6071
13 com.mothsoftware.mailarchiverx 0x00c16504 ArchiveThread.Event_Run%%o + 7563
14 com.xojo.XojoFramework 0x01d66bc8 threadRun + 979
15 libsystem_pthread.dylib 0x97bf6c25 _pthread_body + 138
16 libsystem_pthread.dylib 0x97bf6b9b _pthread_start + 162
17 libsystem_pthread.dylib 0x97bf3e32 thread_start + 34

Partial crash logs aren’t very useful.

Somebody is hungry… it is called the wheel of death.

Pizza of Death…
I LIKE THAT…

No, it should be “Tarte tatin of death” since we’re speaking of Apple computers.

Especially when the symbols are obfuscated. :slight_smile: Ahem.

I kind of doubt that the debugger is using SSL, but the stack trace claims the crash is in

0 com.xojo.XojoFramework 0x01c315fe TCPSocket_SetSSLSettings + 35415

Thats us deliberately stripping symbols and the fact that the crash logger simply grabs the nearest unstripped symbol + offset to report things.
Note the huge offset thats listed (35415)

Makes it harder for hackers to poke at
Its one of many things we have to do to combat pirates and general hacking at the framework
If its crashing in the framework there’s really nothing anyone but us can do with that information anyway

I vote for more visible symbols in the framework for our apps.
You can use the stripped one for the IDE if you like.

Wouldn’t that allow reverse engineering?

maybe. But we really like to have bugs fixed and the Xojo license checks should not be parts of the frameworks.
For other dev tools like Xcode or Visual Studio you can even get runtime in source code…

Greg said:

Which is exactly what I did 10 month ago. You already got a case that is 100% reproducible, it’s verified and everything.
<https://xojo.com/issue/33634>

@Max: yes, this looks like my bug. Sigh…

Probably not the answer you’re looking for but …
I find that if I save right before debugging it doesn’t crash as often, and if I find a spot that I can’t step through b/c it will crash the debugger I only step a couple lines then resume with a break on the next line. Costs an extra 15 seconds to get to the next line but that’s cheaper than than the crash.

Stripping symbols doesn’t stop us from fixing bugs in the frameworks in the least
Submit the bug report with the log & we can deal with it on all platforms