http://gmd20.blog.163.com/blog/static/168439232015475525227/             用systemtap跟踪打印动态链接库的所有c++函数调用过程================================================= 1. ltrace 的问题---------------用ltrace 可以打印所有的so文件调用了.但上次试过如果so是自己用dlopen来加载的.就是在elf结构里面没有对应的依赖项的情况…
week 8 实验:理解进程调度时机跟踪分析进程调度与进程切换的过程 1.环境搭建: rm menu -rf git clone https://github.com/megnning/menu.git cd menu ls make rootfs qemu -kernel ../linux-3.18.6/arch/x86/boot/bzImage -initrd ../rootfs.img -s -S gdb file ../linux-3.18.6/vmlinux target remote…
----------------------------------------------------------------------------------- 理解进程调度时机跟踪分析进程调度与进程切换的过程 ----------------------------------------------------------------------------------- 这次实验要理解进程调度时机跟踪分析进程调度与进程切换的过程.这是最后一次实验.我们要完毕这次实验,还是要对任务切换…
systemtap : 各种资源的使用限制由所生成的C代码中的宏来设置.这些值可在编译时由-D选项来重写.下面描述了部分挑选出来的宏: MAXNESTING 递归函数的最大调用层数,默认值是10. MAXSTRINGLEN 字符串的最大长度,默认值是128. MAXTRYLOCK 在声称可以出现死锁和跳出探测点前,等待全局变量锁的最大迭代次数,默认值是1000. MAXACTION 单个探测点内可以执行语句数的最大值,默认值是1000. MAXMAPENTRIES 数组在声明时没有显示指定大小时…
aa.stp: probe kernel .function ( "sys_sync" ) { printf ( "probfunc:%s fun:%s\n",execname(),ppfunc()); print_backtrace();print_ubacktrace();exit();} A: [root@localhost ~]# sync B: stap -v aa.stp -d /lib64/libc-2.5.so -d /bin/sync probfu…
1.[root@localhost ~]# rpm -qi  glibcName        : glibc                        Relocations: (not relocatable)Version     : 2.5                               Vendor: CentOSRelease     : 123.el5_11.1                  Build Date: Tue 27 Jan 2015 09:35:2…
一.原理分析 1.调度时机 背景不同类型的进程有不同的调度需求第一种分类I/O-bond:频繁的进行I/O:通常会花费很多时间等待I/O操作的完成CPU-bound:计算密集型:需要大量的CPU时间进行运算 第二种分批处理进程(batch process):不必与用户交互,通常在后台运行:不必很快响应.典型的批处理程序:编译程序.科学计算实时进程(real-time process):有实时需求,不应被低优先级的进程阻塞:响应时间要短.要稳定.典型的实时进程:视频/音频.机械控制等交互式进程(i…
作者:吴乐 山东师范大学 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的:通过对一个简单的可执行程序用gdb进行代码的跟踪,剖析linux内核是如何动态和静态装载和启动程序的,进而总结linux内核可执行程序加载的过程. 一.实验过程 1.编写一个简单的Exec的创建进程的函数 2.打开gdb,并设置好如下断点 3.开始跟踪,找到第一个断点. (主程序还未创建子进程) 4.继续在此断点处逐步跟踪 5.…
    (冒泡,选择,插入,希尔,快速,归并,堆排)周末加班学习C++,打算用C++写七大经典排序代码.发现3个月前自己写的七大经典排序代码(C Language)突然运行出错. Makefile内容 testmysort: testmysort.c mysortlib.c mysortlib.h # gcc testmysort.c mysortlib.c -o testmysort gcc $< mysortlib.c -o $@ ./$@ 直接make几次总是core dumped错误.…
场景:在程序开发过程中经常需要跟踪程序中sql语句的执行过程,在控制台打印出sql语句和对应的参数传递就能够更快的定位错误! 原文出处:http://www.cnblogs.com/beiyeren/p/4196134.html 这里所采用的日志框架为logback 1 不同版本的Mybitis对应不同的控制策略 1.1 myBatis3.0.6左右的版本时 打印sql的时候只需要配置如下属性: <logger name="java.sql.Connection" level=&…