kdb: Add message about CONFIG_DEBUG_RODATA on failure to install breakpoint

On x86, if CONFIG_DEBUG_RODATA is set, one cannot set breakpoints
via KDB.  Apparently this is a well-known problem, as at least one distribution
now ships with both KDB enabled and CONFIG_DEBUG_RODATA=y for security reasons.

This patch adds an printk message to the breakpoint failure case,
in order to provide suggestions about how to use the debugger.

Reported-by: Tim Bird <tim.bird@am.sony.com>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Acked-by: Tim Bird <tim.bird@am.sony.com>
This commit is contained in:
Jason Wessel 2011-09-21 13:07:47 -07:00
parent b8adde8dde
commit 1ba0c1720e
1 changed files with 7 additions and 0 deletions

View File

@ -153,6 +153,13 @@ static int _kdb_bp_install(struct pt_regs *regs, kdb_bp_t *bp)
} else { } else {
kdb_printf("%s: failed to set breakpoint at 0x%lx\n", kdb_printf("%s: failed to set breakpoint at 0x%lx\n",
__func__, bp->bp_addr); __func__, bp->bp_addr);
#ifdef CONFIG_DEBUG_RODATA
if (!bp->bp_type) {
kdb_printf("Software breakpoints are unavailable.\n"
" Change the kernel CONFIG_DEBUG_RODATA=n\n"
" OR use hw breaks: help bph\n");
}
#endif
return 1; return 1;
} }
return 0; return 0;