Wolfgang Sourdeau schrieb: > > Actually, it *is* [NSException raise]. When this breakpoint is reached, > you can ask gdb where it was invoked by requesting a backtrace with > "bt".
Well the question was qualified with "uncaught exceptions" and a simple b -[NSException raise] would catch all exceptions. But if you read the gdb docs: (gdb) help breakpoints Making program stop at certain points. List of commands: awatch -- Set a watchpoint for an expression break -- Set breakpoint at specified line or function catch -- Set catchpoints to catch events clear -- Clear breakpoint at specified line or function commands -- Set commands to be executed when a breakpoint is hit condition -- Specify breakpoint number N to break only if COND is true delete -- Delete some breakpoints or auto-display expressions disable -- Disable some breakpoints enable -- Enable some breakpoints hbreak -- Set a hardware assisted breakpoint ignore -- Set ignore-count of breakpoint number N to COUNT rbreak -- Set a breakpoint for all functions matching REGEXP rwatch -- Set a read watchpoint for an expression tbreak -- Set a temporary breakpoint tcatch -- Set temporary catchpoints to catch events thbreak -- Set a temporary hardware assisted breakpoint watch -- Set a watchpoint for an expression Type "help" followed by command name for full documentation. Command name abbreviations are allowed if unambiguous. you should notice the "condition" command. Then you can look at GNUstep's source on how -raise obtains the current exception handler and the you can some thing like: (gdb) start Breakpoint 1 at 0x8048915: file QuickTest.m, line 8. ... (gdb) b -[NSException raise] Breakpoint 2 at 0x405cc2e3: file NSException.m, line 147. (gdb) condition 2 GSCurrentThread()->_exception_handler==0 (gdb) c Which should break at -raise for uncaught exceptions only. Cheers, David _______________________________________________ Discuss-gnustep mailing list [email protected] http://lists.gnu.org/mailman/listinfo/discuss-gnustep
