On Tue, Mar 02, 2004 at 03:28:45PM -0800, George Anzinger wrote:Yeah, something you changed? Oh well, I will just have to learn to put the "()" in :)
Tom Rini wrote:
Hello. Since a 'T' packet is allowed to send back information on an
arbitrary number of registers, and on PPC32 we've always been including
information on the stack pointer and program counter, I was wondering
what people thought of the following patch:
diff -u linux-2.6.3/include/asm-x86_64/kgdb.h linux-2.6.3/include/asm-x86_64/kgdb.h
--- linux-2.6.3/include/asm-x86_64/kgdb.h 2004-02-27 11:30:37.445782703 -0700
+++ linux-2.6.3/include/asm-x86_64/kgdb.h 2004-03-02 14:42:47.854532793 -0700
@@ -48,6 +48,10 @@
/* Number of bytes of registers. */
#define NUMREGBYTES (_LASTREG*8)
+#define PC_REGNUM _PC /* Program Counter */
+#define SP_REGNUM _RSP /* Stack Pointer */
+#define PTRACE_PC rip /* Program Counter, in ptrace regs. */
I would really like to keep this stuff out of kgdb.h since it may be included by the user to pick up the BREAKPOINT() (which, by the way we should standardize as I note that here it has () while not on the current x86).
It's BREAKPOINT() everywhere:
$ grep BREAKPOINT include/asm-*/kgdb.h
include/asm-i386/kgdb.h:#define BREAKPOINT() asm(" int $3");
include/asm-ppc/kgdb.h:#define BREAKPOINT() asm(".long 0x7d821008") /* twge r2, r2 */
include/asm-x86_64/kgdb.h:#define BREAKPOINT() asm(" int $3");
Isn't there a kgdb_local.h which is used only by kdgd and friends? We really do want to keep the name space as clean as possible to prevent possible conflicts.
The simple answer is you don't call BREAKPOINT() in your code anywhere.
You call breakpoint() or kgdb_schedule_breakpoint().
The split here is different in that <linux/kgdb.h> should be standalone
(it's not, _yet_).
But this is all an aside to my question. :)