[PATCH 2009-02-10] cleanups, no code changes

Denys Vlasenko dvlasenk at redhat.com
Thu Feb 12 12:55:40 UTC 2009


2009-02-09  Denys Vlasenko  <dvlasenk at redhat.com>

	* defs.h: Correct the comment about TCB_SUSPENDED.
	* strace.c: Fix misplaced #endif.
	* util.c: Indent preprocessor directives, mark code parts
	which can never be reached by compilation because of
	the combination of #if directives. These are likely dead code,
	I want to remove them later.

This patch was born while I was working on an experimental strace version.
I did some trivial improvements too and decided that it would be a pity
to have them wasted.

So I have split them off experimental work and applied to cvs.

They are:

In strace.c, one #endif was clearly misplaced. This went unnoticed because
at least on Linux it doesn't matter.

Huge re-indenting of cpp directives in util.c doesn't change anything,
but now it's easier to track #if nesting and it's easier to see
that there are two large "#if LINUX" blocks which sit in
even larger "#else /* !LINUX */" block.
I added "DEAD CODE HERE? WE ARE IN 'else !defined LINUX'"
line into each in order to test whether this is indeed
an unreachable code. (I might have miscounted #if's, after all).

Roland, please ACK/NAK.
--
vda


diff -x CVS -urpN 2009-02-09/defs.h 2009-02-10/defs.h
--- 2009-02-09/defs.h	2009-01-26 20:09:38.000000000 +0100
+++ 2009-02-10/defs.h	2009-02-09 19:55:59.000000000 +0100
@@ -353,8 +353,7 @@ struct tcb {
 #define TCB_INSYSCALL	00004	/* A system call is in progress */
 #define TCB_ATTACHED	00010	/* Process is not our own child */
 #define TCB_EXITING	00020	/* As far as we know, this process is exiting */
-#define TCB_SUSPENDED	00040	/* Process has done a wait(4), that can
-				   not be allowed to complete just now */
+#define TCB_SUSPENDED	00040	/* Process can not be allowed to resume just now */
 #define TCB_BPTSET	00100	/* "Breakpoint" set after fork(2) */
 #define TCB_SIGTRAPPED	00200	/* Process wanted to block SIGTRAP */
 #define TCB_FOLLOWFORK	00400	/* Process should have forks followed */
diff -x CVS -urpN 2009-02-09/strace.c 2009-02-10/strace.c
--- 2009-02-09/strace.c	2009-01-29 21:38:20.000000000 +0100
+++ 2009-02-10/strace.c	2009-02-09 19:55:59.000000000 +0100
@@ -1498,10 +1498,10 @@ resume_from_tcp (struct tcb *tcp)
 				}
 			}
 	}
+#endif
 
 	return error;
 }
-#endif
 
 #endif /* !USE_PROCFS */
 
diff -x CVS -urpN 2009-02-09/util.c 2009-02-10/util.c
--- 2009-02-09/util.c	2009-01-17 02:52:54.000000000 +0100
+++ 2009-02-10/util.c	2009-02-09 19:55:59.000000000 +0100
@@ -995,10 +995,10 @@ umovestr(struct tcb *tcp, long addr, int
 }
 
 #ifdef LINUX
-#if !defined (SPARC) && !defined(SPARC64)
-#define PTRACE_WRITETEXT	101
-#define PTRACE_WRITEDATA	102
-#endif /* !SPARC && !SPARC64 */
+# if !defined (SPARC) && !defined(SPARC64)
+#  define PTRACE_WRITETEXT	101
+#  define PTRACE_WRITEDATA	102
+# endif /* !SPARC && !SPARC64 */
 #endif /* LINUX */
 
 #ifdef SUNOS4
@@ -1011,7 +1011,7 @@ long addr;
 int len;
 char *laddr;
 {
-#if 0
+# if 0
 	int n;
 
 	while (len) {
@@ -1025,7 +1025,7 @@ char *laddr;
 		addr += n;
 		laddr += n;
 	}
-#else
+# else
 	int peek, poke;
 	int n, m;
 	union {
@@ -1068,7 +1068,7 @@ char *laddr;
 		}
 		addr += sizeof(long), laddr += m, len -= m;
 	}
-#endif
+# endif
 	return 0;
 }
 
