aboutsummaryrefslogtreecommitdiff
path: root/gdb/proc-utils.h
diff options
context:
space:
mode:
authorMichael Snyder <msnyder@vmware.com>2000-05-05 20:56:10 +0000
committerMichael Snyder <msnyder@vmware.com>2000-05-05 20:56:10 +0000
commit103b3ef54f8d3711039fe1dfe18b109e5dac322b (patch)
tree40b86899df0c0c1a233c429184b53327fdd2b96c /gdb/proc-utils.h
parentb8d39351ea5eabfa364474f006b1556f40f0f636 (diff)
downloadgdb-103b3ef54f8d3711039fe1dfe18b109e5dac322b.zip
gdb-103b3ef54f8d3711039fe1dfe18b109e5dac322b.tar.gz
gdb-103b3ef54f8d3711039fe1dfe18b109e5dac322b.tar.bz2
2000-05-05 Michael Snyder <msnyder@seadog.cygnus.com>
* procfs.c: Cleanup of procfs tracing. Move defines and prototypes to proc-utils.h * proc-utils.h: Define tracing macros. Declare trace functions. * proc-api.c: Make procfs tracing a runtime option. (prepare_to_trace): New function, abstracted out of several places. Open a trace file if one is required. (ioctl_with_trace, write_with_trace, open_with_trace, close_with_trace, wait_with_trace, lseek_with_trace): Report errno if an error occurs in a system call. (write_with_trace): Make 2nd arg void *, to agree with write.
Diffstat (limited to 'gdb/proc-utils.h')
-rw-r--r--gdb/proc-utils.h48
1 files changed, 45 insertions, 3 deletions
diff --git a/gdb/proc-utils.h b/gdb/proc-utils.h
index cdab0c3..08b0cc7 100644
--- a/gdb/proc-utils.h
+++ b/gdb/proc-utils.h
@@ -18,12 +18,18 @@ along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+/*
+ * Pretty-print functions for /proc data
+ */
+
extern void
proc_prettyprint_why (unsigned long why, unsigned long what, int verbose);
-extern void proc_prettyprint_syscalls (sysset_t *sysset, int verbose);
+extern void
+proc_prettyprint_syscalls (sysset_t *sysset, int verbose);
-extern void proc_prettyprint_syscall (int num, int verbose);
+extern void
+proc_prettyprint_syscall (int num, int verbose);
extern void proc_prettyprint_flags (unsigned long flags, int verbose);
@@ -43,10 +49,46 @@ extern void
proc_prettyfprint_flags (FILE *file, unsigned long flags, int verbose);
extern void
-proc_prettyfprint_why (FILE *file, unsigned long why, unsigned long what, int verbose);
+proc_prettyfprint_why (FILE *file, unsigned long why,
+ unsigned long what, int verbose);
extern void
proc_prettyfprint_fault (FILE *file, int faultno, int verbose);
extern void
proc_prettyfprint_syscalls (FILE *file, sysset_t *sysset, int verbose);
+
+extern void
+proc_prettyfprint_status (long, int, int, int);
+
+/*
+ * Trace functions for /proc api.
+ */
+
+extern int write_with_trace (int, void *, size_t, char *, int);
+extern off_t lseek_with_trace (int, off_t, int, char *, int);
+extern int ioctl_with_trace (int, long, void *, char *, int);
+extern pid_t wait_with_trace (int *, char *, int);
+extern int open_with_trace (char *, int, char *, int);
+extern int close_with_trace (int, char *, int);
+extern void procfs_note (char *, char *, int);
+
+#ifdef PROCFS_TRACE
+/*
+ * Debugging code:
+ *
+ * These macros allow me to trace the system calls that we make
+ * to control the child process. This is quite handy for comparing
+ * with the older version of procfs.
+ */
+
+#define write(X,Y,Z) write_with_trace (X, Y, Z, __FILE__, __LINE__)
+#define lseek(X,Y,Z) lseek_with_trace (X, Y, Z, __FILE__, __LINE__)
+#define ioctl(X,Y,Z) ioctl_with_trace (X, Y, Z, __FILE__, __LINE__)
+#define open(X,Y) open_with_trace (X, Y, __FILE__, __LINE__)
+#define close(X) close_with_trace (X, __FILE__, __LINE__)
+#define wait(X) wait_with_trace (X, __FILE__, __LINE__)
+#define PROCFS_NOTE(X) procfs_note (X, __FILE__, __LINE__)
+#define PROC_PRETTYFPRINT_STATUS(X,Y,Z,T) \
+ proc_prettyfprint_status (X, Y, Z, T)
+#endif