Put in remaining pages and wiki contents.
[ikiwiki.git] / docs / developer / C_Development_Under_DragonFly_BSD-Volume_3_Developing_the_DragonFly_BSD_Kernel.mdwn
1 # C Development Under DragonFly BSD Volume 3: Developing the DragonFly BSD Kernel \r
2 \r
3 <<TableOfContents>>\r
4 \r
5 ## Working on the kernel \r
6 \r
7
8 * Discuss how kernel development differs from userland development\r
9
10 * What subsystems do we provide\r
11
12 * Where are various files\r
13
14 * How to debug a kernel\r
15
16 * Overview, exercises and examples \r
17 \r
18 \r
19 \r
20 ### Section Notes \r
21 \r
22 ### Debugging threads in a kernel \r
23 \r
24 #### Notes from a thread which should be converted \r
25 \r
26 \r
27     \r
28     :Richard Nyberg wrote:\r
29     :> I often use gdb's proc command to switch between different processes\r
30     :> when debugging kernel cores. Now I want to debug a kernel thread\r
31     :> and it doesn't seem to work. Does anyone know how to switch to a\r
32     :> kernel thread? Maybe proc could be tweaked to work for threads too.\r
33     :>\r
34     :Replying to myself...\r
35     : \r
36     :I RTFS and it looked like proc should work with kernel threads.\r
37     :The problem seems to be that the threads td_pcb is invalid.\r
38     :\r
39     :Example:\r
40     \r
41     Matt wrote,\r
42     \r
43     Theoretically you can give the 'proc' command a thread address (not a\r
44     proc address, a thread address) and it should switch to it.\r
45     \r
46     But Joerg's recent upgrades of gdb seem to have broken some things\r
47     that had been working before.\r
48     \r
49     Pure kernel threads do not have PCBs in the conventional sense.  The\r
50     thread state is pushed onto the stack for the switch/restore instead.\r
51     Most of the pcb structure will be unused for a kernel thread.\r
52 \r