@@ -1103,7 +1103,7 @@ long *res;
 {
 	long val;
 
-#ifdef SUNOS4_KERNEL_ARCH_KLUDGE
+# ifdef SUNOS4_KERNEL_ARCH_KLUDGE
 	{
 		static int is_sun4m = -1;
 		struct utsname name;
@@ -1125,7 +1125,7 @@ long *res;
 		if (is_sun4m)
 			off += 1024;
 	}
-#endif /* SUNOS4_KERNEL_ARCH_KLUDGE */
+# endif /* SUNOS4_KERNEL_ARCH_KLUDGE */
 	errno = 0;
 	val = do_ptrace(PTRACE_PEEKUSER, tcp, (char *) off, 0);
 	if (val == -1 && errno) {
@@ -1150,51 +1150,51 @@ struct tcb *tcp;
 
 #ifdef LINUX
 	long pc;
-#if defined(I386)
+# if defined(I386)
 	if (upeek(tcp, 4*EIP, &pc) < 0)
 		return -1;
-#elif defined(X86_64)
+# elif defined(X86_64)
 	if (upeek(tcp, 8*RIP, &pc) < 0)
 		return -1;
-#elif defined(IA64)
+# elif defined(IA64)
 	if (upeek(tcp, PT_B0, &pc) < 0)
 		return -1;
-#elif defined(ARM)
+# elif defined(ARM)
 	if (upeek(tcp, 4*15, &pc) < 0)
 		return -1;
-#elif defined(BFIN)
+# elif defined(BFIN)
 	if (upeek(tcp, REG_PC, &pc) < 0)
 		return -1;
-#elif defined(POWERPC)
+# elif defined(POWERPC)
 	if (upeek(tcp, sizeof(unsigned long)*PT_NIP, &pc) < 0)
 		return -1;
-#elif defined(M68K)
+# elif defined(M68K)
 	if (upeek(tcp, 4*PT_PC, &pc) < 0)
 		return -1;
-#elif defined(ALPHA)
+# elif defined(ALPHA)
 	if (upeek(tcp, REG_PC, &pc) < 0)
 		return -1;
-#elif defined(MIPS)
- 	if (upeek(tcp, REG_EPC, &pc) < 0)
- 		return -1;
-#elif defined(SPARC) || defined(SPARC64)
+# elif defined(MIPS)
+	if (upeek(tcp, REG_EPC, &pc) < 0)
+		return -1;
+# elif defined(SPARC) || defined(SPARC64)
 	struct regs regs;
 	if (ptrace(PTRACE_GETREGS,tcp->pid,(char *)&regs,0) < 0)
 		return -1;
 	pc = regs.r_pc;
-#elif defined(S390) || defined(S390X)
+# elif defined(S390) || defined(S390X)
 	if(upeek(tcp,PT_PSWADDR,&pc) < 0)
 		return -1;
-#elif defined(HPPA)
+# elif defined(HPPA)
 	if(upeek(tcp,PT_IAOQ0,&pc) < 0)
 		return -1;
-#elif defined(SH)
+# elif defined(SH)
 	if (upeek(tcp, 4*REG_PC ,&pc) < 0)
 		return -1;
-#elif defined(SH64)
+# elif defined(SH64)
 	if (upeek(tcp, REG_PC ,&pc) < 0)
 		return -1;
-#endif
+# endif
 	return pc;
 #endif /* LINUX */
 
@@ -1223,7 +1223,7 @@ struct tcb *tcp;
 	return regs.r_eip;
 #endif /* FREEBSD */
 }
-#endif
+#endif /* 0 */
 
 void
 printcall(tcp)
@@ -1234,7 +1234,7 @@ struct tcb *tcp;
 			   NULL /* crash */)
 
 #ifdef LINUX
-#ifdef I386
+# ifdef I386
 	long eip;
 
 	if (upeek(tcp, 4*EIP, &eip) < 0) {
@@ -1243,19 +1243,19 @@ struct tcb *tcp;
 	}
 	tprintf("[%08lx] ", eip);
 
-#elif defined(S390) || defined(S390X)
+# elif defined(S390) || defined(S390X)
 	long psw;
 	if(upeek(tcp,PT_PSWADDR,&psw) < 0) {
 		PRINTBADPC;
 		return;
 	}
-#ifdef S390
+#  ifdef S390
 	tprintf("[%08lx] ", psw);
-#elif S390X
+#  elif S390X
 	tprintf("[%16lx] ", psw);
-#endif
+#  endif
 
-#elif defined(X86_64)
+# elif defined(X86_64)
 	long rip;
 
 	if (upeek(tcp, 8*RIP, &rip) < 0) {
@@ -1263,7 +1263,7 @@ struct tcb *tcp;
 		return;
 	}
 	tprintf("[%16lx] ", rip);
-#elif defined(IA64)
+# elif defined(IA64)
 	long ip;
 
 	if (upeek(tcp, PT_B0, &ip) < 0) {
@@ -1271,7 +1271,7 @@ struct tcb *tcp;
 		return;
 	}
 	tprintf("[%08lx] ", ip);
-#elif defined(POWERPC)
+# elif defined(POWERPC)
 	long pc;
 
 	if (upeek(tcp, sizeof(unsigned long)*PT_NIP, &pc) < 0) {
@@ -1279,7 +1279,7 @@ struct tcb *tcp;
 		return;
 	}
 	tprintf("[%08lx] ", pc);
-#elif defined(M68K)
+# elif defined(M68K)
 	long pc;
 
 	if (upeek(tcp, 4*PT_PC, &pc) < 0) {
@@ -1287,7 +1287,7 @@ struct tcb *tcp;
 		return;
 	}
 	tprintf("[%08lx] ", pc);
-#elif defined(ALPHA)
+# elif defined(ALPHA)
 	long pc;
 
 	if (upeek(tcp, REG_PC, &pc) < 0) {
@@ -1295,14 +1295,14 @@ struct tcb *tcp;
 		return;
 	}
 	tprintf("[%08lx] ", pc);
-#elif defined(SPARC) || defined(SPARC64)
+# elif defined(SPARC) || defined(SPARC64)
 	struct regs regs;
 	if (ptrace(PTRACE_GETREGS,tcp->pid,(char *)&regs,0) < 0) {
 		PRINTBADPC;
 		return;
 	}
 	tprintf("[%08lx] ", regs.r_pc);
-#elif defined(HPPA)
+# elif defined(HPPA)
 	long pc;
 
 	if(upeek(tcp,PT_IAOQ0,&pc) < 0) {
@@ -1310,7 +1310,7 @@ struct tcb *tcp;
 		return;
 	}
 	tprintf("[%08lx] ", pc);
-#elif defined(MIPS)
+# elif defined(MIPS)
 	long pc;
 
 	if (upeek(tcp, REG_EPC, &pc) < 0) {
@@ -1318,7 +1318,7 @@ struct tcb *tcp;
 		return;
 	}
 	tprintf("[%08lx] ", pc);
-#elif defined(SH)
+# elif defined(SH)
 	long pc;
 
 	if (upeek(tcp, 4*REG_PC, &pc) < 0) {
@@ -1326,7 +1326,7 @@ struct tcb *tcp;
 		return;
 	}
 	tprintf("[%08lx] ", pc);
-#elif defined(SH64)
+# elif defined(SH64)
 	long pc;
 
 	if (upeek(tcp, REG_PC, &pc) < 0) {
@@ -1334,7 +1334,7 @@ struct tcb *tcp;
 		return;
 	}
 	tprintf("[%08lx] ", pc);
-#elif defined(ARM)
+# elif defined(ARM)
 	long pc;
 
 	if (upeek(tcp, 4*15, &pc) < 0) {
@@ -1342,7 +1342,7 @@ struct tcb *tcp;
 		return;
 	}
 	tprintf("[%08lx] ", pc);
-#elif defined(BFIN)
+# elif defined(BFIN)
 	long pc;
 
 	if (upeek(tcp, PT_PC, &pc) < 0) {
@@ -1350,7 +1350,7 @@ struct tcb *tcp;
 		return;
 	}
 	tprintf("[%08lx] ", pc);
-#endif /* !architecture */
+# endif /* architecture */
 #endif /* LINUX */
 
 #ifdef SUNOS4
@@ -1376,32 +1376,37 @@ struct tcb *tcp;
 #endif /* FREEBSD */
 }
 
+
+/*
+ * These #if's are huge, please indent them correctly.
+ * It's easy to get confused otherwise.
+ */
 #ifndef USE_PROCFS
 
-#if defined LINUX
+# if defined LINUX
 
-#include "syscall.h"
+#  include "syscall.h"
 
-#include <sys/syscall.h>
-#ifndef CLONE_PTRACE
-# define CLONE_PTRACE    0x00002000
-#endif
-#ifndef CLONE_VFORK
-# define CLONE_VFORK     0x00004000
-#endif
-#ifndef CLONE_VM
-# define CLONE_VM        0x00000100
-#endif
-#ifndef CLONE_STOPPED
-# define CLONE_STOPPED   0x02000000
-#endif
+#  include <sys/syscall.h>
+#  ifndef CLONE_PTRACE
+#   define CLONE_PTRACE    0x00002000
+#  endif
+#  ifndef CLONE_VFORK
+#   define CLONE_VFORK     0x00004000
+#  endif
+#  ifndef CLONE_VM
+#   define CLONE_VM        0x00000100
+#  endif
+#  ifndef CLONE_STOPPED
+#   define CLONE_STOPPED   0x02000000
+#  endif
 
-#ifdef IA64
+#  ifdef IA64
 
 /* We don't have fork()/vfork() syscalls on ia64 itself, but the ia32
    subsystem has them for x86... */
-#define SYS_fork	2
-#define SYS_vfork	190
+#   define SYS_fork	2
+#   define SYS_vfork	190
 
 typedef unsigned long *arg_setup_state;
 
@@ -1430,9 +1435,9 @@ arg_setup(struct tcb *tcp, arg_setup_sta
 	return 0;
 }
 
-# define arg_finish_change(tcp, state)	0
+#   define arg_finish_change(tcp, state)	0
 
-#ifdef SYS_fork
+#   ifdef SYS_fork
 static int
 get_arg0 (struct tcb *tcp, arg_setup_state *state, long *valp)
 {
@@ -1460,7 +1465,7 @@ get_arg1 (struct tcb *tcp, arg_setup_sta
 			      sizeof(long), (void *) valp);
 	return ret;
 }
-#endif
+#   endif
 
 static int
 set_arg0 (struct tcb *tcp, arg_setup_state *state, long val)
