Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1591173
  • 博文数量: 77
  • 博客积分: 1205
  • 博客等级: 少尉
  • 技术积分: 4476
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-22 21:48
文章分类
文章存档

2018年(1)

2017年(1)

2015年(1)

2014年(18)

2013年(12)

2012年(44)

分类: IT职场

2014-07-22 10:59:37

今天收邮箱,发现一封询问《深入》一书中的一个技术细节的问题:
在阅读 <<深入linux设备驱动程序内核机制>> 第五章 195页,如下对应于linux 2.6.39 内核版本 函数 __do_softirq中,
发现  trace_softirq_entry 和 trace_softirq_exit 没有定义,
并且我也翻阅了其他较老以及较新的内核版本中 都没有发现 以上两个函数的定义(或者宏),请问您这是什么情况?

我的回复是:
你自己想办法解决了没有?
你可以在__do_softirq()函数前面定义一个同样的函数,比如:
void trace_softirq_entry(unsigned int nr)
{
        if (nr != 0)
                return;
        else
                nr++;
}

这样编译肯定会产生错误,类似error: redefinition of ‘trace_softirq_entry’.........................................

答案是该函数定义在include/trace/events/irq.h:117行(我用的3.10版本,其他版本可能略有不同):
DEFINE_EVENT(softirq, softirq_entry,

    TP_PROTO(unsigned int vec_nr),

    TP_ARGS(vec_nr)
);

这个答案并不重要,关键是你自己要想办法去解决

我猜测那位同学估计在源代码里搜了很久,最终也没有找到trace_softirq_entry的定义。但是你可以利用编译器来帮你完成啊,善于利用工具。独立思考,试着自己去解决问题,时间久了,会发现自己在遇到不同问题时会下意识地有对应的解决问题的思路。譬如语感。
阅读(12720) | 评论(6) | 转发(0) |
给主人留下些什么吧!~~

shangbaogen2015-02-05 12:42:38

MagicBoy2010:出版社在等第二版呢,他们都是专业的,对市场会有自己的判断。给这位兄弟的建议是:先下电子版看看 ;-)

老大,第二版估计啥时候能出版?一直在等着呢!

回复 | 举报

MagicBoy20102014-09-15 10:09:10

Trigger_Huang:就像您的《深入Linux设备驱动程序内核机制》一书一样,《debug hacks》已经买不到了纸质版的了。您可否建议出版社再印刷一次《深入Linux设备驱动程序内核机制》啊?

出版社在等第二版呢,他们都是专业的,对市场会有自己的判断。给这位兄弟的建议是:先下电子版看看 ;-)

回复 | 举报

Trigger_Huang2014-09-12 18:25:50

MagicBoy2010:我一直想写,还是时间的问题。这里先推荐一本书吧,书名一下想不起来了,大概是kernel debug或者是debug hack,应该是三个日本人写的

就像您的《深入Linux设备驱动程序内核机制》一书一样,《debug hacks》已经买不到了纸质版的了。您可否建议出版社再印刷一次《深入Linux设备驱动程序内核机制》啊?

回复 | 举报

fzmajian2014-08-01 19:36:44

姜还是老的辣!

MagicBoy20102014-08-01 08:01:33

Trigger_Huang:有道理…… 
感谢楼主授人以渔!
楼主可否开篇博文,专讲一些实用的kernel的技巧,比如阅读以及一些实用的 ARM&&X86 平台的调试工具(除printk以外)和方法?

我一直想写,还是时间的问题。这里先推荐一本书吧,书名一下想不起来了,大概是kernel debug或者是debug hack,应该是三个日本人写的

回复 | 举报