Add debugger entry points for X86
PATCH 2/31 Add debugger entry points for X86
This patch series adds an export which can be set by system debuggers to direct the hard lockup and soft lockup detector to trigger a breakpoint exception and enter a debugger if one is active. It is assumed that if someone sets this variable, then an breakpoint handler of some sort will be actively loaded or registered via the notify die handler chain.
This addition is extremely useful for debugging hard and soft lockups real time and quickly from a console debugger.
--- arch/x86/include/asm/kdebug.h | 5 +++++ 1 file changed, 5 insertions(+)
arch/x86/include/asm/kdebug.h +5 -0
@@ -3,6 +3,11 @@#include <linux/notifier.h> +static inline void arch_breakpoint (void ) +{ + asm(" int $3" ); +} +struct pt_regs ;/* Grossly misnamed. */
Signature · 1 line
1.8.3.1
H. Peter Anvin
reviewerQuoted 19 lines · Jeffrey Merkey
This patch series adds an export which can be set by system debuggers to direct the hard lockup and soft lockup detector to trigger a breakpoint exception and enter a debugger if one is active. It is assumed that if someone sets this variable, then an breakpoint handler of some sort will be actively loaded or registered via the notify die handler chain.
This addition is extremely useful for debugging hard and soft lockups real time and quickly from a console debugger.
Signed-off-by Jeffrey Merkey <[email protected]>--- arch/x86/include/asm/kdebug.h | 5 +++++ 1 file changed, 5 insertions(+)arch/x86/include/asm/kdebug.h +0
-0
arch/x86/include/asm/kdebug.h line 12
Quoted 10 lines
arch/x86/include/asm/kdebug.h +5
-0@@ -3,6 +3,11 @@#include <linux/notifier.h> +static inline void arch_breakpoint (void ) +{ + asm(" int $3" ); +} +struct pt_regs ;
Even though apparently gas changed "int $3" to "int3" the latter is actually a different instruction (with subtly different behavior) and this may very well be corrected in gas at a future date.
So please encode this as "int3". It should also be "asm volatile" since it has side effects unbeknownst to the compiler.
-hpa
Quoted 36 lines · H. Peter Anvin
Quoted 20 lines · Jeffrey Merkey
This patch series adds an export which can be set by system debuggers to direct the hard lockup and soft lockup detector to trigger a breakpoint exception and enter a debugger if one is active. It is assumed that if someone sets this variable, then an breakpoint handler of some sort will be actively loaded or registered via the notify die handler chain.
This addition is extremely useful for debugging hard and soft lockups real time and quickly from a console debugger.
Signed-off-by Jeffrey Merkey <[email protected]>--- arch/x86/include/asm/kdebug.h | 5 +++++ 1 file changed, 5 insertions(+)arch/x86/include/asm/kdebug.h +0
-0arch/x86/include/asm/kdebug.h line 12
Quoted 10 lines
arch/x86/include/asm/kdebug.h +5
-0@@ -3,6 +3,11 @@#include <linux/notifier.h> +static inline void arch_breakpoint (void ) +{ + asm(" int $3" ); +} +struct pt_regs ;Even though apparently gas changed "int $3" to "int3" the latter is actually a different instruction (with subtly different behavior) and this may very well be corrected in gas at a future date.
Quoted 6 lines
So please encode this as "int3". It should also be "asm volatile" since it has side effects unbeknownst to the compiler.
-hpa
Yes sir, I'll add that to the to do list and resubmit after I get all the comments back for all the changes. It may be important to note that the arch_kgdb_breakpoint also uses this same syntax and needs also to be fixed.
Jeff
H. Peter Anvin
reviewerQuoted 6 lines · Jeffrey Merkey
Yes sir, I'll add that to the to do list and resubmit after I get all the comments back for all the changes. It may be important to note that the
arch_kgdb_breakpointalso uses this same syntax and needs also to be fixed.
That would be a great addition to the patchset, then.
-hpa