@@ -1497,74 +1502,74 @@ set_arg1 (struct tcb *tcp, arg_setup_sta
 /* ia64 does not return the input arguments from functions (and syscalls)
    according to ia64 RSE (Register Stack Engine) behavior.  */
 
-# define restore_arg0(tcp, state, val) ((void) (state), 0)
-# define restore_arg1(tcp, state, val) ((void) (state), 0)
+#   define restore_arg0(tcp, state, val) ((void) (state), 0)
+#   define restore_arg1(tcp, state, val) ((void) (state), 0)
 
-#elif defined (SPARC) || defined (SPARC64)
+#  elif defined (SPARC) || defined (SPARC64)
 
 typedef struct regs arg_setup_state;
 
-# define arg_setup(tcp, state) \
-  (ptrace (PTRACE_GETREGS, tcp->pid, (char *) (state), 0))
-# define arg_finish_change(tcp, state) \
-  (ptrace (PTRACE_SETREGS, tcp->pid, (char *) (state), 0))
-
-# define get_arg0(tcp, state, valp) (*(valp) = (state)->r_o0, 0)
-# define get_arg1(tcp, state, valp) (*(valp) = (state)->r_o1, 0)
-# define set_arg0(tcp, state, val) ((state)->r_o0 = (val), 0)
-# define set_arg1(tcp, state, val) ((state)->r_o1 = (val), 0)
-# define restore_arg0(tcp, state, val) 0
+#   define arg_setup(tcp, state) \
+    (ptrace (PTRACE_GETREGS, tcp->pid, (char *) (state), 0))
+#   define arg_finish_change(tcp, state) \
+    (ptrace (PTRACE_SETREGS, tcp->pid, (char *) (state), 0))
+
+#   define get_arg0(tcp, state, valp) (*(valp) = (state)->r_o0, 0)
+#   define get_arg1(tcp, state, valp) (*(valp) = (state)->r_o1, 0)
+#   define set_arg0(tcp, state, val) ((state)->r_o0 = (val), 0)
+#   define set_arg1(tcp, state, val) ((state)->r_o1 = (val), 0)
+#   define restore_arg0(tcp, state, val) 0
 
-#else
+#  else /* other architectures */
 
-# if defined S390 || defined S390X
+#   if defined S390 || defined S390X
 /* Note: this is only true for the `clone' system call, which handles
    arguments specially.  We could as well say that its first two arguments
    are swapped relative to other architectures, but that would just be
    another #ifdef in the calls.  */
-#  define arg0_offset	PT_GPR3
-#  define arg1_offset	PT_ORIGGPR2
-#  define restore_arg0(tcp, state, val) ((void) (state), 0)
-#  define restore_arg1(tcp, state, val) ((void) (state), 0)
-#  define arg0_index	1
-#  define arg1_index	0
-# elif defined (ALPHA) || defined (MIPS)
-#  define arg0_offset	REG_A0
-#  define arg1_offset	(REG_A0+1)
-# elif defined (POWERPC)
-#  define arg0_offset	(sizeof(unsigned long)*PT_R3)
-#  define arg1_offset	(sizeof(unsigned long)*PT_R4)
-#  define restore_arg0(tcp, state, val) ((void) (state), 0)
-# elif defined (HPPA)
-#  define arg0_offset	 PT_GR26
-#  define arg1_offset	 (PT_GR26-4)
-# elif defined (X86_64)
-#  define arg0_offset	((long)(8*(current_personality ? RBX : RDI)))
-#  define arg1_offset	((long)(8*(current_personality ? RCX : RSI)))
-# elif defined (SH)
-#  define arg0_offset	(4*(REG_REG0+4))
-#  define arg1_offset	(4*(REG_REG0+5))
-# elif defined (SH64)
-   /* ABI defines arg0 & 1 in r2 & r3 */
-#  define arg0_offset   (REG_OFFSET+16)
-#  define arg1_offset   (REG_OFFSET+24)
-#  define restore_arg0(tcp, state, val) 0
-# else
-#  define arg0_offset	0
-#  define arg1_offset	4
-#  if defined ARM
-#   define restore_arg0(tcp, state, val) 0
-#  endif
-# endif
+#    define arg0_offset	PT_GPR3
+#    define arg1_offset	PT_ORIGGPR2
+#    define restore_arg0(tcp, state, val) ((void) (state), 0)
+#    define restore_arg1(tcp, state, val) ((void) (state), 0)
+#    define arg0_index	1
+#    define arg1_index	0
+#   elif defined (ALPHA) || defined (MIPS)
+#    define arg0_offset	REG_A0
+#    define arg1_offset	(REG_A0+1)
+#   elif defined (POWERPC)
+#    define arg0_offset	(sizeof(unsigned long)*PT_R3)
+#    define arg1_offset	(sizeof(unsigned long)*PT_R4)
+#    define restore_arg0(tcp, state, val) ((void) (state), 0)
+#   elif defined (HPPA)
+#    define arg0_offset	 PT_GR26
+#    define arg1_offset	 (PT_GR26-4)
+#   elif defined (X86_64)
+#    define arg0_offset	((long)(8*(current_personality ? RBX : RDI)))
+#    define arg1_offset	((long)(8*(current_personality ? RCX : RSI)))
+#   elif defined (SH)
+#    define arg0_offset	(4*(REG_REG0+4))
+#    define arg1_offset	(4*(REG_REG0+5))
+#   elif defined (SH64)
+    /* ABI defines arg0 & 1 in r2 & r3 */
+#    define arg0_offset   (REG_OFFSET+16)
+#    define arg1_offset   (REG_OFFSET+24)
+#    define restore_arg0(tcp, state, val) 0
+#   else
+#    define arg0_offset	0
+#    define arg1_offset	4
+#    if defined ARM
+#     define restore_arg0(tcp, state, val) 0
+#    endif
+#   endif
 
 typedef int arg_setup_state;
 
-# define arg_setup(tcp, state) (0)
-# define arg_finish_change(tcp, state)	0
-# define get_arg0(tcp, cookie, valp) \
-  (upeek ((tcp), arg0_offset, (valp)))
-# define get_arg1(tcp, cookie, valp) \
-  (upeek ((tcp), arg1_offset, (valp)))
+#   define arg_setup(tcp, state) (0)
+#   define arg_finish_change(tcp, state)	0
+#   define get_arg0(tcp, cookie, valp) \
+    (upeek ((tcp), arg0_offset, (valp)))
+#   define get_arg1(tcp, cookie, valp) \
+    (upeek ((tcp), arg1_offset, (valp)))
 
 static int
 set_arg0 (struct tcb *tcp, void *cookie, long val)
@@ -1578,19 +1583,19 @@ set_arg1 (struct tcb *tcp, void *cookie,
 	return ptrace (PTRACE_POKEUSER, tcp->pid, (char*)arg1_offset, val);
 }
 
-#endif
+#  endif /* architectures */
 
-#ifndef restore_arg0
-# define restore_arg0(tcp, state, val) set_arg0((tcp), (state), (val))
-#endif
-#ifndef restore_arg1
-# define restore_arg1(tcp, state, val) set_arg1((tcp), (state), (val))
-#endif
+#  ifndef restore_arg0
+#   define restore_arg0(tcp, state, val) set_arg0((tcp), (state), (val))
+#  endif
+#  ifndef restore_arg1
+#   define restore_arg1(tcp, state, val) set_arg1((tcp), (state), (val))
+#  endif
 
-#ifndef arg0_index
-# define arg0_index 0
-# define arg1_index 1
-#endif
+#  ifndef arg0_index
+#   define arg0_index 0
+#   define arg1_index 1
+#  endif
 
 int
 setbpt(struct tcb *tcp)
@@ -1618,13 +1623,13 @@ setbpt(struct tcb *tcp)
 	}
 
 	switch (known_scno(tcp)) {
-#ifdef SYS_vfork
+#  ifdef SYS_vfork
 	case SYS_vfork:
-#endif
-#ifdef SYS_fork
+#  endif
+#  ifdef SYS_fork
 	case SYS_fork:
-#endif
-#if defined SYS_fork || defined SYS_vfork
+#  endif
+#  if defined SYS_fork || defined SYS_vfork
 		if (arg_setup (tcp, &state) < 0
 		    || get_arg0 (tcp, &state, &tcp->inst[0]) < 0
 		    || get_arg1 (tcp, &state, &tcp->inst[1]) < 0
@@ -1637,12 +1642,12 @@ setbpt(struct tcb *tcp)
 		tcp->u_arg[arg1_index] = 0;
 		tcp->flags |= TCB_BPTSET;
 		return 0;
-#endif
+#  endif
 
 	case SYS_clone:
-#ifdef SYS_clone2
+#  ifdef SYS_clone2
 	case SYS_clone2:
-#endif
+#  endif
 		/* ia64 calls directly `clone (CLONE_VFORK | CLONE_VM)'
 		   contrary to x86 SYS_vfork above.  Even on x86 we turn the
 		   vfork semantics into plain fork - each application must not
@@ -1686,20 +1691,20 @@ struct tcb *tcp;
 	return 0;
 }
 
-#else
+# else /* !defined LINUX */
 
 int
 setbpt(tcp)
 struct tcb *tcp;
 {
-
-#ifdef LINUX
-#if defined (SPARC) || defined (SPARC64)
+#  ifdef LINUX
+	DEAD CODE HERE? WE ARE IN 'else !defined LINUX'
+#   if defined (SPARC) || defined (SPARC64)
 	/* We simply use the SunOS breakpoint code. */
 
 	struct regs regs;
 	unsigned long inst;
-#define LOOPA	0x30800000	/* ba,a	0 */
+#    define LOOPA	0x30800000	/* ba,a	0 */
 
 	if (tcp->flags & TCB_BPTSET) {
 		fprintf(stderr, "PANIC: TCB already set in pid %u\n", tcp->pid);
@@ -1724,15 +1729,15 @@ struct tcb *tcp;
 	 * die with a core dump.
 	 * Thus, we are force our way in by taking out two instructions
 	 * and insert an eternal loop instead, in expectance of the SIGSTOP
-	 * generated by out PTRACE_ATTACH.
+	 * generated by our PTRACE_ATTACH.
 	 * Of cause, if we evaporate ourselves in the middle of all this...
 	 */
 	errno = 0;
 	inst = LOOPA;
-#if defined (SPARC64)
+#    if defined (SPARC64)
 	inst <<= 32;
 	inst |= (tcp->inst[0] & 0xffffffffUL);
-#endif
+#    endif
 	ptrace(PTRACE_POKETEXT, tcp->pid, (char *) tcp->baddr, inst);
 	if(errno) {
 		perror("setbpt: ptrace(PTRACE_POKETEXT, ...)");
@@ -1740,8 +1745,8 @@ struct tcb *tcp;
 	}
 	tcp->flags |= TCB_BPTSET;
 
-#else /* !SPARC && !SPARC64 */
-#ifdef IA64
+#   else /* !SPARC && !SPARC64 */
+#    ifdef IA64
 	if (ia32) {
 #		define LOOP	0x0000feeb
 		if (tcp->flags & TCB_BPTSET) {
@@ -1777,8 +1782,8 @@ struct tcb *tcp;
 		 * This ensures that the newly forked child will loop
 		 * endlessly until we've got a chance to attach to it.
 		 */
-#		define LOOP0	0x0000100000000017
-#		define LOOP1	0x4000000000200000
+# 			define LOOP0	0x0000100000000017
+# 			define LOOP1	0x4000000000200000
 		unsigned long addr, ipsr;
 		pid_t pid;
 
@@ -1809,71 +1814,71 @@ struct tcb *tcp;
 		}
 		tcp->flags |= TCB_BPTSET;
 	}
-#else /* !IA64 */
+#    else /* !IA64 */
 
-#if defined (I386) || defined(X86_64)
-#define LOOP	0x0000feeb
-#elif defined (M68K)
-#define LOOP	0x60fe0000
-#elif defined (ALPHA)
-#define LOOP	0xc3ffffff
-#elif defined (POWERPC)
-#define LOOP	0x48000000
-#elif defined(ARM)
-#define LOOP	0xEAFFFFFE
-#elif defined(MIPS)
-#define LOOP	0x1000ffff
-#elif defined(S390)
-#define LOOP	0xa7f40000	/* BRC 15,0 */
-#elif defined(S390X)
-#define LOOP   0xa7f4000000000000UL /* BRC 15,0 */
-#elif defined(HPPA)
-#define LOOP	0xe81f1ff7	/* b,l,n <loc>,r0 */
-#elif defined(SH)
-#ifdef __LITTLE_ENDIAN__
-#define LOOP   0x0000affe
-#else
-#define LOOP   0xfeaf0000
-#endif
-#else
-#error unknown architecture
-#endif
+#     if defined (I386) || defined(X86_64)
+#      define LOOP	0x0000feeb
+#     elif defined (M68K)
+#      define LOOP	0x60fe0000
+#     elif defined (ALPHA)
+#      define LOOP	0xc3ffffff
+#     elif defined (POWERPC)
+#      define LOOP	0x48000000
+#     elif defined(ARM)
+#      define LOOP	0xEAFFFFFE
+#     elif defined(MIPS)
+#      define LOOP	0x1000ffff
+#     elif defined(S390)
+#      define LOOP	0xa7f40000	/* BRC 15,0 */
+#     elif defined(S390X)
+#      define LOOP   0xa7f4000000000000UL /* BRC 15,0 */
+#     elif defined(HPPA)
+#      define LOOP	0xe81f1ff7	/* b,l,n <loc>,r0 */
+#     elif defined(SH)
+#      ifdef __LITTLE_ENDIAN__
+#       define LOOP   0x0000affe
+#      else
+#       define LOOP   0xfeaf0000
+#      endif
+#     else
+#      error unknown architecture
+#     endif
 
 	if (tcp->flags & TCB_BPTSET) {
 		fprintf(stderr, "PANIC: bpt already set in pid %u\n", tcp->pid);
 		return -1;
 	}
-#if defined (I386)
+#     if defined (I386)
 	if (upeek(tcp, 4*EIP, &tcp->baddr) < 0)
 		return -1;
-#elif defined (X86_64)
+#     elif defined (X86_64)
 	if (upeek(tcp, 8*RIP, &tcp->baddr) < 0)
 		return -1;
-#elif defined (M68K)
+#     elif defined (M68K)
 	if (upeek(tcp, 4*PT_PC, &tcp->baddr) < 0)
 	  return -1;
-#elif defined (ALPHA)
+#     elif defined (ALPHA)
 	return -1;
-#elif defined (ARM)
+#     elif defined (ARM)
 	return -1;
-#elif defined (MIPS)
+#     elif defined (MIPS)
 	return -1;		/* FIXME: I do not know what i do - Flo */
-#elif defined (POWERPC)
+#     elif defined (POWERPC)
 	if (upeek(tcp, sizeof(unsigned long)*PT_NIP, &tcp->baddr) < 0)
 		return -1;
-#elif defined(S390) || defined(S390X)
+#     elif defined(S390) || defined(S390X)
 	if (upeek(tcp,PT_PSWADDR, &tcp->baddr) < 0)
 		return -1;
-#elif defined(HPPA)
+#     elif defined(HPPA)
 	if (upeek(tcp, PT_IAOQ0, &tcp->baddr) < 0)
 		return -1;
 	tcp->baddr &= ~0x03;
-#elif defined(SH)
+#     elif defined(SH)
 	if (upeek(tcp, 4*REG_PC, &tcp->baddr) < 0)
 		return -1;
-#else
-#error unknown architecture
-#endif
+#     else
+#      error unknown architecture
+#     endif
 	if (debug)
 		fprintf(stderr, "[%d] setting bpt at %lx\n", tcp->pid, tcp->baddr);
 	tcp->inst[0] = ptrace(PTRACE_PEEKTEXT, tcp->pid, (char *) tcp->baddr, 0);
@@ -1888,23 +1893,23 @@ struct tcb *tcp;
 	}
 	tcp->flags |= TCB_BPTSET;
 
-#endif /* !IA64 */
-#endif /* SPARC || SPARC64 */
-#endif /* LINUX */
+#    endif /* !IA64 */
+#   endif /* !SPARC && !SPARC64 */
+#  endif /* LINUX */
 
-#ifdef SUNOS4
-#ifdef SPARC	/* This code is slightly sparc specific */
+#  ifdef SUNOS4
+#   ifdef SPARC	/* This code is slightly sparc specific */
 
 	struct regs regs;
-#define BPT	0x91d02001	/* ta	1 */
-#define LOOP	0x10800000	/* ba	0 */
-#define LOOPA	0x30800000	/* ba,a	0 */
-#define NOP	0x01000000
-#if LOOPA
+#    define BPT	0x91d02001	/* ta	1 */
+#    define LOOP	0x10800000	/* ba	0 */
+#    define LOOPA	0x30800000	/* ba,a	0 */
+#    define NOP	0x01000000
+#    if LOOPA
 	static int loopdeloop[1] = {LOOPA};
-#else
+#    else
 	static int loopdeloop[2] = {LOOP, NOP};
-#endif
+#    endif
 
 	if (tcp->flags & TCB_BPTSET) {
 		fprintf(stderr, "PANIC: TCB already set in pid %u\n", tcp->pid);
@@ -1938,8 +1943,8 @@ struct tcb *tcp;
 	}
 	tcp->flags |= TCB_BPTSET;
 
-#endif /* SPARC */
-#endif /* SUNOS4 */
+#   endif /* SPARC */
+#  endif /* SUNOS4 */
 
 	return 0;
 }
@@ -1949,22 +1954,23 @@ clearbpt(tcp)
 struct tcb *tcp;
 {
 
-#ifdef LINUX
-#if defined(I386) || defined(X86_64)
+#  ifdef LINUX
+	DEAD CODE HERE? WE ARE IN 'else !defined LINUX'
+#   if defined(I386) || defined(X86_64)
 	long eip;
-#elif defined(POWERPC)
+#   elif defined(POWERPC)
 	long pc;
-#elif defined(M68K)
+#   elif defined(M68K)
 	long pc;
-#elif defined(ALPHA)
+#   elif defined(ALPHA)
 	long pc;
-#elif defined(HPPA)
+#   elif defined(HPPA)
 	long iaoq;
-#elif defined(SH)
+#   elif defined(SH)
 	long pc;
-#endif /* architecture */
+#   endif /* architecture */
 
-#if defined (SPARC) || defined (SPARC64)
+#   if defined (SPARC) || defined (SPARC64)
 	/* Again, we borrow the SunOS breakpoint code. */
 	if (!(tcp->flags & TCB_BPTSET)) {
 		fprintf(stderr, "PANIC: TCB not set in pid %u\n", tcp->pid);
@@ -1977,7 +1983,7 @@ struct tcb *tcp;
 		return -1;
 	}
 	tcp->flags &= ~TCB_BPTSET;
-#elif defined(IA64)
+#   elif defined(IA64)
 	if (ia32) {
 		unsigned long addr;
 
@@ -2044,7 +2050,7 @@ struct tcb *tcp;
 			return 0;
 		}
 	}
-#else /* !IA64  && !SPARC && !SPARC64 */
+#   else /* !IA64 && !SPARC && !SPARC64 */
 
 	if (debug)
 		fprintf(stderr, "[%d] clearing bpt\n", tcp->pid);
@@ -2060,7 +2066,7 @@ struct tcb *tcp;
 	}
 	tcp->flags &= ~TCB_BPTSET;
 
-#ifdef I386
+#    ifdef I386
 	if (upeek(tcp, 4*EIP, &eip) < 0)
 		return -1;
 	if (eip != tcp->baddr) {
@@ -2071,7 +2077,7 @@ struct tcb *tcp;
 					eip, tcp->baddr);
 		return 0;
 	}
