[kgtp] r965 committed - Add new debug switch GTP_DEBUG_V (just for developer).

  • From: kgtp@xxxxxxxxxxxxxx
  • To: kgtp@xxxxxxxxxxxxx
  • Date: Mon, 12 Mar 2012 13:55:08 +0000

Revision: 965
Author:   teawater
Date:     Mon Mar 12 06:54:29 2012
Log:      Add new debug switch GTP_DEBUG_V (just for developer).

http://code.google.com/p/kgtp/source/detail?r=965

Modified:
 /trunk/UPDATE
 /trunk/gtp.c
 /trunk/gtp_for_review.patch
 /trunk/gtp_rb.c

=======================================
--- /trunk/UPDATE       Sat Mar 10 20:47:12 2012
+++ /trunk/UPDATE       Mon Mar 12 06:54:29 2012
@@ -11,6 +11,8 @@

 * Fix bug about access $current_task_pid.

+* Add new debug switch GTP_DEBUG_V (just for developer).
+
 *** 20120224

 * https://lkml.org/lkml/2012/2/26/127
=======================================
--- /trunk/gtp.c        Sun Mar 11 04:19:36 2012
+++ /trunk/gtp.c        Mon Mar 12 06:54:29 2012
@@ -204,6 +204,8 @@
 #define GTP_DEBUG              KERN_WARNING
 #endif

+/* #define GTP_DEBUG_V */
+
 #define GTP_RW_MAX             16384
 #define GTP_RW_BUFP_MAX                (GTP_RW_MAX - 4 - gtp_rw_size)

@@ -1278,38 +1280,38 @@
 gtp_regs2ascii(struct pt_regs *regs, char *buf)
 {
 #ifdef CONFIG_X86_32
-#ifdef GTP_DEBUG
-       printk(GTP_DEBUG "gtp_regs2ascii: ax = 0x%x\n",
+#ifdef GTP_DEBUG_V
+       printk(GTP_DEBUG_V "gtp_regs2ascii: ax = 0x%x\n",
                (unsigned int) regs->ax);
-       printk(GTP_DEBUG "gtp_regs2ascii: cx = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: cx = 0x%x\n",
                (unsigned int) regs->cx);
-       printk(GTP_DEBUG "gtp_regs2ascii: dx = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: dx = 0x%x\n",
                (unsigned int) regs->dx);
-       printk(GTP_DEBUG "gtp_regs2ascii: bx = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: bx = 0x%x\n",
                (unsigned int) regs->bx);
-       printk(GTP_DEBUG "gtp_regs2ascii: sp = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: sp = 0x%x\n",
                (unsigned int) regs->sp);
-       printk(GTP_DEBUG "gtp_regs2ascii: bp = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: bp = 0x%x\n",
                (unsigned int) regs->bp);
-       printk(GTP_DEBUG "gtp_regs2ascii: si = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: si = 0x%x\n",
                (unsigned int) regs->si);
-       printk(GTP_DEBUG "gtp_regs2ascii: di = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: di = 0x%x\n",
                (unsigned int) regs->di);
-       printk(GTP_DEBUG "gtp_regs2ascii: ip = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: ip = 0x%x\n",
                (unsigned int) regs->ip);
-       printk(GTP_DEBUG "gtp_regs2ascii: flags = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: flags = 0x%x\n",
                (unsigned int) regs->flags);
-       printk(GTP_DEBUG "gtp_regs2ascii: cs = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: cs = 0x%x\n",
                (unsigned int) regs->cs);
-       printk(GTP_DEBUG "gtp_regs2ascii: ss = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: ss = 0x%x\n",
                (unsigned int) regs->ss);
-       printk(GTP_DEBUG "gtp_regs2ascii: ds = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: ds = 0x%x\n",
                (unsigned int) regs->ds);
-       printk(GTP_DEBUG "gtp_regs2ascii: es = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: es = 0x%x\n",
                (unsigned int) regs->es);
-       printk(GTP_DEBUG "gtp_regs2ascii: fs = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: fs = 0x%x\n",
                (unsigned int) regs->fs);
-       printk(GTP_DEBUG "gtp_regs2ascii: gs = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: gs = 0x%x\n",
                (unsigned int) regs->gs);
 #endif
 #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,24))
@@ -1382,27 +1384,27 @@
        buf += 8;
 #endif
 #else
-#ifdef GTP_DEBUG
-       printk(GTP_DEBUG "gtp_regs2ascii: ax = 0x%lx\n", regs->ax);
-       printk(GTP_DEBUG "gtp_regs2ascii: bx = 0x%lx\n", regs->bx);
-       printk(GTP_DEBUG "gtp_regs2ascii: cx = 0x%lx\n", regs->cx);
-       printk(GTP_DEBUG "gtp_regs2ascii: dx = 0x%lx\n", regs->dx);
-       printk(GTP_DEBUG "gtp_regs2ascii: si = 0x%lx\n", regs->si);
-       printk(GTP_DEBUG "gtp_regs2ascii: di = 0x%lx\n", regs->di);
-       printk(GTP_DEBUG "gtp_regs2ascii: bp = 0x%lx\n", regs->bp);
-       printk(GTP_DEBUG "gtp_regs2ascii: sp = 0x%lx\n", regs->sp);
-       printk(GTP_DEBUG "gtp_regs2ascii: r8 = 0x%lx\n", regs->r8);
-       printk(GTP_DEBUG "gtp_regs2ascii: r9 = 0x%lx\n", regs->r9);
-       printk(GTP_DEBUG "gtp_regs2ascii: r10 = 0x%lx\n", regs->r10);
-       printk(GTP_DEBUG "gtp_regs2ascii: r11 = 0x%lx\n", regs->r11);
-       printk(GTP_DEBUG "gtp_regs2ascii: r12 = 0x%lx\n", regs->r12);
-       printk(GTP_DEBUG "gtp_regs2ascii: r13 = 0x%lx\n", regs->r13);
-       printk(GTP_DEBUG "gtp_regs2ascii: r14 = 0x%lx\n", regs->r14);
-       printk(GTP_DEBUG "gtp_regs2ascii: r15 = 0x%lx\n", regs->r15);
-       printk(GTP_DEBUG "gtp_regs2ascii: ip = 0x%lx\n", regs->ip);
-       printk(GTP_DEBUG "gtp_regs2ascii: flags = 0x%lx\n", regs->flags);
-       printk(GTP_DEBUG "gtp_regs2ascii: cs = 0x%lx\n", regs->cs);
-       printk(GTP_DEBUG "gtp_regs2ascii: ss = 0x%lx\n", regs->ss);
+#ifdef GTP_DEBUG_V
+       printk(GTP_DEBUG_V "gtp_regs2ascii: ax = 0x%lx\n", regs->ax);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: bx = 0x%lx\n", regs->bx);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: cx = 0x%lx\n", regs->cx);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: dx = 0x%lx\n", regs->dx);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: si = 0x%lx\n", regs->si);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: di = 0x%lx\n", regs->di);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: bp = 0x%lx\n", regs->bp);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: sp = 0x%lx\n", regs->sp);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: r8 = 0x%lx\n", regs->r8);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: r9 = 0x%lx\n", regs->r9);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: r10 = 0x%lx\n", regs->r10);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: r11 = 0x%lx\n", regs->r11);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: r12 = 0x%lx\n", regs->r12);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: r13 = 0x%lx\n", regs->r13);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: r14 = 0x%lx\n", regs->r14);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: r15 = 0x%lx\n", regs->r15);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: ip = 0x%lx\n", regs->ip);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: flags = 0x%lx\n", regs->flags);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: cs = 0x%lx\n", regs->cs);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: ss = 0x%lx\n", regs->ss);
 #endif
 #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,24))
        sprintf(buf, "%016lx", (unsigned long) swab64(regs->ax));
