Things to do for Mach
---------------------
-This section is up to date as of 28 Oct 1993.
-
-All my attempted compilation was on douglas.gnu.ai.mit.edu.
+Note: If mach_port_t is undefined, you have mach2 headers instead of
+mach3 headers. Get the mach3 headers or typedef it to unsigned int.
0. Get it to compile and run again, especially for non-threaded
programs (some of the following are sub-tasks for this).
merged--can these go in target_resume()?
4. BFD problem--"Undefined symbol _aout_32_swap_exec_header_in".
+Believed to be fixed (fix not yet tested with GDB).
5. The linker complains about mfree and so on being multiply defined.
-As one version is in a library, this seems like a linker bug. But I
-think changing MMALLOC_LIB to MMALLOC in the .mh files is all that is
-necessary to fix it.
+Believed to be fixed (fix not yet tested).
6. i386_mach3_float_info and register_addr were undefined in the
link. I haven't investigated, but probably just another easy
-configuration thing or something.
-
-7. I couldn't find mach_port_t in any of the headers in
-/usr/include/*.h or /usr/include/mach/*.h (I think those are the two
-places I tried). Typedeffing it to void * in nm-m3.h seemed to work,
-but of course that's hardly an elegant solution.
+configuration thing or something. (possibly already fixed).
-8. Implement the features which CMU gdb has which the main GDB does
+7. Implement the features which CMU gdb has which the main GDB does
not. This could be done by getting paperwork from CMU and merging
their changes, or by reimplementing them.
Speed up watchpoints by using debug registers, page table diddling (on
SunOS4, can call mprotect() in the inferior; on other machines can do
-something simpler), etc.
+something simpler), etc. Note that you need to detect a
+"fast-watchable expression" (i.e., if watching "*p", then either a
+change to the address pointed to by p or a change to p itself which
+causes the value of *p to change, is a watchpoint hit). It is
+possible we will also someday want extensions which are
+lower-level--"read from these addresses", "write to these addresses",
+etc., but there is no consensus about just how important these are and
+exactly what form they would take. There is a consensus that the
+existing watchpoint semantics should use hardware assists when
+available.
Update gdbint.texinfo to include doc on the directory structure and
the various tricks of building gdb.
"ena d" is ambiguous, why? "ena delete" seems to think it is a command!
-Line numbers are off in some spots. In proceed() at 1st "oneproc = 1",
-it seems to run that statement, but it doesn't actually.
-
Perhaps move the tdep, xdep, and nat files, into the config
subdirectories. If not, at least straighten out their names so that
they all start with the machine name.
does). For ebmon, use ^Ak.
Possible feature: A version of the "disassemble" command which shows
-both source and assembly code.
+both source and assembly code ("set symbol-filename on" is a partial
+solution).