From: Jason Wessel <jason.wessel@windriver.com>
To: Tim Bird <tim.bird@am.sony.com>
Cc: "kgdb-bugreport@lists.sourceforge.net"
<kgdb-bugreport@lists.sourceforge.net>,
linux kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] kdb: Add message about CONFIG_DEBUG_RODATA on failure to install breakpoint
Date: Tue, 20 Mar 2012 13:32:18 -0500 [thread overview]
Message-ID: <4F68CD32.3040202@windriver.com> (raw)
In-Reply-To: <4E7A4413.5000307@am.sony.com>
On 09/21/2011 03:07 PM, Tim Bird wrote:
> 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 just adds an extra printk message to the breakpoint failure case,
> in order to provide some useful diagnostics to the user.
>
The patch is definitely the right idea. I believe we should try and tell the whole story and only print the message for the type of breakpoint that fails. It is absolutely the case that you can still use kdb/kdb without recompiling the kernel.
I propose a slightly different implementation below.
---
Subject: [PATCH] kdb: Add message about CONFIG_DEBUG_RODATA on failure to install breakpoint
When the kernel config option CONFIG_DEBUG_RODATA=y is set on x86
software breakpoints are not available to KDB. The constraints to
debug kernel are often at odds with security protections for a kernel
and several OS distributions ship with both KDB enabled and
CONFIG_DEBUG_RODATA=y.
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>
---
kernel/debug/kdb/kdb_bp.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/kernel/debug/kdb/kdb_bp.c b/kernel/debug/kdb/kdb_bp.c
index 20059ef..8418c2f 100644
--- a/kernel/debug/kdb/kdb_bp.c
+++ b/kernel/debug/kdb/kdb_bp.c
@@ -153,7 +153,13 @@ static int _kdb_bp_install(struct pt_regs *regs, kdb_bp_t *bp)
} else {
kdb_printf("%s: failed to set breakpoint at 0x%lx\n",
__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 breakpoints: help bph\n");
+ }
+#endif
return 1;
}
return 0;
next prev parent reply other threads:[~2012-03-20 18:32 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-21 20:07 [PATCH] kdb: Add message about CONFIG_DEBUG_RODATA on failure to install breakpoint Tim Bird
2012-03-20 18:32 ` Jason Wessel [this message]
2012-03-20 21:31 ` Tim Bird
2012-03-20 21:55 ` Jason Wessel
2012-03-21 18:03 ` Jason Wessel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F68CD32.3040202@windriver.com \
--to=jason.wessel@windriver.com \
--cc=kgdb-bugreport@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=tim.bird@am.sony.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).