- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ppt课件-abstractviewofsystemcomponents
Linux Debugging ls,ps,top,etc. printk() /proc i386提供的调试机制(断点,信号,单步执行) ptrace()系统调用 利用/proc/kcore SGI公司OSS项目的kgdb 嵌入式系统 printk() 在用户态,一般用printf()在可能出问题的地方打印出系统运行状态。在内核态,对应的函数是printk() 由函数printk()打印出来的信息都被系统守护神进程syslogd记录,存放在/var/log/messages 如果记录级别小于当前系统中定义的console_loglevel值(include/linux/kernel.h: 29-36),那么应该将信息打印在当前控制台上 报错,printk(proc_read_super: get root inode failed\n); 系统状态,printk(“jiffies- %ld.\n”, jiffies); 用/proc在用户态查看Linux内核状况 系统综合信息 procinfo 进程信息 /proc/self/status 内存信息/proc/meminfo /proc/sys更改系统配置,i.e. /proc/sys/fs/file-max /proc下文件、目录的意义,“proc下的文件.doc” /proc/sys下文件、目录的意义, “proc_sys下的文件.doc” /proc/pid/下文件、目录的意义 断点 断点的分类(指令断点和数据断点) 指令断点:运行到这条指令的时候中止程序运行 数据写:数据对这个线性地址写的时候中止程序运行 数据读或者写:指令没有执行,只要发生该地址的数据读或者写就中止程序的运行 int3自陷指令设置指令断点 调试寄存器DR0 – DR3设置指令断点和数据断点 调试寄存器 DR0 – DR3:保存断点相关的线性地址,包括指令断点和数据断点。使用线性地址 DR6:调试状态寄存器。产生异常时,处理器设置DR6的相应位 DR7:调试控制寄存器。分别对应四个断点寄存器的控制位,控制断点的启用及断点类型的选择 DR4、DR5由Intel公司保留 只有在特权级为0的时候才能访问这些寄存器 Linux调试处理 int 3单字节异常指令,系统进入异常处理状态。用do_int3()函数响应 int 2触发系统的debug调试异常,用do_debug()函数响应 task_struct{}的thread_struct{}有成员变量 unsigned long debugreg[8] Signal 举例说,进程出现浮点运算错误时,进程会接收到SIGFPE信号,在正常运行的状况下,会产生core dump,从而导致程序非正常退出; 在调试的情况下,调试器接收到SIGFPE信号,就可以在产生错误的代码处,检查当时浮点操作数的值是否正常 对于PTRACED进程(PF_PTRACED置位),被调试进程在收到任何信号的时候(SIGKILL除外),都会中止进程的运行,并且通知调试器进程(父进程);收到SIGKILL信号就导致被调试子进程的直接退出 单步运行 标志寄存器EFLAGS中的TF标志 当调用ptrace()的PTRACE_SINGLESTEP功能,ptrace()会将TF置位,并且让进程继续运行。当进程回到用户态并且执行了一条指令之后,CPU产生异常,被中断的指令把线性标志寄存器推入堆栈,然后再清除TF位,使单步中断处理程序可以正常的运行。 单步中断处理程序在do_debug()的函数过程中 ptrace()系统调用 通过使用Linux提供的ptrace()系统调用,可以让父进程监控子进程。 使用ptrace()系统调用,可以用来改变调试寄存器的内容,包括添加断点地址,改变断点控制寄存器的值。也可以改变子进程中ptrace成员的值,这是在进程运行过程中判断调试状态情况的最重要的成员 ptrace请求类型 “ptrace请求类型宏定义.doc” 用户空间的ptrace()调用方法 #include sys/ptrace.h long int ptrace(enum __ptrace_request request, pid_t pid, void * addr, void *data) request: ptrace的请求类型 pid: 作用的对象 addr和data:传入的地址和数据 对不同的请求类型来说,addr和data所代表的意义不尽相同。“ptrace调用方式.doc” ptrace()调用机制/流程 “ptrace调用简单流程.doc” /proc/kcore
您可能关注的文档
- ppt课件-§4.相互独立的随机变量.ppt
- ppt课件-1.3量词(接上讲).ppt
- ppt课件-1.9函数的连续性与间断点.ppt
- ppt课件-3.1二维随机变量.ppt
- ppt课件-3章3次元形状をモデリングする -ifo.kochi-tech .ppt
- ppt课件-11蝙蝠和雷达.ppt
- ppt课件-30爱迪生救妈妈.ppt
- ppt课件-ccnadiscovery2chapter04.ppt
- ppt课件-ch11生产过程控制.ppt
- ppt课件-computerorganization.ppt
- ppt课件-contentspage.ppt
- ppt课件-dma功能及其应用.ppt
- ppt课件-dn07路由协议原理及配置.ppt
- ppt课件-dsp–modelbasedapproach.ppt
- ppt课件-exceptionhandling.ppt
- ppt课件-explorationofhotpartonicmatteratlhc-alice.ppt
- ppt课件-formalprocessorverification.ppt
最近下载
- 化学品及企业标识-Giga.PDF VIP
- SH_T 3047-2021 石油化工企业职业安全卫生设计规范.docx VIP
- 110kv变电站电气一次系统设计.docx VIP
- 《泥结碎石田间道路建设技术规范》DB50T 1856-2025(重庆标准).pdf
- 一种电极石墨化的送电曲线.pdf VIP
- 《小米科技战略蓝图》课件.ppt VIP
- 《复盘+:把经验转化为能力》.pdf
- 2025中国建设银行福建省分行消防安全岗社会招聘2人笔试备考题库及答案解析.docx VIP
- 2025中国建设银行福建省分行消防安全岗社会招聘2人考试备考题库及答案解析.docx VIP
- 2022年考研数学二真题及参考答案.docx VIP
原创力文档


文档评论(0)