summaryrefslogtreecommitdiff
path: root/gdb/proc-utils.h
diff options
context:
space:
mode:
authorMichael Snyder <msnyder@specifix.com>2000-05-05 20:56:10 +0000
committerMichael Snyder <msnyder@specifix.com>2000-05-05 20:56:10 +0000
commit9835b921458395c007b35b78f7e4a5b4b468ae7a (patch)
treedc6e89d161a79cc8a250621827517157f958c250 /gdb/proc-utils.h
parent3f0ab7794b862db6170e7b4eefcac8729528c564 (diff)
downloadgdb-9835b921458395c007b35b78f7e4a5b4b468ae7a.tar.gz
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 cdab0c3723e..08b0cc77268 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