-#elif defined(X86_64)
+#    elif defined(X86_64)
 	if (upeek(tcp, 8*RIP, &eip) < 0)
 		return -1;
 	if (eip != tcp->baddr) {
@@ -2082,7 +2088,7 @@ struct tcb *tcp;
 					eip, tcp->baddr);
 		return 0;
 	}
-#elif defined(POWERPC)
+#    elif defined(POWERPC)
 	if (upeek(tcp, sizeof(unsigned long)*PT_NIP, &pc) < 0)
 		return -1;
 	if (pc != tcp->baddr) {
@@ -2092,7 +2098,7 @@ struct tcb *tcp;
 				pc, tcp->baddr);
 		return 0;
 	}
-#elif defined(M68K)
+#    elif defined(M68K)
 	if (upeek(tcp, 4*PT_PC, &pc) < 0)
 		return -1;
 	if (pc != tcp->baddr) {
@@ -2102,7 +2108,7 @@ struct tcb *tcp;
 				pc, tcp->baddr);
 		return 0;
 	}
-#elif defined(ALPHA)
+#    elif defined(ALPHA)
 	if (upeek(tcp, REG_PC, &pc) < 0)
 		return -1;
 	if (pc != tcp->baddr) {
@@ -2112,7 +2118,7 @@ struct tcb *tcp;
 				pc, tcp->baddr);
 		return 0;
 	}
