解决龙芯2F使用oprofile-0.9.7无法采样应用程序函数的问题
2014-08-14 10:22
351 查看
原因:
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内核进行修改即可。
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内核进行修改即可。
相关文章推荐
- 应用程序无法正常启动0xc0000142) 关于win10周年版更新后无法正常使用vc6.0问题的解决方法
- C++6.0(应用程序无法正常启动0xc0000142) 关于win10周年版更新后无法正常使用vc6.0问题的解决方法
- (应用程序无法正常启动0xc0000142) 关于win10周年版更新后无法正常使用vc6.0问题的解决方法
- (应用程序无法正常启动0xc0000142) 关于win10周年版更新后无法正常使用vc6.0问题的解决方法
- 解决visual studio里面的scanf函数无法使用的问题
- (应用程序无法正常启动0xc0000142) 关于win10周年版更新后无法正常使用vc6.0问题的解决方法
- 解决设备应用程序无法申请到内存,导致设备无法正常工作的问题---优化设备虚拟内存使用
- Windows下游戏程序使用32位的dll文件-解决“应用程序无法正常启动0xc000007b”问题
- sublime text3在交互时解决input()函数无法使用的问题
- (转)解决AJAX中使用UpdatePanel后再用Response.Write();等无法弹出对话框问题 3法
- ASP.NET2.0中"无法显示 XML 页。 使用 XSL 样式表无法查看 XML 输入。"问题的解决
- 使用installshild解决某些安装文件无法在win2003上安装的问题
- 解决PING指令无法正常使用问题
- IE7.0下应用程序无法导出Excel文件的问题及解决
- 如何解决更改解决服务器IP,导致应用程序无法访问SQL SERVER的问题?
- 解决开启瑞星防火墙后网上邻居无法访问、共享打印机无法使用问题
- 使用startx无法进入图形界面的问题终于解决
- 解决迅雷无法使用右键下载的问题
- web应用程序bin目录下的dll无法加载问题解决方法