Kernel Debug Howto

Kristof Provost kp at FreeBSD.org
Sat Jul 25 09:11:37 UTC 2015


> On 25 Jul 2015, at 10:54, HeTak <hetakcoder at gmail.com> wrote:
> I have recently started some developments on FreeBSD net section.
Great!

> But I am kinda new to this field. My base interest is to first understand the
> implementation structure via tracing the code and so.
> 
> I have three major questions:
> 1-  how to debug changes made to FreeBSD kernel?
> (You know, till some levels, I can even use uprintf or so, but, for example
> inside radix.c (where I wanna understand how a route is checked to be
> unique and then inserted to the tree) I can't do such checks..)
dtrace can be quite useful to understand flows. You can grab stack traces
(i.e. figure out where things are called from), get function arguments, …

> 2- are there standards there for freebsd kernel developments of which I can
> follow so my job gets a bit simplified?
> (Any development guides or so?I prospect it to be some differences between
> system developments and normal coding, but I don't have an idea on how to
> get that).
There’s style(9) for coding style.
I’d also recommend "The Design and Implementation of the FreeBSD Operating System”
(the second edition).

> 3- what is the fastest way to apply changes to FreeBSD kernel?
> (For now, I just follow the normal build & install kernel & reboot.)
I pretty much do that. Depending on what you’re working on it might be easier to run it in a VM.
My work lately has been on the network code, so a VM is very convenient.
It’s not so useful if you’re working on drivers, of course.

Regards,
Kristof


More information about the freebsd-hackers mailing list