解决龙芯2F使用oprofile-0.9.7无法采样应用程序函数的问题
来源:互联网 发布:如何在mac上装office 编辑:程序博客网 时间:2024/05/16 08:21
原因:
oprofile-0.9.7中create_cookie()调用lookup_dcookie(),该函数定义为: 75 static inline int lookup_dcookie(cookie_tcookie, char * buf, size_t size) 76 { 77 ____returnsyscall(__NR_lookup_dcookie, 78 ________ (unsigned long)(cookie& 0xffffffff), 79 ________ (unsigned long)(cookie>> 32), buf, size); 80 }
该系统调用在2.6.27内核(DingXing2F用的是该版本内核)中进入arch/mips/kernel/scall64-o32.S的handle_sys,handle_sys根据__NR_lookup_dcookie查询syscall_table,最后跳到sys_lookup_dcookie中执行,而该函数默认传进来的地址为64位,而不是两个32位,导致lookup_dcookie失败,从而无法找到cookie对应的程序,因此无法采样应用程序的函数。
而2.6.36内核在scall64-o32.S的syscall_table中,__NR_lookup_dcookie对应的是sys32_lookup_dcookie,该函数将两个32位的地址按照小尾端格式拼成一个64位地址,再调用sys_lookup_dcookie,所以正确。
解决方法:
参考2.6.36内核进行修改即可。
0 0
- 解决龙芯2F使用oprofile-0.9.7无法采样应用程序函数的问题
- 龙芯3A oprofile无法采样内核函数的解决方法
- 解决龙芯3A Debian6.0.3 o32系统编译oprofile的libbfd动态链接问题
- oprofile 使用之二(run 使用事件采样)
- oprofile 使用之二(run 使用事件采样)
- oprofile抓不到采样数据问题和解决方法
- oprofile抓不到采样数据问题和解决方法
- Oprofile工具的使用
- oprofile的使用
- oprofile的使用
- oprofile 使用之三(run 使用时间采样)
- oprofile 使用之三(run 使用时间采样)
- 解决设备应用程序无法申请到内存,导致设备无法正常工作的问题---优化设备虚拟内存使用
- 解决飞鸽无法使用的问题
- 解决iostat 无法使用的问题
- 解决Google无法使用的问题
- 解决CCScale9Sprite类无法使用的问题
- 解决junit @RunWith无法使用的问题
- kvm-loongson3的virtio-blk和virtio-net支持
- 解决FATAL: Could not open 'kernel/arch/mips/oprofile/oprofile.ko': No such file or directory
- Memcache的安装和配置
- IOS APP 图标
- 【求助】华为OJ题 成都麻将胡牌规则
- 解决龙芯2F使用oprofile-0.9.7无法采样应用程序函数的问题
- linux make all error: make: *** Makefile: Input/output error. Stop.
- OSDI, SOSP与美国著名计算机系的调查(2008)
- 在龙芯1B上使用oprofile
- 龙芯1B云终端Pmon编译方法
- 龙芯1B云终端Kernel编译方法
- c练习题2:逆序排列数组
- 龙芯1B云终端Pmon,Kernel和文件系统的烧写和启动方法
- 内核编译出错:multiple target patterns