@@ -1481,38 +1483,38 @@
 gtp_regs2bin(struct pt_regs *regs, char *buf)
 {
 #ifdef CONFIG_X86_32
-#ifdef GTP_DEBUG
-       printk(GTP_DEBUG "gtp_regs2ascii: ax = 0x%x\n",
+#ifdef GTP_DEBUG_V
+       printk(GTP_DEBUG_V "gtp_regs2ascii: ax = 0x%x\n",
                (unsigned int) regs->ax);
-       printk(GTP_DEBUG "gtp_regs2ascii: cx = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: cx = 0x%x\n",
                (unsigned int) regs->cx);
-       printk(GTP_DEBUG "gtp_regs2ascii: dx = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: dx = 0x%x\n",
                (unsigned int) regs->dx);
-       printk(GTP_DEBUG "gtp_regs2ascii: bx = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: bx = 0x%x\n",
                (unsigned int) regs->bx);
-       printk(GTP_DEBUG "gtp_regs2ascii: sp = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: sp = 0x%x\n",
                (unsigned int) regs->sp);
-       printk(GTP_DEBUG "gtp_regs2ascii: bp = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: bp = 0x%x\n",
                (unsigned int) regs->bp);
-       printk(GTP_DEBUG "gtp_regs2ascii: si = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: si = 0x%x\n",
                (unsigned int) regs->si);
-       printk(GTP_DEBUG "gtp_regs2ascii: di = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: di = 0x%x\n",
                (unsigned int) regs->di);
-       printk(GTP_DEBUG "gtp_regs2ascii: ip = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: ip = 0x%x\n",
                (unsigned int) regs->ip);
-       printk(GTP_DEBUG "gtp_regs2ascii: flags = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: flags = 0x%x\n",
                (unsigned int) regs->flags);
-       printk(GTP_DEBUG "gtp_regs2ascii: cs = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: cs = 0x%x\n",
                (unsigned int) regs->cs);
-       printk(GTP_DEBUG "gtp_regs2ascii: ss = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: ss = 0x%x\n",
                (unsigned int) regs->ss);
-       printk(GTP_DEBUG "gtp_regs2ascii: ds = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: ds = 0x%x\n",
                (unsigned int) regs->ds);
-       printk(GTP_DEBUG "gtp_regs2ascii: es = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: es = 0x%x\n",
                (unsigned int) regs->es);
-       printk(GTP_DEBUG "gtp_regs2ascii: fs = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: fs = 0x%x\n",
                (unsigned int) regs->fs);
-       printk(GTP_DEBUG "gtp_regs2ascii: gs = 0x%x\n",
+       printk(GTP_DEBUG_V "gtp_regs2ascii: gs = 0x%x\n",
                (unsigned int) regs->gs);
 #endif
 #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,24))
@@ -1585,27 +1587,27 @@
        buf += 4;
 #endif
 #else
-#ifdef GTP_DEBUG
-       printk(GTP_DEBUG "gtp_regs2ascii: ax = 0x%lx\n", regs->ax);
-       printk(GTP_DEBUG "gtp_regs2ascii: bx = 0x%lx\n", regs->bx);
-       printk(GTP_DEBUG "gtp_regs2ascii: cx = 0x%lx\n", regs->cx);
-       printk(GTP_DEBUG "gtp_regs2ascii: dx = 0x%lx\n", regs->dx);
-       printk(GTP_DEBUG "gtp_regs2ascii: si = 0x%lx\n", regs->si);
-       printk(GTP_DEBUG "gtp_regs2ascii: di = 0x%lx\n", regs->di);
-       printk(GTP_DEBUG "gtp_regs2ascii: bp = 0x%lx\n", regs->bp);
-       printk(GTP_DEBUG "gtp_regs2ascii: sp = 0x%lx\n", regs->sp);
-       printk(GTP_DEBUG "gtp_regs2ascii: r8 = 0x%lx\n", regs->r8);
-       printk(GTP_DEBUG "gtp_regs2ascii: r9 = 0x%lx\n", regs->r9);
-       printk(GTP_DEBUG "gtp_regs2ascii: r10 = 0x%lx\n", regs->r10);
-       printk(GTP_DEBUG "gtp_regs2ascii: r11 = 0x%lx\n", regs->r11);
-       printk(GTP_DEBUG "gtp_regs2ascii: r12 = 0x%lx\n", regs->r12);
-       printk(GTP_DEBUG "gtp_regs2ascii: r13 = 0x%lx\n", regs->r13);
-       printk(GTP_DEBUG "gtp_regs2ascii: r14 = 0x%lx\n", regs->r14);
-       printk(GTP_DEBUG "gtp_regs2ascii: r15 = 0x%lx\n", regs->r15);
-       printk(GTP_DEBUG "gtp_regs2ascii: ip = 0x%lx\n", regs->ip);
-       printk(GTP_DEBUG "gtp_regs2ascii: flags = 0x%lx\n", regs->flags);
-       printk(GTP_DEBUG "gtp_regs2ascii: cs = 0x%lx\n", regs->cs);
-       printk(GTP_DEBUG "gtp_regs2ascii: ss = 0x%lx\n", regs->ss);
+#ifdef GTP_DEBUG_V
+       printk(GTP_DEBUG_V "gtp_regs2ascii: ax = 0x%lx\n", regs->ax);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: bx = 0x%lx\n", regs->bx);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: cx = 0x%lx\n", regs->cx);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: dx = 0x%lx\n", regs->dx);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: si = 0x%lx\n", regs->si);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: di = 0x%lx\n", regs->di);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: bp = 0x%lx\n", regs->bp);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: sp = 0x%lx\n", regs->sp);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: r8 = 0x%lx\n", regs->r8);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: r9 = 0x%lx\n", regs->r9);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: r10 = 0x%lx\n", regs->r10);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: r11 = 0x%lx\n", regs->r11);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: r12 = 0x%lx\n", regs->r12);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: r13 = 0x%lx\n", regs->r13);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: r14 = 0x%lx\n", regs->r14);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: r15 = 0x%lx\n", regs->r15);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: ip = 0x%lx\n", regs->ip);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: flags = 0x%lx\n", regs->flags);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: cs = 0x%lx\n", regs->cs);
+       printk(GTP_DEBUG_V "gtp_regs2ascii: ss = 0x%lx\n", regs->ss);
 #endif
 #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,24))
        memcpy(buf, &regs->ax, 8);
