On Thu, 5 Mar 2009, George Kumar wrote: > In Linux I could use dump_stack() this to see how a function was called - > (In essence stack trace back ), > > Function() { > dump_stack(); > ..... > ... > } > What is the equivalent to dump_stack() in freebsd ? > > Is it kdb_backtrace() ? But for this I need to have kdb, ddb and kdb_trace > options in the config file ? is that correct ? For debugging purposes, kdb_backtrace() is the preferred interface, and as you point out, it depends on the kernel debugger being present. For more general (read: production) use, you can also capture, print, and generally manage stack traces using the stack(9) kernel interfaces. This requires "options STACK" to be in the kernel configuration, but this is the default in 7.x and 8.x as it is required for procstat's -k command line option to work (which allows userspace to print out kernel stacks without using the kernel debugger). You can print stack traces to the console, print them to sbuf's to be used elsewhere, etc. Keep in mind that you'll want to resolve the symbols (using a string conversion function) fairly soon after the stack is captured so that symbol names in kernel modules are resolved before there's an opportunity for the module to be unloaded. Robert N M Watson Computer Laboratory University of CambridgeReceived on Thu Mar 05 2009 - 17:32:29 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:43 UTC