Symbolic breakpoint on [UIViewController initWithCoder:] causes debugger to freeze - ios

I am trying to set a symbolic breakpoint to detect when my view controllers are being unarchived. The breakpoint breaks properly on [UIViewController initWithCoder:] once the app is launched on my test device.
However, when I try to move past the breakpoint by pressing 'Continue' the debugger freezes: it stops responding to commands from Xcode (eg. 'pause' and 'stop') and the app itself hangs as well. I end up having to force quit and restart Xcode in order to relaunch the app.
The 'Step Into' functionality works as expected, but leads me directly into machine code - I'd like to be able to use the 'Continue' function to proceed with normal program execution. The app and debugger function normally if I disable this particular symbolic breakpoint.
Any insight into this problem would be helpful. I'm running Xcode 5.0.2 and using the LLDB debugger.
EDIT: I tried the solution described here, but had no luck.

I ended up setting the breakpoint to log a message to the console, and selected the 'automatically continue after evaluating' option.

This sounds like a bug. Can you take a sample of Xcode while it is frozen like this and file a bug with bugreporter.apple.com and include the sample? Thanks.

Related

How do I debug a Thread 1: signabrt, debug console doesn't show any logs

My ios project builds and installs on the device but has a runtime crash after launcher screen finishes.
I'm looking in the debugger console but I don't see any logs to help me diagnose what is going on. My project was working correctly before I upgraded react-native-firebase from v3 to v4 https://github.com/invertase/react-native-firebase/releases. Stepping into or over the code doesn't show me any errors in the code itself.
I'm hesitant to log an issue with the react-native-firebase project before I understand what the error could be - and whether it was a simple error somewhere.
However, the error seems pretty cryptic and I don't have any clues on what's actually causing the runtime crash. Is there a way that I can read more verbose logs that might give more info on the crash?
add an Exception breakpoint: by going to the breakpoint tab (command + 8) and the click the add "+" button on the bottom left corner and click on Exception breakpoint - all exceptions.
That will pause the code exactly were the exception is being raced therefore you will be able to see the line of code that it is causing the crash.

Swift keyboard extension SIGQUIT, Execution was interrupted, reason: EXC_BREAKPOINT