@@ -1725,22 +1727,22 @@
 static void
 gtp_regs2ascii(struct pt_regs *regs, char *buf)
 {
-#ifdef GTP_DEBUG
+#ifdef GTP_DEBUG_V
        {
                int     i;

                for (i = 0; i < 32; i++)
-                       printk(GTP_DEBUG "gtp_gdbrsp_g: r%d = 0x%lx\n", i,
+                       printk(GTP_DEBUG_V "gtp_gdbrsp_g: r%d = 0x%lx\n", i,
                               regs->regs[i]);
        }
-       printk(GTP_DEBUG "gtp_gdbrsp_g: status = 0x%lx\n",
+       printk(GTP_DEBUG_V "gtp_gdbrsp_g: status = 0x%lx\n",
               regs->cp0_status);
-       printk(GTP_DEBUG "gtp_gdbrsp_g: lo = 0x%lx\n", regs->lo);
-       printk(GTP_DEBUG "gtp_gdbrsp_g: hi = 0x%lx\n", regs->hi);
-       printk(GTP_DEBUG "gtp_gdbrsp_g: badvaddr = 0x%lx\n",
+       printk(GTP_DEBUG_V "gtp_gdbrsp_g: lo = 0x%lx\n", regs->lo);
+       printk(GTP_DEBUG_V "gtp_gdbrsp_g: hi = 0x%lx\n", regs->hi);
+       printk(GTP_DEBUG_V "gtp_gdbrsp_g: badvaddr = 0x%lx\n",
               regs->cp0_badvaddr);
-       printk(GTP_DEBUG "gtp_gdbrsp_g: cause = 0x%lx\n", regs->cp0_cause);
-       printk(GTP_DEBUG "gtp_gdbrsp_g: pc = 0x%lx\n", regs->cp0_epc);
+       printk(GTP_DEBUG_V "gtp_gdbrsp_g: cause = 0x%lx\n", regs->cp0_cause);
+       printk(GTP_DEBUG_V "gtp_gdbrsp_g: pc = 0x%lx\n", regs->cp0_epc);
 #endif

 #ifdef CONFIG_32BIT
@@ -1796,22 +1798,22 @@
 static void
 gtp_regs2bin(struct pt_regs *regs, char *buf)
 {
-#ifdef GTP_DEBUG
+#ifdef GTP_DEBUG_V
        {
                int     i;

                for (i = 0; i < 32; i++)
-                       printk(GTP_DEBUG "gtp_gdbrsp_g: r%d = 0x%lx\n", i,
+                       printk(GTP_DEBUG_V "gtp_gdbrsp_g: r%d = 0x%lx\n", i,
                               regs->regs[i]);
        }
-       printk(GTP_DEBUG "gtp_gdbrsp_g: status = 0x%lx\n",
+       printk(GTP_DEBUG_V "gtp_gdbrsp_g: status = 0x%lx\n",
               regs->cp0_status);
-       printk(GTP_DEBUG "gtp_gdbrsp_g: lo = 0x%lx\n", regs->lo);
-       printk(GTP_DEBUG "gtp_gdbrsp_g: hi = 0x%lx\n", regs->hi);
-       printk(GTP_DEBUG "gtp_gdbrsp_g: badvaddr = 0x%lx\n",
+       printk(GTP_DEBUG_V "gtp_gdbrsp_g: lo = 0x%lx\n", regs->lo);
+       printk(GTP_DEBUG_V "gtp_gdbrsp_g: hi = 0x%lx\n", regs->hi);
+       printk(GTP_DEBUG_V "gtp_gdbrsp_g: badvaddr = 0x%lx\n",
               regs->cp0_badvaddr);
-       printk(GTP_DEBUG "gtp_gdbrsp_g: cause = 0x%lx\n", regs->cp0_cause);
-       printk(GTP_DEBUG "gtp_gdbrsp_g: pc = 0x%lx\n", regs->cp0_epc);
+       printk(GTP_DEBUG_V "gtp_gdbrsp_g: cause = 0x%lx\n", regs->cp0_cause);
+       printk(GTP_DEBUG_V "gtp_gdbrsp_g: pc = 0x%lx\n", regs->cp0_epc);
 #endif

 #ifdef CONFIG_32BIT
@@ -1867,8 +1869,8 @@
        int     i;

        for (i = 0; i < 16; i++) {
-#ifdef GTP_DEBUG
-               printk(GTP_DEBUG "gtp_gdbrsp_g: r%d = 0x%lx\n",
+#ifdef GTP_DEBUG_V
+               printk(GTP_DEBUG_V "gtp_gdbrsp_g: r%d = 0x%lx\n",
                       i, regs->uregs[i]);
 #endif
                sprintf(buf, "%08lx", (unsigned long) SWAB(regs->uregs[i]));
@@ -1879,8 +1881,8 @@
        memset(buf, '0', 200);
        buf += 200;

-#ifdef GTP_DEBUG
-       printk(GTP_DEBUG "gtp_gdbrsp_g: cpsr = 0x%lx\n", regs->uregs[16]);
+#ifdef GTP_DEBUG_V
+       printk(GTP_DEBUG_V "gtp_gdbrsp_g: cpsr = 0x%lx\n", regs->uregs[16]);
 #endif
        sprintf(buf, "%08lx",
                 (unsigned long) SWAB(regs->uregs[16]));
@@ -1894,8 +1896,8 @@
        int     i;

        for (i = 0; i < 16; i++) {
-#ifdef GTP_DEBUG
-               printk(GTP_DEBUG "gtp_gdbrsp_g: r%d = 0x%lx\n",
+#ifdef GTP_DEBUG_V
+               printk(GTP_DEBUG_V "gtp_gdbrsp_g: r%d = 0x%lx\n",
                       i, regs->uregs[i]);
 #endif
                memcpy(buf, &regs->uregs[i], 4);
@@ -1906,8 +1908,8 @@
        memset(buf, '\0', 100);
        buf += 100;

-#ifdef GTP_DEBUG
-       printk(GTP_DEBUG "gtp_gdbrsp_g: cpsr = 0x%lx\n", regs->uregs[16]);
+#ifdef GTP_DEBUG_V
+       printk(GTP_DEBUG_V "gtp_gdbrsp_g: cpsr = 0x%lx\n", regs->uregs[16]);
 #endif
        memcpy(buf, &regs->uregs[16], 4);
        buf += 4;
@@ -2437,8 +2439,8 @@
        fm->size = size;
        tmp += sizeof(struct gtp_frame_mem);

-#ifdef GTP_DEBUG
-       printk(GTP_DEBUG "gtp_action_memory_read: id:%d addr:%p %p %u\n",
+#ifdef GTP_DEBUG_V
+       printk(GTP_DEBUG_V "gtp_action_memory_read: id:%d addr:%p %p %u\n",
               (int)gts->tpe->num, (void *)(CORE_ADDR)gts->tpe->addr,
               (void *)addr, (unsigned int)size);
 #endif
@@ -2540,8 +2542,8 @@
 {
        struct gtp_var  *ret;

-#ifdef GTP_DEBUG
-       printk(GTP_DEBUG "gtp_gtp_var_array_find: num:%u %u %u\n",
+#ifdef GTP_DEBUG_V
+       printk(GTP_DEBUG_V "gtp_gtp_var_array_find: num:%u %u %u\n",
               gtp_var_head, gtp_var_tail, num);
 #endif

@@ -2832,8 +2834,8 @@
                spin_lock(&gtp_var_lock);

        while (1) {
-#ifdef GTP_DEBUG
-               printk(GTP_DEBUG "gtp_parse_x: cmd %x\n", ebuf[pc]);
+#ifdef GTP_DEBUG_V
+               printk(GTP_DEBUG_V "gtp_parse_x: cmd %x\n", ebuf[pc]);
 #endif

                switch (ebuf[pc++]) {
@@ -3428,8 +3430,8 @@
 {
        struct action           *ae;

-#ifdef GTP_DEBUG
-       printk(GTP_DEBUG "gtp_handler: tracepoint %d %p\n",
+#ifdef GTP_DEBUG_V
+       printk(GTP_DEBUG_V "gtp_handler: tracepoint %d %p\n",
               (int)gts->tpe->num, (void *)(CORE_ADDR)gts->tpe->addr);
 #endif

@@ -3520,8 +3522,8 @@
        add_preempt_count(HARDIRQ_OFFSET);
        tasklet_schedule(&gts->tpe->tasklet);
        sub_preempt_count(HARDIRQ_OFFSET);
-#ifdef GTP_DEBUG
-       printk(GTP_DEBUG "gtp_handler: tracepoint %d %p stop.\n",
+#ifdef GTP_DEBUG_V
+       printk(GTP_DEBUG_V "gtp_handler: tracepoint %d %p stop.\n",
                (int)gts->tpe->num, (void *)(CORE_ADDR)gts->tpe->addr);
 #endif
        return;
@@ -4424,8 +4426,8 @@

 reswitch:
        while (pc < ae->u.exp.size) {
-#ifdef GTP_DEBUG
-               printk(GTP_DEBUG "gtp_check_x_simple: cmd %x\n", ebuf[pc]);
+#ifdef GTP_DEBUG_V
+               printk(GTP_DEBUG_V "gtp_check_x_simple: cmd %x\n", ebuf[pc]);
 #endif
                switch (ebuf[pc++]) {
                /* add */
@@ -4763,6 +4765,15 @@
        goto release_out;

 out:
+#ifdef GTP_DEBUG
+       printk(GTP_DEBUG "sp_max = %d\n", sp_max);
+#endif
+       if (sp_max >= STACK_MAX) {
+               printk(KERN_WARNING "gtp_check_x_simple: stack overflow, "
+                                   "current %d, max %d.\n",
+                      sp_max, STACK_MAX);
+               goto release_out;
+       }
        if (glist) {
                pc = glist->ip;
                sp = glist->sp;
@@ -4771,12 +4782,6 @@
                kfree(gtmp);
                goto reswitch;
        }
-       if (sp_max >= STACK_MAX) {
-               printk(KERN_WARNING "gtp_check_x_simple: stack overflow, "
-                                   "current %d, max %d.\n",
-                      sp_max, STACK_MAX);
-               goto release_out;
-       }
        ret = 0;
 #ifdef GTP_DEBUG
        printk(GTP_DEBUG "gtp_check_x_simple: Code is OK. sp_max is %d.\n",
=======================================
--- /trunk/gtp_for_review.patch Sun Mar 11 04:19:36 2012
+++ /trunk/gtp_for_review.patch Mon Mar 12 06:54:29 2012
@@ -8,17 +8,15 @@
  kernel/events/core.c             |   14
  lib/Kconfig.debug                |   10
  lib/Makefile                     |    4
- lib/gtp.c | 8666 +++++++++++++++++++++++++++++++++++++++
- lib/gtp_rb.c                     |  495 ++
+ lib/gtp.c | 8867 +++++++++++++++++++++++++++++++++++++++
+ lib/gtp_rb.c                     |  498 ++
  scripts/gtp/add-ons/pe.py        |  729 +++
  scripts/gtp/getgtprsp.pl         |  137
  scripts/gtp/getmod.py            |  132
- 14 files changed, 12006 insertions(+), 2 deletions(-)
-
-Index: linux/Documentation/gtp/howto.txt
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux/Documentation/gtp/howto.txt  2012-03-11 18:32:05.037712658 +0800
+ 14 files changed, 12210 insertions(+), 2 deletions(-)
+
+--- /dev/null
++++ b/Documentation/gtp/howto.txt
 @@ -0,0 +1,1519 @@
 +              Linux Kernel GDB tracepoint module (KGTP)
 +              =========================================
@@ -1539,10 +1537,8 @@
 +----------------------------------------------------
 +This way is better to work with python to parse Kernel.
 +I will introduce them in example.
-Index: linux/Documentation/gtp/quickstart.txt
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux/Documentation/gtp/quickstart.txt 2012-03-11 18:32:05.037712658 +0800
+--- /dev/null
++++ b/Documentation/gtp/quickstart.txt
 @@ -0,0 +1,250 @@
 +              Linux Kernel GDB tracepoint module (KGTP) quick start
 +              =====================================================
@@ -1794,10 +1790,8 @@
 +
 +Now, you can begin to rock and roll your Linux kernel with KGTP and GDB.
 +Please go to HOWTO to get more message about howto use KGTP.
-Index: linux/arch/arm/include/asm/gtp.h
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux/arch/arm/include/asm/gtp.h   2012-03-11 18:32:05.047712661 +0800
+--- /dev/null
++++ b/arch/arm/include/asm/gtp.h
 @@ -0,0 +1,13 @@
 +#ifndef _ASM_ARM_GTP_H_
 +#define _ASM_ARM_GTP_H_
@@ -1812,10 +1806,8 @@
 +#define GTP_REG_BIN_SIZE      168
 +
 +#endif
-Index: linux/arch/mips/include/asm/gtp.h
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux/arch/mips/include/asm/gtp.h  2012-03-11 18:32:05.047712661 +0800
+--- /dev/null
++++ b/arch/mips/include/asm/gtp.h
 @@ -0,0 +1,18 @@
 +#ifndef _ASM_MIPS_GTP_H_
 +#define _ASM_MIPS_GTP_H_
@@ -1835,10 +1827,8 @@
 +#endif
 +
 +#endif
-Index: linux/arch/x86/include/asm/gtp.h
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux/arch/x86/include/asm/gtp.h   2012-03-11 18:32:05.047712661 +0800
+--- /dev/null
++++ b/arch/x86/include/asm/gtp.h
 @@ -0,0 +1,18 @@
 +#ifndef _ASM_X86_GTP_H_
 +#define _ASM_X86_GTP_H_
@@ -1858,11 +1848,9 @@
 +#endif
 +
 +#endif
-Index: linux/include/linux/perf_event.h
-===================================================================
---- linux.orig/include/linux/perf_event.h 2012-03-06 16:42:02.557693303 +0800
-+++ linux/include/linux/perf_event.h   2012-03-11 18:32:05.057712663 +0800
-@@ -1146,9 +1146,12 @@
+--- a/include/linux/perf_event.h
++++ b/include/linux/perf_event.h
+@@ -1146,9 +1146,12 @@ extern void perf_output_copy(struct perf
                             const void *buf, unsigned int len);
  extern int perf_swevent_get_recursion_context(void);
  extern void perf_swevent_put_recursion_context(int rctx);
@@ -1875,11 +1863,9 @@
  #else
  static inline void
  perf_event_task_sched_in(struct task_struct *prev,
-Index: linux/kernel/events/core.c
-===================================================================
---- linux.orig/kernel/events/core.c    2012-03-06 16:41:37.997693395 +0800
-+++ linux/kernel/events/core.c 2012-03-11 18:32:05.077712660 +0800
-@@ -1235,7 +1235,7 @@
+--- a/kernel/events/core.c
++++ b/kernel/events/core.c
+@@ -1235,7 +1235,7 @@ retry:
  /*
   * Cross CPU call to disable a performance event
   */
@@ -1888,7 +1874,7 @@
  {
        struct perf_event *event = info;
        struct perf_event_context *ctx = event->ctx;
-@@ -1272,6 +1272,7 @@
+@@ -1272,6 +1272,7 @@ static int __perf_event_disable(void *in

        return 0;
  }
@@ -1896,7 +1882,7 @@

  /*
   * Disable a event.
-@@ -1683,7 +1684,7 @@
+@@ -1683,7 +1684,7 @@ static void __perf_event_mark_enabled(st
  /*
   * Cross CPU call to enable a performance event
   */
@@ -1905,7 +1891,7 @@
  {
        struct perf_event *event = info;
        struct perf_event_context *ctx = event->ctx;
-@@ -1747,6 +1748,7 @@
+@@ -1747,6 +1748,7 @@ unlock:

        return 0;
  }
@@ -1913,7 +1899,7 @@

  /*
   * Enable a event.
-@@ -3065,6 +3067,14 @@
+@@ -3065,6 +3067,14 @@ static void perf_event_reset(struct perf
        perf_event_update_userpage(event);
  }

@@ -1928,11 +1914,9 @@
  /*
   * Holding the top-level event's child_mutex means that any
   * descendant process that has inherited this event will block
-Index: linux/lib/Kconfig.debug
-===================================================================
---- linux.orig/lib/Kconfig.debug       2012-03-06 16:42:06.587693289 +0800
-+++ linux/lib/Kconfig.debug    2012-03-11 18:32:05.087712658 +0800
-@@ -1268,6 +1268,16 @@
+--- a/lib/Kconfig.debug
++++ b/lib/Kconfig.debug
+@@ -1268,6 +1268,16 @@ config ASYNC_RAID6_TEST

          If unsure, say N.

@@ -1949,11 +1933,9 @@
  source "samples/Kconfig"

  source "lib/Kconfig.kgdb"
-Index: linux/lib/Makefile
-===================================================================
---- linux.orig/lib/Makefile    2012-03-06 16:42:06.597693289 +0800
-+++ linux/lib/Makefile 2012-03-11 18:32:05.107712660 +0800
-@@ -123,6 +123,8 @@
+--- a/lib/Makefile
++++ b/lib/Makefile
+@@ -123,6 +123,8 @@ obj-$(CONFIG_SIGNATURE) += digsig.o

  obj-$(CONFIG_CLZ_TAB) += clz_tab.o

@@ -1962,17 +1944,15 @@
  hostprogs-y   := gen_crc32table
  clean-files   := crc32table.h

-@@ -133,3 +135,5 @@
+@@ -133,3 +135,5 @@ quiet_cmd_crc32 = GEN     $@

  $(obj)/crc32table.h: $(obj)/gen_crc32table
        $(call cmd,crc32)
 +
 +gtp.o: gtp_rb.c
-Index: linux/lib/gtp.c
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux/lib/gtp.c    2012-03-11 19:03:33.137719710 +0800
-@@ -0,0 +1,8862 @@
+--- /dev/null
++++ b/lib/gtp.c
+@@ -0,0 +1,8867 @@
 +/*
 + * Kernel GDB tracepoint module.
 + *
@@ -2030,6 +2010,8 @@
 +#define GTP_DEBUG             KERN_WARNING
 +#endif
 +
++/* #define GTP_DEBUG_V */
++
 +#define GTP_RW_MAX            16384
 +#define GTP_RW_BUFP_MAX               (GTP_RW_MAX - 4 - gtp_rw_size)
 +
@@ -2924,38 +2906,38 @@
 +gtp_regs2ascii(struct pt_regs *regs, char *buf)
 +{
 +#ifdef CONFIG_X86_32
-+#ifdef GTP_DEBUG
-+      printk(GTP_DEBUG "gtp_regs2ascii: ax = 0x%x\n",
++#ifdef GTP_DEBUG_V
++      printk(GTP_DEBUG_V "gtp_regs2ascii: ax = 0x%x\n",
 +              (unsigned int) regs->ax);
-+      printk(GTP_DEBUG "gtp_regs2ascii: cx = 0x%x\n",
++      printk(GTP_DEBUG_V "gtp_regs2ascii: cx = 0x%x\n",
 +              (unsigned int) regs->cx);
-+      printk(GTP_DEBUG "gtp_regs2ascii: dx = 0x%x\n",
++      printk(GTP_DEBUG_V "gtp_regs2ascii: dx = 0x%x\n",
 +              (unsigned int) regs->dx);
-+      printk(GTP_DEBUG "gtp_regs2ascii: bx = 0x%x\n",
++      printk(GTP_DEBUG_V "gtp_regs2ascii: bx = 0x%x\n",
 +              (unsigned int) regs->bx);
-+      printk(GTP_DEBUG "gtp_regs2ascii: sp = 0x%x\n",
++      printk(GTP_DEBUG_V "gtp_regs2ascii: sp = 0x%x\n",
 +              (unsigned int) regs->sp);
-+      printk(GTP_DEBUG "gtp_regs2ascii: bp = 0x%x\n",
++      printk(GTP_DEBUG_V "gtp_regs2ascii: bp = 0x%x\n",
 +              (unsigned int) regs->bp);
-+      printk(GTP_DEBUG "gtp_regs2ascii: si = 0x%x\n",
++      printk(GTP_DEBUG_V "gtp_regs2ascii: si = 0x%x\n",
 +              (unsigned int) regs->si);
-+      printk(GTP_DEBUG "gtp_regs2ascii: di = 0x%x\n",
++      printk(GTP_DEBUG_V "gtp_regs2ascii: di = 0x%x\n",
 +              (unsigned int) regs->di);
-+      printk(GTP_DEBUG "gtp_regs2ascii: ip = 0x%x\n",
++      printk(GTP_DEBUG_V "gtp_regs2ascii: ip = 0x%x\n",
 +              (unsigned int) regs->ip);
-+      printk(GTP_DEBUG "gtp_regs2ascii: flags = 0x%x\n",
++      printk(GTP_DEBUG_V "gtp_regs2ascii: flags = 0x%x\n",
 +              (unsigned int) regs->flags);
-+      printk(GTP_DEBUG "gtp_regs2ascii: cs = 0x%x\n",
++      printk(GTP_DEBUG_V "gtp_regs2ascii: cs = 0x%x\n",
 +              (unsigned int) regs->cs);
-+      printk(GTP_DEBUG "gtp_regs2ascii: ss = 0x%x\n",
++      printk(GTP_DEBUG_V "gtp_regs2ascii: ss = 0x%x\n",
 +              (unsigned int) regs->ss);
-+      printk(GTP_DEBUG "gtp_regs2ascii: ds = 0x%x\n",
++      printk(GTP_DEBUG_V "gtp_regs2ascii: ds = 0x%x\n",
 +              (unsigned int) regs->ds);
-+      printk(GTP_DEBUG "gtp_regs2ascii: es = 0x%x\n",
++      printk(GTP_DEBUG_V "gtp_regs2ascii: es = 0x%x\n",
 +              (unsigned int) regs->es);
-+      printk(GTP_DEBUG "gtp_regs2ascii: fs = 0x%x\n",
++      printk(GTP_DEBUG_V "gtp_regs2ascii: fs = 0x%x\n",
 +              (unsigned int) regs->fs);
-+      printk(GTP_DEBUG "gtp_regs2ascii: gs = 0x%x\n",
++      printk(GTP_DEBUG_V "gtp_regs2ascii: gs = 0x%x\n",
 +              (unsigned int) regs->gs);
 +#endif
 +      sprintf(buf, "%08x", (unsigned int) swab32(regs->ax));
@@ -2991,27 +2973,27 @@
 +      sprintf(buf, "%08x", (unsigned int) swab32(regs->gs));
 +      buf += 8;
 +#else
-+#ifdef GTP_DEBUG
-+      printk(GTP_DEBUG "gtp_regs2ascii: ax = 0x%lx\n", regs->ax);
-+      printk(GTP_DEBUG "gtp_regs2ascii: bx = 0x%lx\n", regs->bx);
-+      printk(GTP_DEBUG "gtp_regs2ascii: cx = 0x%lx\n", regs->cx);
-+      printk(GTP_DEBUG "gtp_regs2ascii: dx = 0x%lx\n", regs->dx);
-+      printk(GTP_DEBUG "gtp_regs2ascii: si = 0x%lx\n", regs->si);
-+      printk(GTP_DEBUG "gtp_regs2ascii: di = 0x%lx\n", regs->di);
-+      printk(GTP_DEBUG "gtp_regs2ascii: bp = 0x%lx\n", regs->bp);
-+      printk(GTP_DEBUG "gtp_regs2ascii: sp = 0x%lx\n", regs->sp);
-+      printk(GTP_DEBUG "gtp_regs2ascii: r8 = 0x%lx\n", regs->r8);
-+      printk(GTP_DEBUG "gtp_regs2ascii: r9 = 0x%lx\n", regs->r9);
-+      printk(GTP_DEBUG "gtp_regs2ascii: r10 = 0x%lx\n", regs->r10);
-+      printk(GTP_DEBUG "gtp_regs2ascii: r11 = 0x%lx\n", regs->r11);
-+      printk(GTP_DEBUG "gtp_regs2ascii: r12 = 0x%lx\n", regs->r12);
-+      printk(GTP_DEBUG "gtp_regs2ascii: r13 = 0x%lx\n", regs->r13);
-+      printk(GTP_DEBUG "gtp_regs2ascii: r14 = 0x%lx\n", regs->r14);
-+      printk(GTP_DEBUG "gtp_regs2ascii: r15 = 0x%lx\n", regs->r15);
-+      printk(GTP_DEBUG "gtp_regs2ascii: ip = 0x%lx\n", regs->ip);
-+      printk(GTP_DEBUG "gtp_regs2ascii: flags = 0x%lx\n", regs->flags);
-+      printk(GTP_DEBUG "gtp_regs2ascii: cs = 0x%lx\n", regs->cs);
-+      printk(GTP_DEBUG "gtp_regs2ascii: ss = 0x%lx\n", regs->ss);
++#ifdef GTP_DEBUG_V
++      printk(GTP_DEBUG_V "gtp_regs2ascii: ax = 0x%lx\n", regs->ax);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: bx = 0x%lx\n", regs->bx);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: cx = 0x%lx\n", regs->cx);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: dx = 0x%lx\n", regs->dx);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: si = 0x%lx\n", regs->si);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: di = 0x%lx\n", regs->di);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: bp = 0x%lx\n", regs->bp);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: sp = 0x%lx\n", regs->sp);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: r8 = 0x%lx\n", regs->r8);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: r9 = 0x%lx\n", regs->r9);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: r10 = 0x%lx\n", regs->r10);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: r11 = 0x%lx\n", regs->r11);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: r12 = 0x%lx\n", regs->r12);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: r13 = 0x%lx\n", regs->r13);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: r14 = 0x%lx\n", regs->r14);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: r15 = 0x%lx\n", regs->r15);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: ip = 0x%lx\n", regs->ip);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: flags = 0x%lx\n", regs->flags);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: cs = 0x%lx\n", regs->cs);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: ss = 0x%lx\n", regs->ss);
 +#endif
 +      sprintf(buf, "%016lx", (unsigned long) swab64(regs->ax));
 +      buf += 16;
@@ -3063,38 +3045,38 @@
 +gtp_regs2bin(struct pt_regs *regs, char *buf)
 +{
 +#ifdef CONFIG_X86_32
-+#ifdef GTP_DEBUG
-+      printk(GTP_DEBUG "gtp_regs2ascii: ax = 0x%x\n",
++#ifdef GTP_DEBUG_V_V
++      printk(GTP_DEBUG_V_V "gtp_regs2ascii: ax = 0x%x\n",
 +              (unsigned int) regs->ax);
-+      printk(GTP_DEBUG "gtp_regs2ascii: cx = 0x%x\n",
++      printk(GTP_DEBUG_V_V "gtp_regs2ascii: cx = 0x%x\n",
 +              (unsigned int) regs->cx);
-+      printk(GTP_DEBUG "gtp_regs2ascii: dx = 0x%x\n",
++      printk(GTP_DEBUG_V_V "gtp_regs2ascii: dx = 0x%x\n",
 +              (unsigned int) regs->dx);
-+      printk(GTP_DEBUG "gtp_regs2ascii: bx = 0x%x\n",
++      printk(GTP_DEBUG_V_V "gtp_regs2ascii: bx = 0x%x\n",
 +              (unsigned int) regs->bx);
-+      printk(GTP_DEBUG "gtp_regs2ascii: sp = 0x%x\n",
++      printk(GTP_DEBUG_V_V "gtp_regs2ascii: sp = 0x%x\n",
 +              (unsigned int) regs->sp);
-+      printk(GTP_DEBUG "gtp_regs2ascii: bp = 0x%x\n",
++      printk(GTP_DEBUG_V_V "gtp_regs2ascii: bp = 0x%x\n",
 +              (unsigned int) regs->bp);
-+      printk(GTP_DEBUG "gtp_regs2ascii: si = 0x%x\n",
++      printk(GTP_DEBUG_V_V "gtp_regs2ascii: si = 0x%x\n",
 +              (unsigned int) regs->si);
-+      printk(GTP_DEBUG "gtp_regs2ascii: di = 0x%x\n",
++      printk(GTP_DEBUG_V_V "gtp_regs2ascii: di = 0x%x\n",
 +              (unsigned int) regs->di);
-+      printk(GTP_DEBUG "gtp_regs2ascii: ip = 0x%x\n",
++      printk(GTP_DEBUG_V_V "gtp_regs2ascii: ip = 0x%x\n",
 +              (unsigned int) regs->ip);
-+      printk(GTP_DEBUG "gtp_regs2ascii: flags = 0x%x\n",
++      printk(GTP_DEBUG_V_V "gtp_regs2ascii: flags = 0x%x\n",
 +              (unsigned int) regs->flags);
-+      printk(GTP_DEBUG "gtp_regs2ascii: cs = 0x%x\n",
++      printk(GTP_DEBUG_V_V "gtp_regs2ascii: cs = 0x%x\n",
 +              (unsigned int) regs->cs);
-+      printk(GTP_DEBUG "gtp_regs2ascii: ss = 0x%x\n",
++      printk(GTP_DEBUG_V_V "gtp_regs2ascii: ss = 0x%x\n",
 +              (unsigned int) regs->ss);
-+      printk(GTP_DEBUG "gtp_regs2ascii: ds = 0x%x\n",
++      printk(GTP_DEBUG_V_V "gtp_regs2ascii: ds = 0x%x\n",
 +              (unsigned int) regs->ds);
-+      printk(GTP_DEBUG "gtp_regs2ascii: es = 0x%x\n",
++      printk(GTP_DEBUG_V_V "gtp_regs2ascii: es = 0x%x\n",
 +              (unsigned int) regs->es);
-+      printk(GTP_DEBUG "gtp_regs2ascii: fs = 0x%x\n",
++      printk(GTP_DEBUG_V_V "gtp_regs2ascii: fs = 0x%x\n",
 +              (unsigned int) regs->fs);
-+      printk(GTP_DEBUG "gtp_regs2ascii: gs = 0x%x\n",
++      printk(GTP_DEBUG_V_V "gtp_regs2ascii: gs = 0x%x\n",
 +              (unsigned int) regs->gs);
 +#endif
 +      memcpy(buf, &regs->ax, 4);
@@ -3130,27 +3112,27 @@
 +      memcpy(buf, &regs->gs, 4);
 +      buf += 4;
 +#else
-+#ifdef GTP_DEBUG
-+      printk(GTP_DEBUG "gtp_regs2ascii: ax = 0x%lx\n", regs->ax);
-+      printk(GTP_DEBUG "gtp_regs2ascii: bx = 0x%lx\n", regs->bx);
-+      printk(GTP_DEBUG "gtp_regs2ascii: cx = 0x%lx\n", regs->cx);
-+      printk(GTP_DEBUG "gtp_regs2ascii: dx = 0x%lx\n", regs->dx);
-+      printk(GTP_DEBUG "gtp_regs2ascii: si = 0x%lx\n", regs->si);
-+      printk(GTP_DEBUG "gtp_regs2ascii: di = 0x%lx\n", regs->di);
-+      printk(GTP_DEBUG "gtp_regs2ascii: bp = 0x%lx\n", regs->bp);
-+      printk(GTP_DEBUG "gtp_regs2ascii: sp = 0x%lx\n", regs->sp);
-+      printk(GTP_DEBUG "gtp_regs2ascii: r8 = 0x%lx\n", regs->r8);
-+      printk(GTP_DEBUG "gtp_regs2ascii: r9 = 0x%lx\n", regs->r9);
-+      printk(GTP_DEBUG "gtp_regs2ascii: r10 = 0x%lx\n", regs->r10);
-+      printk(GTP_DEBUG "gtp_regs2ascii: r11 = 0x%lx\n", regs->r11);
-+      printk(GTP_DEBUG "gtp_regs2ascii: r12 = 0x%lx\n", regs->r12);
-+      printk(GTP_DEBUG "gtp_regs2ascii: r13 = 0x%lx\n", regs->r13);
-+      printk(GTP_DEBUG "gtp_regs2ascii: r14 = 0x%lx\n", regs->r14);
-+      printk(GTP_DEBUG "gtp_regs2ascii: r15 = 0x%lx\n", regs->r15);
-+      printk(GTP_DEBUG "gtp_regs2ascii: ip = 0x%lx\n", regs->ip);
-+      printk(GTP_DEBUG "gtp_regs2ascii: flags = 0x%lx\n", regs->flags);
-+      printk(GTP_DEBUG "gtp_regs2ascii: cs = 0x%lx\n", regs->cs);
-+      printk(GTP_DEBUG "gtp_regs2ascii: ss = 0x%lx\n", regs->ss);
++#ifdef GTP_DEBUG_V
++      printk(GTP_DEBUG_V "gtp_regs2ascii: ax = 0x%lx\n", regs->ax);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: bx = 0x%lx\n", regs->bx);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: cx = 0x%lx\n", regs->cx);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: dx = 0x%lx\n", regs->dx);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: si = 0x%lx\n", regs->si);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: di = 0x%lx\n", regs->di);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: bp = 0x%lx\n", regs->bp);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: sp = 0x%lx\n", regs->sp);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: r8 = 0x%lx\n", regs->r8);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: r9 = 0x%lx\n", regs->r9);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: r10 = 0x%lx\n", regs->r10);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: r11 = 0x%lx\n", regs->r11);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: r12 = 0x%lx\n", regs->r12);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: r13 = 0x%lx\n", regs->r13);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: r14 = 0x%lx\n", regs->r14);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: r15 = 0x%lx\n", regs->r15);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: ip = 0x%lx\n", regs->ip);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: flags = 0x%lx\n", regs->flags);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: cs = 0x%lx\n", regs->cs);
++      printk(GTP_DEBUG_V "gtp_regs2ascii: ss = 0x%lx\n", regs->ss);
 +#endif
 +      memcpy(buf, &regs->ax, 8);
 +      buf += 8;
@@ -3244,22 +3226,22 @@
 +static void
 +gtp_regs2ascii(struct pt_regs *regs, char *buf)
 +{
-+#ifdef GTP_DEBUG
++#ifdef GTP_DEBUG_V
 +      {
 +              int     i;
 +
 +              for (i = 0; i < 32; i++)
-+                      printk(GTP_DEBUG "gtp_gdbrsp_g: r%d = 0x%lx\n", i,
++                      printk(GTP_DEBUG_V "gtp_gdbrsp_g: r%d = 0x%lx\n", i,
 +                             regs->regs[i]);
 +      }
-+      printk(GTP_DEBUG "gtp_gdbrsp_g: status = 0x%lx\n",
++      printk(GTP_DEBUG_V "gtp_gdbrsp_g: status = 0x%lx\n",
 +             regs->cp0_status);
-+      printk(GTP_DEBUG "gtp_gdbrsp_g: lo = 0x%lx\n", regs->lo);
-+      printk(GTP_DEBUG "gtp_gdbrsp_g: hi = 0x%lx\n", regs->hi);
-+      printk(GTP_DEBUG "gtp_gdbrsp_g: badvaddr = 0x%lx\n",
++      printk(GTP_DEBUG_V "gtp_gdbrsp_g: lo = 0x%lx\n", regs->lo);
++      printk(GTP_DEBUG_V "gtp_gdbrsp_g: hi = 0x%lx\n", regs->hi);
++      printk(GTP_DEBUG_V "gtp_gdbrsp_g: badvaddr = 0x%lx\n",
 +             regs->cp0_badvaddr);
-+      printk(GTP_DEBUG "gtp_gdbrsp_g: cause = 0x%lx\n", regs->cp0_cause);
-+      printk(GTP_DEBUG "gtp_gdbrsp_g: pc = 0x%lx\n", regs->cp0_epc);
++      printk(GTP_DEBUG_V "gtp_gdbrsp_g: cause = 0x%lx\n", regs->cp0_cause);
++      printk(GTP_DEBUG_V "gtp_gdbrsp_g: pc = 0x%lx\n", regs->cp0_epc);
 +#endif
 +
 +#ifdef CONFIG_32BIT
@@ -3315,22 +3297,22 @@
 +static void
 +gtp_regs2bin(struct pt_regs *regs, char *buf)
 +{
-+#ifdef GTP_DEBUG
++#ifdef GTP_DEBUG_V
 +      {
 +              int     i;
 +
 +              for (i = 0; i < 32; i++)
-+                      printk(GTP_DEBUG "gtp_gdbrsp_g: r%d = 0x%lx\n", i,
++                      printk(GTP_DEBUG_V "gtp_gdbrsp_g: r%d = 0x%lx\n", i,
 +                             regs->regs[i]);
 +      }
-+      printk(GTP_DEBUG "gtp_gdbrsp_g: status = 0x%lx\n",
++      printk(GTP_DEBUG_V "gtp_gdbrsp_g: status = 0x%lx\n",
 +             regs->cp0_status);
-+      printk(GTP_DEBUG "gtp_gdbrsp_g: lo = 0x%lx\n", regs->lo);
-+      printk(GTP_DEBUG "gtp_gdbrsp_g: hi = 0x%lx\n", regs->hi);
-+      printk(GTP_DEBUG "gtp_gdbrsp_g: badvaddr = 0x%lx\n",
++      printk(GTP_DEBUG_V "gtp_gdbrsp_g: lo = 0x%lx\n", regs->lo);
++      printk(GTP_DEBUG_V "gtp_gdbrsp_g: hi = 0x%lx\n", regs->hi);
++      printk(GTP_DEBUG_V "gtp_gdbrsp_g: badvaddr = 0x%lx\n",
 +             regs->cp0_badvaddr);
-+      printk(GTP_DEBUG "gtp_gdbrsp_g: cause = 0x%lx\n", regs->cp0_cause);
-+      printk(GTP_DEBUG "gtp_gdbrsp_g: pc = 0x%lx\n", regs->cp0_epc);
++      printk(GTP_DEBUG_V "gtp_gdbrsp_g: cause = 0x%lx\n", regs->cp0_cause);
++      printk(GTP_DEBUG_V "gtp_gdbrsp_g: pc = 0x%lx\n", regs->cp0_epc);
 +#endif
 +
 +#ifdef CONFIG_32BIT
@@ -3386,8 +3368,8 @@
 +      int     i;
 +
 +      for (i = 0; i < 16; i++) {
-+#ifdef GTP_DEBUG
-+              printk(GTP_DEBUG "gtp_gdbrsp_g: r%d = 0x%lx\n",
++#ifdef GTP_DEBUG_V
++              printk(GTP_DEBUG_V "gtp_gdbrsp_g: r%d = 0x%lx\n",
 +                     i, regs->uregs[i]);
 +#endif
 +              sprintf(buf, "%08lx", (unsigned long) SWAB(regs->uregs[i]));
@@ -3398,8 +3380,8 @@
 +      memset(buf, '0', 200);
 +      buf += 200;
 +
-+#ifdef GTP_DEBUG
-+      printk(GTP_DEBUG "gtp_gdbrsp_g: cpsr = 0x%lx\n", regs->uregs[16]);
++#ifdef GTP_DEBUG_V
++      printk(GTP_DEBUG_V "gtp_gdbrsp_g: cpsr = 0x%lx\n", regs->uregs[16]);
 +#endif
 +      sprintf(buf, "%08lx",
 +               (unsigned long) SWAB(regs->uregs[16]));
@@ -3413,8 +3395,8 @@
 +      int     i;
 +
 +      for (i = 0; i < 16; i++) {
-+#ifdef GTP_DEBUG
-+              printk(GTP_DEBUG "gtp_gdbrsp_g: r%d = 0x%lx\n",
++#ifdef GTP_DEBUG_V
++              printk(GTP_DEBUG_V "gtp_gdbrsp_g: r%d = 0x%lx\n",
 +                     i, regs->uregs[i]);
 +#endif
 +              memcpy(buf, &regs->uregs[i], 4);
@@ -3425,8 +3407,8 @@
 +      memset(buf, '\0', 100);
 +      buf += 100;
 +
-+#ifdef GTP_DEBUG
-+      printk(GTP_DEBUG "gtp_gdbrsp_g: cpsr = 0x%lx\n", regs->uregs[16]);
++#ifdef GTP_DEBUG_V
++      printk(GTP_DEBUG_V "gtp_gdbrsp_g: cpsr = 0x%lx\n", regs->uregs[16]);
 +#endif
 +      memcpy(buf, &regs->uregs[16], 4);
 +      buf += 4;
@@ -3939,8 +3921,8 @@
 +      fm->size = size;
 +      tmp += sizeof(struct gtp_frame_mem);
 +
-+#ifdef GTP_DEBUG
-+      printk(GTP_DEBUG "gtp_action_memory_read: id:%d addr:%p %p %u\n",
++#ifdef GTP_DEBUG_V
++      printk(GTP_DEBUG_V "gtp_action_memory_read: id:%d addr:%p %p %u\n",
 +             (int)gts->tpe->num, (void *)(CORE_ADDR)gts->tpe->addr,
 +             (void *)addr, (unsigned int)size);
 +#endif
@@ -4038,8 +4020,8 @@
 +{
 +      struct gtp_var  *ret;
 +
-+#ifdef GTP_DEBUG
-+      printk(GTP_DEBUG "gtp_gtp_var_array_find: num:%u %u %u\n",
++#ifdef GTP_DEBUG_V
++      printk(GTP_DEBUG_V "gtp_gtp_var_array_find: num:%u %u %u\n",
 +             gtp_var_head, gtp_var_tail, num);
 +#endif
 +
@@ -4277,8 +4259,8 @@
 +              spin_lock(&gtp_var_lock);
 +
 +      while (1) {
-+#ifdef GTP_DEBUG
-+              printk(GTP_DEBUG "gtp_parse_x: cmd %x\n", ebuf[pc]);
++#ifdef GTP_DEBUG_V
++              printk(GTP_DEBUG_V "gtp_parse_x: cmd %x\n", ebuf[pc]);
 +#endif
 +
 +              switch (ebuf[pc++]) {
@@ -4873,8 +4855,8 @@
 +{
 +      struct action           *ae;
 +
-+#ifdef GTP_DEBUG
-+      printk(GTP_DEBUG "gtp_handler: tracepoint %d %p\n",
++#ifdef GTP_DEBUG_V
++      printk(GTP_DEBUG_V "gtp_handler: tracepoint %d %p\n",
 +             (int)gts->tpe->num, (void *)(CORE_ADDR)gts->tpe->addr);
 +#endif
 +
@@ -4965,8 +4947,8 @@
 +      add_preempt_count(HARDIRQ_OFFSET);
 +      tasklet_schedule(&gts->tpe->tasklet);
 +      sub_preempt_count(HARDIRQ_OFFSET);
-+#ifdef GTP_DEBUG
-+      printk(GTP_DEBUG "gtp_handler: tracepoint %d %p stop.\n",
++#ifdef GTP_DEBUG_V
++      printk(GTP_DEBUG_V "gtp_handler: tracepoint %d %p stop.\n",
 +              (int)gts->tpe->num, (void *)(CORE_ADDR)gts->tpe->addr);
 +#endif
 +      return;
@@ -5846,8 +5828,8 @@
 +
 +reswitch:
 +      while (pc < ae->u.exp.size) {
-+#ifdef GTP_DEBUG
-+              printk(GTP_DEBUG "gtp_check_x_simple: cmd %x\n", ebuf[pc]);
++#ifdef GTP_DEBUG_V
++              printk(GTP_DEBUG_V "gtp_check_x_simple: cmd %x\n", ebuf[pc]);
 +#endif
 +              switch (ebuf[pc++]) {
 +              /* add */
@@ -6185,6 +6167,15 @@
 +      goto release_out;
 +
 +out:
++#ifdef GTP_DEBUG
++      printk(GTP_DEBUG "sp_max = %d\n", sp_max);
++#endif
++      if (sp_max >= STACK_MAX) {
++              printk(KERN_WARNING "gtp_check_x_simple: stack overflow, "
++                                  "current %d, max %d.\n",
++                     sp_max, STACK_MAX);
++              goto release_out;
++      }
 +      if (glist) {
 +              pc = glist->ip;
 +              sp = glist->sp;
@@ -6193,12 +6184,6 @@
 +              kfree(gtmp);
 +              goto reswitch;
 +      }
-+      if (sp_max >= STACK_MAX) {
-+              printk(KERN_WARNING "gtp_check_x_simple: stack overflow, "
-+                                  "current %d, max %d.\n",
-+                     sp_max, STACK_MAX);
-+              goto release_out;
-+      }
 +      ret = 0;
 +#ifdef GTP_DEBUG
 +      printk(GTP_DEBUG "gtp_check_x_simple: Code is OK. sp_max is %d.\n",
@@ -10835,11 +10820,9 @@
 +
 +MODULE_AUTHOR("Hui Zhu <teawater@xxxxxxxxx>");
 +MODULE_LICENSE("GPL");
-Index: linux/lib/gtp_rb.c
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux/lib/gtp_rb.c 2012-03-11 18:32:05.117712662 +0800
-@@ -0,0 +1,495 @@
+--- /dev/null
++++ b/lib/gtp_rb.c
+@@ -0,0 +1,498 @@
 +/*
 + * Ring buffer of kernel GDB tracepoint module.
 + *
@@ -11029,7 +11012,10 @@
 +
 +      if (size > GTP_RB_DATA_MAX) {
 +              printk(KERN_WARNING "gtp_rb_alloc: The size %zu is too big"
-+                                  "for the KGTP ring buffer.\n", size);
++                                  "for the KGTP ring buffer.  "
++                                  "The max size that KGTP ring buffer "
++                                  "support is %lu (Need sub some size for "
++                                  "inside structure).\n", size, 
GTP_RB_DATA_MAX);
 +              return NULL;
 +      }
 +
@@ -11335,10 +11321,8 @@
 +
 +      GTP_RB_UNLOCK_IRQ(rb, flags);
 +}
-Index: linux/scripts/gtp/add-ons/pe.py
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux/scripts/gtp/add-ons/pe.py    2012-03-11 18:32:05.127712661 +0800
+--- /dev/null
++++ b/scripts/gtp/add-ons/pe.py
 @@ -0,0 +1,729 @@
 +#!/usr/bin/python
 +
@@ -12069,10 +12053,8 @@
 +      else:
 +              gtp.tstop()
 +      exit(0)
-Index: linux/scripts/gtp/getgtprsp.pl
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux/scripts/gtp/getgtprsp.pl     2012-03-11 18:32:05.127712661 +0800
+--- /dev/null
++++ b/scripts/gtp/getgtprsp.pl
 @@ -0,0 +1,137 @@
 +#!/usr/bin/perl
 +
@@ -12211,10 +12193,8 @@
 +              }
 +      }
 +}
-Index: linux/scripts/gtp/getmod.py
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux/scripts/gtp/getmod.py        2012-03-11 18:32:05.137712659 +0800
+--- /dev/null
++++ b/scripts/gtp/getmod.py
 @@ -0,0 +1,132 @@
 +#!/usr/bin/python
 +
=======================================
--- /trunk/gtp_rb.c     Mon Feb 13 16:02:45 2012
+++ /trunk/gtp_rb.c     Mon Mar 12 06:54:29 2012
@@ -187,7 +187,10 @@

        if (size > GTP_RB_DATA_MAX) {
                printk(KERN_WARNING "gtp_rb_alloc: The size %zu is too big"
-                                   "for the KGTP ring buffer.\n", size);
+                                   "for the KGTP ring buffer.  "
+                                   "The max size that KGTP ring buffer "
+                                   "support is %lu (Need sub some size for "
+                                   "inside structure).\n", size, 
GTP_RB_DATA_MAX);
                return NULL;
        }


Other related posts:

  • » [kgtp] r965 committed - Add new debug switch GTP_DEBUG_V (just for developer). - kgtp