aboutsummaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorMax <post@wickenrode.com>2015-08-06 23:29:50 +0200
committerMax <post@wickenrode.com>2015-08-06 23:29:50 +0200
commit5befad85ccd6d22900942ea73f4018d71038f516 (patch)
treee4140be1b430cd1c6e94db9db94f2b424e28b681 /Source
parentde84dc3f4beaa370d1a8bfe02df41cfe450f59b2 (diff)
downloadsequelpro-5befad85ccd6d22900942ea73f4018d71038f516.tar.gz
sequelpro-5befad85ccd6d22900942ea73f4018d71038f516.tar.bz2
sequelpro-5befad85ccd6d22900942ea73f4018d71038f516.zip
* Expand the debugging code from prev. commit
* Also Sequel Pro will now crash on the "Attempted to connect a connection that is not disconnected" issue. That is sadly necessary to get a stack trace of ALL threads as for exceptions Feedback Reporter only gives us the current thread.
Diffstat (limited to 'Source')
-rw-r--r--Source/SPObjectAdditions.m21
1 files changed, 19 insertions, 2 deletions
diff --git a/Source/SPObjectAdditions.m b/Source/SPObjectAdditions.m
index 4f2eef1e..c211809e 100644
--- a/Source/SPObjectAdditions.m
+++ b/Source/SPObjectAdditions.m
@@ -48,13 +48,24 @@
[msg appendFormat:@"%s tripped!\n\n",__PRETTY_FUNCTION__];
+retryDescribe:
[msg appendFormat:@"passed object (class <%@>): %@\n\n",[obj className],obj];
+ if ([obj isKindOfClass:[NSNotification class]]) {
+ NSNotification *notif = (NSNotification *)obj;
+ [msg appendFormat:@"unwrapping NSNotification named '%@' (userInfo=%@)\n\n",
+ [notif name],
+ [notif userInfo]];
+ obj = [notif object];
+ goto retryDescribe;
+ }
+
if([obj isKindOfClass:[NSView class]]) {
- [msg appendString:@"View hierarchy:\n"];
+ [msg appendString:@"View hierarchy (parents):\n"];
id parent = obj;
while(parent) {
- [msg appendFormat:@"- (class <%@>): %@, id=%@, tag=%ld\n",
+ [msg appendFormat:@"- %p (class <%@>): %@, id=%@, tag=%ld\n",
+ obj,
[obj className],
obj,
[(NSView *)obj identifier],
@@ -62,6 +73,12 @@
parent = [parent superview];
}
[msg appendString:@"\n"];
+
+ [msg appendString:@"View hierarchy (own children): \n"];
+ for (id child in [(NSView *)obj subviews]) {
+ [msg appendFormat:@"- %p\n",child];
+ }
+ [msg appendString:@"\n"];
}
if([obj respondsToSelector:@selector(window)]) {