| #include <stdio.h> | |
| #include <objc/Object.h> | |
| @interface BasicClass: Object | |
| { | |
| id object; | |
| } | |
| + newWithArg: arg; | |
| - doIt; | |
| - takeArg: arg; | |
| - printHi; | |
| - (int) printNumber: (int)number; | |
| - (const char *) myDescription; | |
| @end | |
| @interface BasicClass (Private) | |
| - hiddenMethod; | |
| @end | |
| @implementation BasicClass | |
| + newWithArg: arg | |
| { | |
| id obj = [self new]; | |
| [obj takeArg: arg]; | |
| return obj; | |
| } | |
| - doIt | |
| { | |
| return self; | |
| } | |
| - takeArg: arg | |
| { | |
| object = arg; | |
| [self hiddenMethod]; | |
| return self; | |
| } | |
| - printHi | |
| { | |
| printf("Hi\n"); | |
| return self; | |
| } | |
| - (int) printNumber: (int)number | |
| { | |
| printf("%d\n", number); | |
| return number+1; | |
| } | |
| - (const char *) myDescription | |
| { | |
| return "BasicClass gdb test object"; | |
| } | |
| @end | |
| @implementation BasicClass (Private) | |
| - hiddenMethod | |
| { | |
| return self; | |
| } | |
| @end | |
| int main (int argc, const char *argv[]) | |
| { | |
| id obj; | |
| obj = [BasicClass new]; | |
| [obj takeArg: obj]; | |
| return 0; | |
| } | |
| const char *_NSPrintForDebugger(id object) | |
| { | |
| /* This is not really what _NSPrintForDebugger should do, but it | |
| is a simple test if gdb can call this function */ | |
| if (object && [object respondsTo: @selector(myDescription)]) | |
| return [object myDescription]; | |
| return NULL; | |
| } |