-#elif defined(HPPA)
+#    elif defined(HPPA)
 	if (upeek(tcp, PT_IAOQ0, &iaoq) < 0)
 		return -1;
 	iaoq &= ~0x03;
@@ -2130,7 +2136,7 @@ struct tcb *tcp;
 	 */
 	ptrace(PTRACE_POKEUSER, tcp->pid, (void *)PT_IAOQ0, iaoq);
 	ptrace(PTRACE_POKEUSER, tcp->pid, (void *)PT_IAOQ1, iaoq);
-#elif defined(SH)
+#    elif defined(SH)
 	if (upeek(tcp, 4*REG_PC, &pc) < 0)
 		return -1;
 	if (pc != tcp->baddr) {
@@ -2141,16 +2147,16 @@ struct tcb *tcp;
 		return 0;
 	}
 
-#endif /* arch */
-#endif /* !SPARC && !SPARC64 && !IA64 */
-#endif /* LINUX */
+#    endif /* arch */
+#   endif /* !SPARC && !SPARC64 && !IA64 */
+#  endif /* LINUX */
 
-#ifdef SUNOS4
-#ifdef SPARC
+#  ifdef SUNOS4
+#   ifdef SPARC
 
-#if !LOOPA
+#    if !LOOPA
 	struct regs regs;
