Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F142718994
D6158.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
D6158.diff
View Options
Index: sys/amd64/amd64/trap.c
===================================================================
--- sys/amd64/amd64/trap.c
+++ sys/amd64/amd64/trap.c
@@ -194,7 +194,7 @@
#ifdef KDB
if (kdb_active) {
- kdb_reenter();
+ kdb_reenter(true);
goto out;
}
#endif
Index: sys/arm/arm/db_interface.c
===================================================================
--- sys/arm/arm/db_interface.c
+++ sys/arm/arm/db_interface.c
@@ -324,7 +324,7 @@
db_branch_taken_fetch_reg, db_branch_taken_read_int);
if (ret != 0)
- kdb_reenter();
+ kdb_reenter(true);
return (new_pc);
}
Index: sys/arm/arm/trap-v6.c
===================================================================
--- sys/arm/arm/trap-v6.c
+++ sys/arm/arm/trap-v6.c
@@ -344,7 +344,7 @@
return;
#ifdef KDB
if (kdb_active) {
- kdb_reenter();
+ kdb_reenter(true);
goto out;
}
#endif
Index: sys/arm64/arm64/trap.c
===================================================================
--- sys/arm64/arm64/trap.c
+++ sys/arm64/arm64/trap.c
@@ -162,7 +162,7 @@
#ifdef KDB
if (kdb_active) {
- kdb_reenter();
+ kdb_reenter(true);
return;
}
#endif
Index: sys/ddb/db_access.c
===================================================================
--- sys/ddb/db_access.c
+++ sys/ddb/db_access.c
@@ -63,7 +63,7 @@
if (db_read_bytes(addr, size, data) != 0) {
db_printf("*** error reading from address %llx ***\n",
(long long)addr);
- kdb_reenter();
+ db_error(NULL);
}
value = 0;
@@ -102,6 +102,6 @@
if (db_write_bytes(addr, size, data) != 0) {
db_printf("*** error writing to address %llx ***\n",
(long long)addr);
- kdb_reenter();
+ db_error(NULL);
}
}
Index: sys/ddb/db_command.c
===================================================================
--- sys/ddb/db_command.c
+++ sys/ddb/db_command.c
@@ -517,7 +517,7 @@
if (s)
db_printf("%s", s);
db_flush_lex();
- kdb_reenter();
+ kdb_reenter(false);
}
static void
Index: sys/gdb/gdb_packet.c
===================================================================
--- sys/gdb/gdb_packet.c
+++ sys/gdb/gdb_packet.c
@@ -70,7 +70,7 @@
printf("The ddb backend could not be selected.\n");
else {
printf("using longjmp, hope it works!\n");
- kdb_reenter();
+ kdb_reenter(false);
}
}
return (c);
Index: sys/i386/i386/trap.c
===================================================================
--- sys/i386/i386/trap.c
+++ sys/i386/i386/trap.c
@@ -211,7 +211,7 @@
#ifdef KDB
if (kdb_active) {
- kdb_reenter();
+ kdb_reenter(true);
goto out;
}
#endif
Index: sys/kern/kern_synch.c
===================================================================
--- sys/kern/kern_synch.c
+++ sys/kern/kern_synch.c
@@ -384,8 +384,7 @@
kdb_switch(void)
{
thread_unlock(curthread);
- kdb_backtrace();
- kdb_reenter();
+ kdb_reenter(true);
panic("%s: did not reenter debugger", __func__);
}
Index: sys/kern/subr_kdb.c
===================================================================
--- sys/kern/subr_kdb.c
+++ sys/kern/subr_kdb.c
@@ -495,14 +495,15 @@
}
void
-kdb_reenter(void)
+kdb_reenter(bool print_trace)
{
if (!kdb_active || kdb_jmpbufp == NULL)
return;
-
- printf("KDB: reentering\n");
- kdb_backtrace();
+ if (print_trace) {
+ printf("KDB: reentering\n");
+ kdb_backtrace();
+ }
longjmp(kdb_jmpbufp, 1);
/* NOTREACHED */
}
Index: sys/riscv/riscv/trap.c
===================================================================
--- sys/riscv/riscv/trap.c
+++ sys/riscv/riscv/trap.c
@@ -172,7 +172,7 @@
#ifdef KDB
if (kdb_active) {
- kdb_reenter();
+ kdb_reenter(true);
return;
}
#endif
Index: sys/sparc64/sparc64/trap.c
===================================================================
--- sys/sparc64/sparc64/trap.c
+++ sys/sparc64/sparc64/trap.c
@@ -334,7 +334,7 @@
("trap: kernel trap isn't"));
if (kdb_active) {
- kdb_reenter();
+ kdb_reenter(true);
return;
}
Index: sys/sys/kdb.h
===================================================================
--- sys/sys/kdb.h
+++ sys/sys/kdb.h
@@ -77,7 +77,7 @@
void * kdb_jmpbuf(jmp_buf);
void kdb_panic(const char *);
void kdb_reboot(void);
-void kdb_reenter(void);
+void kdb_reenter(bool print_trace);
struct pcb *kdb_thr_ctx(struct thread *);
struct thread *kdb_thr_first(void);
struct thread *kdb_thr_from_pid(pid_t);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Jan 23, 3:41 PM (4 h, 32 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27887163
Default Alt Text
D6158.diff (4 KB)
Attached To
Mode
D6158: Stop DDB from printing unneeded stack traces on command line parsing errors
Attached
Detach File
Event Timeline
Log In to Comment