Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb: kgdb: gdb documentation fix kgdb,i386: use address that SP register points to in the exception frame sysrq, intel_fb: fix sysrq g collision
This commit is contained in:
Коммит
ade385e4d1
|
@ -281,7 +281,7 @@
|
||||||
seriously wrong while debugging, it will most often be the case
|
seriously wrong while debugging, it will most often be the case
|
||||||
that you want to enable gdb to be verbose about its target
|
that you want to enable gdb to be verbose about its target
|
||||||
communications. You do this prior to issuing the <constant>target
|
communications. You do this prior to issuing the <constant>target
|
||||||
remote</constant> command by typing in: <constant>set remote debug 1</constant>
|
remote</constant> command by typing in: <constant>set debug remote 1</constant>
|
||||||
</para>
|
</para>
|
||||||
</chapter>
|
</chapter>
|
||||||
<chapter id="KGDBTestSuite">
|
<chapter id="KGDBTestSuite">
|
||||||
|
|
|
@ -88,6 +88,7 @@ void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs)
|
||||||
gdb_regs[GDB_SS] = __KERNEL_DS;
|
gdb_regs[GDB_SS] = __KERNEL_DS;
|
||||||
gdb_regs[GDB_FS] = 0xFFFF;
|
gdb_regs[GDB_FS] = 0xFFFF;
|
||||||
gdb_regs[GDB_GS] = 0xFFFF;
|
gdb_regs[GDB_GS] = 0xFFFF;
|
||||||
|
gdb_regs[GDB_SP] = (int)®s->sp;
|
||||||
#else
|
#else
|
||||||
gdb_regs[GDB_R8] = regs->r8;
|
gdb_regs[GDB_R8] = regs->r8;
|
||||||
gdb_regs[GDB_R9] = regs->r9;
|
gdb_regs[GDB_R9] = regs->r9;
|
||||||
|
@ -100,8 +101,8 @@ void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs)
|
||||||
gdb_regs32[GDB_PS] = regs->flags;
|
gdb_regs32[GDB_PS] = regs->flags;
|
||||||
gdb_regs32[GDB_CS] = regs->cs;
|
gdb_regs32[GDB_CS] = regs->cs;
|
||||||
gdb_regs32[GDB_SS] = regs->ss;
|
gdb_regs32[GDB_SS] = regs->ss;
|
||||||
#endif
|
|
||||||
gdb_regs[GDB_SP] = regs->sp;
|
gdb_regs[GDB_SP] = regs->sp;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -406,7 +406,7 @@ static struct sysrq_key_op *sysrq_key_table[36] = {
|
||||||
&sysrq_showlocks_op, /* d */
|
&sysrq_showlocks_op, /* d */
|
||||||
&sysrq_term_op, /* e */
|
&sysrq_term_op, /* e */
|
||||||
&sysrq_moom_op, /* f */
|
&sysrq_moom_op, /* f */
|
||||||
/* g: May be registered by ppc for kgdb */
|
/* g: May be registered for the kernel debugger */
|
||||||
NULL, /* g */
|
NULL, /* g */
|
||||||
NULL, /* h - reserved for help */
|
NULL, /* h - reserved for help */
|
||||||
&sysrq_kill_op, /* i */
|
&sysrq_kill_op, /* i */
|
||||||
|
@ -431,7 +431,7 @@ static struct sysrq_key_op *sysrq_key_table[36] = {
|
||||||
&sysrq_sync_op, /* s */
|
&sysrq_sync_op, /* s */
|
||||||
&sysrq_showstate_op, /* t */
|
&sysrq_showstate_op, /* t */
|
||||||
&sysrq_mountro_op, /* u */
|
&sysrq_mountro_op, /* u */
|
||||||
/* v: May be registered at init time by SMP VOYAGER */
|
/* v: May be registered for frame buffer console restore */
|
||||||
NULL, /* v */
|
NULL, /* v */
|
||||||
&sysrq_showstate_blocked_op, /* w */
|
&sysrq_showstate_blocked_op, /* w */
|
||||||
/* x: May be registered on ppc/powerpc for xmon */
|
/* x: May be registered on ppc/powerpc for xmon */
|
||||||
|
|
|
@ -864,7 +864,7 @@ static void intelfb_sysrq(int dummy1, struct tty_struct *dummy3)
|
||||||
|
|
||||||
static struct sysrq_key_op sysrq_intelfb_restore_op = {
|
static struct sysrq_key_op sysrq_intelfb_restore_op = {
|
||||||
.handler = intelfb_sysrq,
|
.handler = intelfb_sysrq,
|
||||||
.help_msg = "force-fb(G)",
|
.help_msg = "force-fb(V)",
|
||||||
.action_msg = "Restore framebuffer console",
|
.action_msg = "Restore framebuffer console",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -898,7 +898,7 @@ int intelfb_probe(struct drm_device *dev)
|
||||||
ret = intelfb_single_fb_probe(dev);
|
ret = intelfb_single_fb_probe(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
register_sysrq_key('g', &sysrq_intelfb_restore_op);
|
register_sysrq_key('v', &sysrq_intelfb_restore_op);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1583,8 +1583,8 @@ static void sysrq_handle_gdb(int key, struct tty_struct *tty)
|
||||||
|
|
||||||
static struct sysrq_key_op sysrq_gdb_op = {
|
static struct sysrq_key_op sysrq_gdb_op = {
|
||||||
.handler = sysrq_handle_gdb,
|
.handler = sysrq_handle_gdb,
|
||||||
.help_msg = "Gdb",
|
.help_msg = "debug(G)",
|
||||||
.action_msg = "GDB",
|
.action_msg = "DEBUG",
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче