diff --git a/Source/NSConnection.m b/Source/NSConnection.m index f996a25e0..4f3a62db3 100644 --- a/Source/NSConnection.m +++ b/Source/NSConnection.m @@ -1975,8 +1975,8 @@ static void retEncoder (DOContext *ctxt) [self _sendOutRmc: ctxt.encoder type: METHOD_REQUEST]; ctxt.encoder = nil; - NSDebugMLLog(@"NSConnection", @"Sent message (%s) to 0x%x", - GSNameFromSelector(sel), (uintptr_t)self); + NSDebugMLLog(@"NSConnection", @"Sent message (%s) RMX %d to 0x%x", + GSNameFromSelector(sel), ctxt.seq, (uintptr_t)self); if (needsResponse == NO) { @@ -2100,7 +2100,8 @@ static void retEncoder (DOContext *ctxt) } [self _sendOutRmc: op type: METHOD_REQUEST]; - NSDebugMLLog(@"NSConnection", @"Sent message to 0x%x", (uintptr_t)self); + NSDebugMLLog(@"NSConnection", @"Sent message %s RMC %d to 0x%x", + GSNameFromSelector([inv selector]), ctxt.seq, (uintptr_t)self); if (needsResponse == NO) { @@ -2569,9 +2570,10 @@ static void callEncoder (DOContext *ctxt) ctxt.type = forward_type; if (debug_connection > 1) - { - NSLog(@"Handling message from %@", (uintptr_t)self); - } + NSLog( + @"Handling message (sig %s) RMC %d from %@", + ctxt.type, ctxt.seq, (uintptr_t)self); + _reqInCount++; /* Handling an incoming request. */ #if defined(USE_LIBFFI) diff --git a/Source/callframe.m b/Source/callframe.m index a78d15b0e..f07d8727b 100644 --- a/Source/callframe.m +++ b/Source/callframe.m @@ -315,7 +315,12 @@ callframe_do_call (DOContext *ctxt, /* Make sure we successfully got the method type, and that its types match the ENCODED_TYPES. */ NSCParameterAssert (type); - NSCParameterAssert (GSSelectorTypesMatch(encoded_types, type)); + if (GSSelectorTypesMatch(encoded_types, type) == NO) + { + [NSException raise: NSInvalidArgumentException + format: @"callframe_do_call types (%s / %s) missmatch for %s", + encoded_types, type, GSNameFromSelector(selector)]; + } /* Build the cif frame */ sig = [NSMethodSignature signatureWithObjCTypes: type]; diff --git a/Source/cifframe.m b/Source/cifframe.m index 78dd09461..11766b304 100644 --- a/Source/cifframe.m +++ b/Source/cifframe.m @@ -782,7 +782,12 @@ cifframe_do_call (DOContext *ctxt, /* Make sure we successfully got the method type, and that its types match the ENCODED_TYPES. */ NSCParameterAssert (type); - NSCParameterAssert (GSSelectorTypesMatch(encoded_types, type)); + if (GSSelectorTypesMatch(encoded_types, type) == NO) + { + [NSException raise: NSInvalidArgumentException + format: @"cifframe_do_call types (%s / %s) missmatch for %s", + encoded_types, type, GSNameFromSelector(selector)]; + } /* Build the cif frame */ sig = [NSMethodSignature signatureWithObjCTypes: type]; diff --git a/Tools/gdnc.m b/Tools/gdnc.m index d8da9bc0a..7e4accfc3 100644 --- a/Tools/gdnc.m +++ b/Tools/gdnc.m @@ -605,6 +605,7 @@ ihandler(int sig) name: NSConnectionDidDieNotification object: newConn]; [newConn setDelegate: self]; + [newConn _enableKeepalive]; /* * Create a new map table entry for this connection with a value that * is a table (normally with a single entry) containing registered