Page MenuHomeFreeBSD

D6158.diff
No OneTemporary

D6158.diff

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

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)

Event Timeline