首页 > 其他分享 >crash —— 如何获取某个系统调用入口代码?

crash —— 如何获取某个系统调用入口代码?

时间:2023-09-23 21:44:41浏览次数:48  
标签:__ write 调用 crash .. x64 入口 sys fs

通过sys命令可以获取当前系统的系统调用的信息:

crash> sys -c
NUM  SYSTEM CALL                FILE AND LINE NUMBER
  0  __x64_sys_read             ../fs/read_write.c: 621
  1  __x64_sys_write            ../fs/read_write.c: 646
  2  __x64_sys_open             ../fs/open.c: 1330
  3  __x64_sys_close            ../fs/open.c: 1437
  4  __x64_sys_newstat          ../fs/stat.c: 409
  5  __x64_sys_newfstat         ../fs/stat.c: 447
  6  __x64_sys_newlstat         ../fs/stat.c: 420
  7  __x64_sys_poll             ../fs/select.c: 1068
  8  __x64_sys_lseek            ../fs/read_write.c: 311
  9  __x64_sys_mmap             ../arch/x86/kernel/sys_x86_64.c: 86
 10  __x64_sys_mprotect         ../mm/mprotect.c: 815
 11  __x64_sys_munmap           ../mm/mmap.c: 2801
 12  __x64_sys_brk              ../mm/mmap.c: 170
 13  __x64_sys_rt_sigaction     ../kernel/signal.c: 4411
 ...

其中第1列表示系统调用号,第2列表示系统调用函数名,第3列表示对应的源码位置。

1 __x64_sys_write ../fs/read_write.c: 646为例:

write系统调用系统调用号是1,函数名__x64_sys_write,代码位置:

image

标签:__,write,调用,crash,..,x64,入口,sys,fs
From: https://www.cnblogs.com/pengdonglin137/p/17725110.html

相关文章

  • crash —— 查看内核配置
    在编译内核时如果配置了CONFIG_IKCONFIG,那么内核配置文件会被内嵌到内核中,那么可以通过crash工具将其输出出来。crash>sysconfig##Automaticallygeneratedfile;DONOTEDIT.#Linux/x864.18.0KernelConfiguration###Compiler:gcc(Ubuntu5.4.0-6ubuntu1~16.04.......
  • crash工具使用 —— 查看DMI信息
    在linux上一般通过dmidecode来获取DMI信息,crash也提供了获取DMI信息的命令,不过内容不会像dmidecode那么详细。crash>sys-iDMI_BIOS_VENDOR:SeaBIOSDMI_BIOS_VERSION:rel-1.14.0-0-g155821a1990b-prebuilt.qemu.orgDMI_BIOS_DATE:04/01/20......
  • crash工具使用 —— 省去输入struct或者union关键字
    使用crash工具根据地址查看结构体的内容时,有时需要输入struct或者union,多少有些繁琐,crash提供了*命令,直接跟在结构体或者联合体的名字的前面即可。示例:带structcrash>structkmem_cache-xffff893751f60800structkmem_cache{cpu_slab=0x5fc135c77b40,flags=......
  • crash工具学习 —— percpu相关的一些用法
    作者[email protected]查看percpu变量在每个cpu上的基地址crash>kmem-oPER-CPUOFFSETVALUES:CPU0:ffff88807f600000CPU1:ffff88807fa00000CPU2:ffff88813d600000CPU3:ffff88813da00000CPU4:ffff8881bd600000CPU5:ffff8881bda00000C......
  • 调用组件三部曲
    现有一个Footer的组件进行调用:<Footer></Footer>importFooterfrom'@/components/base/footer'components:{CereHeader,SiteNav,Footer}......
  • 使用qemu来dump虚拟机的内存,然后用crash来分析
    场景如果虚拟机没有开启kdump,或者卡死了,那么可以进入qemu的monitor模式将虚机的内存保存到文件中,然后使用crash工具进行分析。示例启动虚拟机,然后按ctrl+ac进入monitor,查看帮助(qemu)helpdump-guest-memorydump-guest-memory[-p][-d][-z|-l|-s|-w]filename[beginl......
  • WorkPlus构建统一APP入口,打造高效便捷的企业工作平台
    在现代企业中,统一APP入口对于提高工作效率和统一管理资源至关重要。WorkPlus作为领先品牌,致力于构建统一APP入口,打造高效便捷的企业工作平台。本文将着重介绍WorkPlus如何通过统一APP入口,帮助企业实现工作场景的无缝切换和资源整合,提升工作效率和协作能力。一、统一APP入口的重要性......
  • 企业微信机器人Javascript调用例子
    constkey=""constoWX_URL='https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key='+key;constsent_msg={'msgtype':'text','text':{......
  • 2023-09-22 uniapp之canvas调用api【uni.canvasToTempFilePath】报错返回:canvasToTemp
    canvasToTempFilePath:失败-失败画布为空一般的解决方案就是查看uni.canvasToTempFilePath的传参是否正确,一个是canvasId必须正确,另一个就是第二个参数为this;但事情显示没那么简单,这二者我都有填写,却仍旧报这个错,我把canvasid换成别的,最后我想起了一件事情,就是canvas为空是因为......
  • 记一个多线程调用同一个函数引发的数据冲突问题
    main.py负责接收请求,异步起线程调用高度离散的B(a、b、c...).py类文件,B(a、b、c...).py类文件在执行结束后会统一调用C.py文件中的一个函数规范处理结果,C.py本来的用途是解耦提高代码复用,但在高并发情况下出现了数据冲突的问题。即只有B(a).py才会产生的结果给写进了只会调用B(b).......