转自:http://blog.csdn.net/guowenyan001/article/details/12975221 一.分析Core文件 1.1 找到core文件目录,启动mycrash:mycrash 1.2 查看崩溃的堆栈信息:bt 1.3 反汇编崩溃点的代码,10行:dis -l extract_http_info+73 10 二.分析源文件hinfo.ko 2.1 查看源文件信息:objdump -S hinfo.ko > tmp 2.2 从tmp文件中查找1.3中的内容movb…
原文链接:https://blog.csdn.net/u014585564/article/details/68063269 最近项目中出现了一个问题,服务器端程序会突然崩溃退出,我们采取了coredump技术以找到崩溃原因,即确定进程退出时正在执行的函数是哪个,其状态如何. 如果系统开启了coredump,准确的说如果当前的shell环境开启了coredump,当前shell环境下的程序崩溃退出时,会把当时进程的栈的内存状态写入core文件.使用gdb可以查看这个core文件中保存的栈的状态,…
分析system_call中断处理过程 在MenuOS中添加上周所运用到的系统调用 即在Linuxkernel/menu/test.c文件中,添加代码如下: int Mkdir() { const char *ch = "test"; //创建的文件夹名称 mode_t mode = 0700; //创建的文件夹的权限 int flag = 0; //是否创建成功新的文件夹的标识符 flag = mkdir(ch,mode); //调用mkdir if(flag==0) //flag=…
这世界有10种人,一种人懂二进制,另一种人不懂二进制. --鲁迅 大家好,我是良许. 二进制文件是我们几乎每天都需要打交道的文件类型,但很少人知道他们的工作原理.这里所讲的二进制文件,是指一些可执行文件,包括你天天要使用的 Linux 命令,也是二进制文件的一种. Linux 系统给我们提供了非常多用于分析二进制文件的工具,不管你在 Linux 下从事的是何种工作,知道这些工具也会让你对你的系统更加了解. 在本文中,将介绍几种最常用的用于分析二进制文件的工具及命令,这些工具在大部分发行版里可以直…
系统调用:库函数封装了系统调用,通过库函数和系统调用打交道 用户态:低级别执行状态,代码的掌控范围会受到限制. 内核态:高执行级别,代码可移植性特权指令,访问任意物理地址 为什么划分级别:如果全部特权,系统容易崩溃...可以让系统更稳定, Linux 只有0和3级 如何区分:cs和eip 0x0000000以上地址空间仅有内核态可以访问,0x00000000——0xbffffff两种状态都可访问 中断处理是从用户态进入内核态的主要方式 切换时,保存用户态寄存器上下文,int指令在堆栈保存一些寄存…
---恢复内容开始--- 20135125陈智威 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” 实验要求: mykernel实验指导(操作系统是如何工作的) 运行并分析一个精简的操作系统内核,理解操作系统是如何工作的 使用实验楼的虚拟机打开shell cd LinuxKernel/linux-3.9.4 qemu -kernel arch/x86/boot/bzImage 然后cd…
张潇月<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.实验步骤 首先借助实验楼这个平台进入Linux系统,打开了Xfce终端将代码写入. 通过cd Code命令打开Code文件夹,将后面录入的代码放在文件夹中,便于下载代码,有利于后面的详细分析. 其中通过命令gcc  main.c命令来编译代码:通过gcc  -S  -o  main.s  main.c  –m32来反汇编代码.-m32代表的是32位系统.…
通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的(王海宁) 姓名:王海宁                             学号:20135103 课程:<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一,C语言代码(导出代码截图) 二,实验过程 (1) 创建一个命名c代码文件代码为 :vi 名字.c 将C代码转换为汇编代码在64位linux虚拟机中的代码为:gcc -S -o 文件名.c -…
PS.贺邦   原创作品转载请注明出处  <Linux内核分析>MOOC课程    http://mooc.study.163.com/course/USTC-1000029000 1.mykernel实验指导(操作系统是如何工作的) 使用实验楼虚拟机打开shell输入下列代码 1 cd LinuxKernel/linux-3.9.4 2 qemu -kernel arch/x86/boot/bzImage 可以看到初始的内核运行情况如下: 内核不停的执行my_start_kernel(),每…