#include "intl.h"
#include "optabs.h"
-/* Darwin supports a feature called fix-and-continue, which is used
- for rapid turn around debugging. When code is compiled with the
- -mfix-and-continue flag, two changes are made to the generated code
- that allow the system to do things that it would normally not be
- able to do easily. These changes allow gdb to load in
- recompilation of a translation unit that has been changed into a
- running program and replace existing functions and methods of that
- translation unit with versions of those functions and methods
- from the newly compiled translation unit. The new functions access
- the existing static symbols from the old translation unit, if the
- symbol existed in the unit to be replaced, and from the new
- translation unit, otherwise.
+/* Fix and Continue.
+
+ NOTES:
+ 1) this facility requires suitable support from a modified version
+ of GDB, which is not provided on any system after MacOS 10.7/Darwin11.
+ 2) There is no support for this in any X86 version of the FSF compiler.
+
+ Fix and continue was used on some earlier MacOS systems for rapid turn
+ around debugging. When code is compiled with the -mfix-and-continue
+ flag, two changes are made to the generated code that allow the system
+ to do things that it would normally not be able to do easily. These
+ changes allow gdb to load in recompilation of a translation unit that
+ has been changed into a running program and replace existing functions
+ and methods of that translation unit with versions of those functions
+ and methods from the newly compiled translation unit. The new functions
+ access the existing static symbols from the old translation unit, if the
+ symbol existed in the unit to be replaced, and from the new translation
+ unit, otherwise.
The changes are to insert 5 nops at the beginning of all functions
and to use indirection to get at static symbols. The 5 nops