-#endif
+#    endif
 
 	if (!(tcp->flags & TCB_BPTSET)) {
 		fprintf(stderr, "PANIC: TCB not set in pid %u\n", tcp->pid);
@@ -2163,10 +2169,10 @@ struct tcb *tcp;
 	}
 	tcp->flags &= ~TCB_BPTSET;
 
-#if !LOOPA
+#    if !LOOPA
 	/*
 	 * Since we don't have a single instruction breakpoint, we may have
-	 * to adjust the program counter after removing the our `breakpoint'.
+	 * to adjust the program counter after removing our `breakpoint'.
 	 */
 	if (ptrace(PTRACE_GETREGS, tcp->pid, (char *)&regs, 0) < 0) {
 		perror("clearbpt: ptrace(PTRACE_GETREGS, ...)");
@@ -2178,7 +2184,7 @@ struct tcb *tcp;
 		if (debug)
 			fprintf(stderr,
 				"NOTE: PC not at bpt (pc %#x baddr %#x)\n",
-					regs.r_pc, tcp->parent->baddr);
+					regs.r_pc, tcp->baddr);
 		return 0;
 	}
 	if (regs.r_pc != tcp->baddr)
@@ -2191,17 +2197,18 @@ struct tcb *tcp;
 		perror("clearbpt: ptrace(PTRACE_SETREGS, ...)");
 		return -1;
 	}
-#endif /* LOOPA */
-#endif /* SPARC */
-#endif /* SUNOS4 */
+#    endif /* LOOPA */
+#   endif /* SPARC */
+#  endif /* SUNOS4 */
 
 	return 0;
 }
 
-#endif
+# endif /* !defined LINUX */
 
 #endif /* !USE_PROCFS */
 
+
 #ifdef SUNOS4
 
 static int
@@ -2262,13 +2269,13 @@ struct tcb *tcp;
 					(int)ld.ld_symb_size, strtab) < 0)
 		goto err;
 
-#if 0
+# if 0
 	for (cp = strtab; cp < strtab + ld.ld_symb_size; ) {
 		fprintf(stderr, "[symbol: %s]\n", cp);
 		cp += strlen(cp)+1;
 	}
 	return 0;
-#endif
+# endif
 	for (cp = strtab; cp < strtab + ld.ld_symb_size; ) {
 		if (strcmp(cp, "_vfork") == 0) {
 			if (debug)






More information about the Strace-devel mailing list