lin
2025-07-31 065ea569db06206874bbfa18eb25ff6121aec09b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
menu "Kernel hacking"
 
source "lib/Kconfig.debug"
 
config DEBUG_DECOMPRESS_KERNEL
   bool "Using serial port during decompressing kernel"
   depends on DEBUG_KERNEL
   default n
   help
     If you say Y here you will confirm the start and the end of
     decompressing Linux seeing "Uncompressing Linux... " and
     "Ok, booting the kernel.\n" on console.
 
config TEST_MISALIGNMENT_HANDLER
   bool "Run tests on the misalignment handler"
   depends on DEBUG_KERNEL
   default n
   help
     If you say Y here the kernel will execute a list of misaligned memory
     accesses to make sure the misalignment handler deals them with
     correctly.  If it does not, the kernel will throw a BUG.
 
config KPROBES
   bool "Kprobes"
   depends on DEBUG_KERNEL
   help
     Kprobes allows you to trap at almost any kernel address and
     execute a callback function.  register_kprobe() establishes
     a probepoint and specifies the callback.  Kprobes is useful
     for kernel debugging, non-intrusive instrumentation and testing.
     If in doubt, say "N".
 
config GDBSTUB
   bool "Remote GDB kernel debugging"
   depends on DEBUG_KERNEL && DEPRECATED
   select DEBUG_INFO
   select FRAME_POINTER
   help
     If you say Y here, it will be possible to remotely debug the kernel
     using gdb. This enlarges your kernel ELF image disk size by several
     megabytes and requires a machine with more than 16 MB, better 32 MB
     RAM to avoid excessive linking time. This is only useful for kernel
     hackers. If unsure, say N.
 
     This is deprecated in favour of KGDB and will be removed in a later
     version.
 
config GDBSTUB_IMMEDIATE
   bool "Break into GDB stub immediately"
   depends on GDBSTUB
   help
     If you say Y here, GDB stub will break into the program as soon as
     possible, leaving the program counter at the beginning of
     start_kernel() in init/main.c.
 
config GDBSTUB_ALLOW_SINGLE_STEP
   bool "Allow software single-stepping in GDB stub"
   depends on GDBSTUB && !SMP && !PREEMPT
   help
     Allow GDB stub to perform software single-stepping through the
     kernel.  This doesn't work very well on SMP or preemptible kernels as
     it uses temporary breakpoints to emulate single-stepping.
 
config GDB_CONSOLE
   bool "Console output to GDB"
   depends on GDBSTUB
   help
     If you are using GDB for remote debugging over a serial port and
     would like kernel messages to be formatted into GDB $O packets so
     that GDB prints them as program output, say 'Y'.
 
config GDBSTUB_DEBUGGING
   bool "Debug GDB stub by messages to serial port"
   depends on GDBSTUB
   help
     This causes debugging messages to be displayed at various points
     during execution of the GDB stub routines. Such messages will be
     displayed on ttyS0 if that isn't the GDB stub's port, or ttySM0
     otherwise.
 
config GDBSTUB_DEBUG_ENTRY
   bool "Debug GDB stub entry"
   depends on GDBSTUB_DEBUGGING
   help
     This option causes information to be displayed about entry to or exit
     from the main GDB stub routine.
 
config GDBSTUB_DEBUG_PROTOCOL
   bool "Debug GDB stub protocol"
   depends on GDBSTUB_DEBUGGING
   help
     This option causes information to be displayed about the GDB remote
     protocol messages generated exchanged with GDB.
 
config GDBSTUB_DEBUG_IO
   bool "Debug GDB stub I/O"
   depends on GDBSTUB_DEBUGGING
   help
     This option causes information to be displayed about GDB stub's
     low-level I/O.
 
config GDBSTUB_DEBUG_BREAKPOINT
   bool "Debug GDB stub breakpoint management"
   depends on GDBSTUB_DEBUGGING
   help
     This option causes information to be displayed about GDB stub's
     breakpoint management.
 
choice
   prompt "GDB stub port"
   default GDBSTUB_ON_TTYSM0
   depends on GDBSTUB
   help
     Select the serial port used for GDB-stub.
 
config GDBSTUB_ON_TTYSM0
   bool "/dev/ttySM0 [SIF0]"
   depends on MN10300_TTYSM0
   select GDBSTUB_ON_TTYSMx
 
config GDBSTUB_ON_TTYSM1
   bool "/dev/ttySM1 [SIF1]"
   depends on MN10300_TTYSM1
   select GDBSTUB_ON_TTYSMx
 
config GDBSTUB_ON_TTYSM2
   bool "/dev/ttySM2 [SIF2]"
   depends on MN10300_TTYSM2
   select GDBSTUB_ON_TTYSMx
 
config GDBSTUB_ON_TTYS0
   bool "/dev/ttyS0"
   select GDBSTUB_ON_TTYSx
 
config GDBSTUB_ON_TTYS1
   bool "/dev/ttyS1"
   select GDBSTUB_ON_TTYSx
 
endchoice
 
config GDBSTUB_ON_TTYSMx
   bool
   depends on GDBSTUB_ON_TTYSM0 || GDBSTUB_ON_TTYSM1 || GDBSTUB_ON_TTYSM2
   default y
 
config GDBSTUB_ON_TTYSx
   bool
   depends on GDBSTUB_ON_TTYS0 || GDBSTUB_ON_TTYS1
   default y
 
endmenu
 
config KERNEL_DEBUGGER
   def_bool y
   depends on GDBSTUB || KGDB