When I try to build and run my keyboard extension, it sometimes just crashes with a Thread 1: signal SIGQUIT.
I am not able to reproduce the error. Sometimes I can build and run my app but most of the time the keyboard just quits. This happens on an actual device. In the simulator it does not open my keyboard and says Waiting to Attach.
The console does not output any errors at first. However, if I change the dropdown to View UI Hierachy in the Debug navigator I get the following description:
Details: No plist data for fetching view hierarchy: error evaluating expression “(id)[(Class)objc_getClass("DBGViewDebuggerSupport_iOS") fetchViewHierarchyWithOptions:(id)[(Class)objc_getClass("NSDictionary") dictionaryWithObjects:(id)[(id)[(id)[(Class)objc_getClass("NSArray") arrayWithObject:(id)[(Class)objc_getClass("NSNumber") numberWithBool:1]] arrayByAddingObject:(id)[(id)[(Class)objc_getClass("NSArray") arrayWithObject:#"_UIVisualEffectBackdropView"] arrayByAddingObject:#"_UIBackdropEffectView"]] arrayByAddingObject:(id)[(Class)objc_getClass("NSNumber") numberWithBool:0]] forKeys:(id)[(id)[(id)[(Class)objc_getClass("NSArray") arrayWithObject:#"DBGViewDebuggerUseLayersAsSnapshots"] arrayByAddingObject:#"DBGViewDebuggerEffectViewsToSnapshotAsImage"] arrayByAddingObject:#"DBGViewDebuggerAlwaysEncodeLayers"]]]”: error: Execution was interrupted, reason: EXC_BREAKPOINT (code=1, subcode=0x18daddc34).
The process has been returned to the state before expression evaluation.
Method: -[DBGAbstractViewDescriber handleFetchedViewInfo:fetchError:resultHandler:]
Please file a bug at http://bugreport.apple.com with this warning message and any useful information you can provide.
I also took a screenshot of the processes.
Am I doing something wrong and how could I prevent that my keyboard extension quits all the time when running it? Is it actually a bug as it says in the description?
DISCLAIMER
It seems like something in xCode 8.2.1 is broken and the debugger is not correctly attaching to the correct process or the hosting process is not properly loading the new code.
This is a not a permanent solution but a temporary workaround.
WORKAROUND
I have been able to work around this issue by following the steps below.
Kill any process that is using your keyboard (important!)
Launch the application using the debugger so the latest code is deployed to the device
Navigate to Settings > General > Keyboards > etc.
Remove your custom keyboard
Re-add your custom keyboard
Debug the application once again
The reason this works is because removing the keyboard kills the process that is hosting the extension allowing Xcode to attach to the new binary.
As I understand this is a bug in Xcode 8.2.1. because before update my custom keyboard was working very well.
this is a temporary solution.
Run your code like always!
Bring up your keyboard until the error (SIGQUIT) appear!
Goto xcode > debug > detach
Goto again Xcode > debug > Attach to Process: attach the keyboard (it should be first process)
now, your breakpoints will work. but there are no log output unfortunately! I hope it temporary solve your problem

Crash without warning xcode

I am developing the application for over 6 month.
After everithing was developed and tested, I put app aside for 2 weeks and now when I run it it start crashing without any warning:
Even if I hit Continue Execution over 20 times still nothing in log.
I have all exceptions break point and malloc_errer_break set.
App crash when I move from screen to screen (When I open 2 screen or when I close it).
Most of the time EXC_BAD_ACCESS happens when you use an object that no longer exists.
You could check for Zombies during run-time to see if you use any of your object which doesn't exist anymore.
Let me guess - you need to change a property to strong (from weak). Name of that problematic property you will find in the console after enabling check for zombies (press ⌘⇧< then check Enable Zombie Objects in Diagnostics/Memory Management)
This a very generic error, I suggest to review your code and try again and as Anc Ainu said the reason is of using an object thats no longer exists.
I recommend to set up Exception breakpoint to get place from
which your app crashes.
To make this breakpoint enabled go to breakpoint tab, then tap on plus button and choose 'Add Exception Breakpoint'.
2. And yes, enabling NSZombies also could help
you.

Xcode 5 not printing exception detail

I have a project built for iOS 7 and it worked fine so far, but after a Git merge, some settings or something became corrupted and exceptions are not outputted to console anymore. So the "Terminating app due to uncaught exception" error message is never displayed in console. I've tried the project on both the device and the simulator, same thing. I cannot find the reason why is this and how to fix it and I am humbly asking for your help.
The facts:
debugger is working and running,
debugger stops and highlights correct line,
all exceptions breakpoint is active,
NSLog commands are working,
po command in lldb is working.
What I have tried before asking for help?
Cleaning (including build folder) and rebuilding project,
Restarting Xcode,
Restarting OS X,
Reconnecting device,
Rebooting device.
What else can I do? Thank you for your help!
I ran into this issue when trying to debug an autolayout crash. Not sure if this applies to all cases, but here's my solution:
I did some hunting, and came across this link:
Investigating NSExceptions with LLDB
That led me to mess around with exception breakpoints to try to figure out what the issue was. In my case, I could always find the description on $eax, so I decided to add an action to the breakpoint, so I don't have to debug it each time. This caused it to always print $eax without a breakpoint, so it pretty much acts like I want it to (print the exception description, continue crashing).
Steps:
Solved the issue I was currently having, and I'm sure variations on this solution (po $ebx, po [NSThread callStackSymbols], etc) should get around most issues with missing exception descriptions.

App crashes without reason with xCode 4

Something weird is going on here.
My app crashes on this line of code:
int end = NSMaxRange(endRange);
but I don't get any error message, and everything is fine: endRange. The app just freezes in the iPhone and that's it.
1.
The weird thing is that the same code was working before, and I've reversed from repository to see what's wrong but it still doesn't work.
2.
Also xCode removes the breakpoint every time the app crashes. I add it again, I run the app, I step over, the app crashes and Xcode removes the breakpoint.
3.
I've cleaned the build, restarted xCode, restarted the iPhone, removed the app from the iPhone. Same issues.
4.
If I don't use breakpoints, the app doesn't crash, but the code right after that line is "skipped", but it was working before. At least the app doesn't freeze without breakpoint.
What the hell ?
I've had similar problems with the debugger in the past too. Try switching from LLDB back to GDB (From the Product / Edit Scheme menu). I've found LLDB to do exactly what you are describing with breakpoints.

Resources