On Mon, 2010-11-29 at 10:59 +0100, Andi Kleen wrote:
Hui Zhu <teawater@gmail.com> writes:
Now, there are a lot of ways to debug the Linux kernel with GDB, like
qemu, kgtp or kgdb and so on.
But the developer more like add a printk. It have a lot of reason, a big one is:
(gdb) p ret
$3 = <value optimized out>
And the code execution order is not right.
Really the right place to fix a lot of this would be gcc (and perhaps
gdb). I suspect with some careful work the debugging experience
for -O2 could be improved a lot.
I also believe the latest gccs already have improvements in this area.
The VTA branch was merged for GCC 4.5
http://gcc.gnu.org/wiki/Var_Tracking_Assignments
Which helps a lot with generating dwarf for previously "optimized out"
values. There were also a couple of papers on generating even better
debuginfo at the recent GCC Summit: http://gcc.gnu.org/wiki/summit2010
Jakub JelÃnek, Improving debug info for optimized away parameters
http://gcc.gnu.org/wiki/summit2010?action=AttachFile&do=get&target=jelinek.pdf
Alexandre Oliva, Consistent Views at Recommended Breakpoints
http://gcc.gnu.org/wiki/summit2010?action=AttachFile&do=get&target=oliva.pdf