Thanks for the reply. > Since you've got the code up and running in a debugger, you can set > breakpoints on abort, exit, and the last line of main, then when > it hits one > you can see for yourself from which point your code is exiting and the > reason why it's returning a non-zero exit code.
I was trying to step through the code in gdb and pin this down so setting breaks on abort and exit sounds useful. However, both b abort and b exit give me ... (gdb) b abort Breakpoint 1 at 0x401552: file otlv4.h, line 3608. (gdb) b exit Note: breakpoint 1 also set at pc 0x401552. Breakpoint 2 at 0x401552: file otlv4.h, line 3608. But line 3608 of otlv4.h looks like nothing to do with abort or exit add_var(i,var,in_out,apl_tab_size); However, further digging reveals that my program gets to the throw command here ... catch ( RProgReturnException e ) { throw; } and if I step on throw the debugger thinks I'm at ... gues which line?! yes, line 3608 of otlv4.h ... (gdb) s 0x1003b115 in __cxa_rethrow () at otlv4.h:3608 3608 add_var(i,var,in_out,apl_tab_size); and if I step again I get ... Program exited with code 0303000. So I'm wondering firstly why gdb seems to have a mismatch between address and source line number and why that throw didn't get caught in my catch in main. Thanks in anticipation and thanks for your input so far, Dan -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/