linux调试

总结一下我调试linux的几种常用手段。

1.printk。经典的方法,有时候最笨的往往是最有效的。

2.打开oops。得出有效信息然后对照相应的C代码调试。

3.coredump。只能调试应用程序,因为coredump的潜规则是:linux内核是稳定的,并由内核产生。

4.打桩。对相应的函数用宏重新定义,或者在结构体中增加相应的调试成员,然后在合适的地方有效利用此成员。比如重构malloc等。

5.缓冲区buffer.这是听我司一位高手讲座时学到的,比如skb一秒钟可能会打很多,但skb出错的话就最后一个包,我们可以设一个缓冲区为100,这样在出错时自动触发打印出最后100个。

调试注意细则:

1.细心。仔细观察出错时的现象,尽可能不要放过任何线索。包括测试的环境及信息。这个说起来容易,不同的人看同一个现象所得出的信息绝对是千差W别的。

2.充分了解linux内核所提供的信息。比如proc下面就有很多有价值的东西。比如内存泄露的/proc/meminfo /proc/slabinfo ps等。

你可能感兴趣的:(C++,c,linux,C#)