自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

转载 linux程序分析工具介绍—ldd,nm

本文要介绍的ldd和nm是linux下,两个用来分析程序很实用的工具。ldd是用来分析程序运行时需要依赖的动态库的工具;nm是用来查看指定程序中的符号表相关内容的工具。下面通过例子,分别来介绍一下这两个工具:1. ldd, 先看下面的例子, 用ldd查看cs程序所依赖的动态库:$ ldd cslinux-gate.so.1 => (0xffffe000)libz.so.1 =>

2015-05-28 17:24:37 901

转载 使用emacs

Emacs 启动:直接打emacs, 如果有X-windows就会开视窗. 如果不想用X 的版本,就用 emacs -nw      (No windows)起动.上下移动   C-p 向上 (previous line) C-n向下(next line)左右移动   C-f 向右 (forward) C-b 向左 (backward)翻页  下一页 C-v (

2015-05-22 10:02:11 557

原创 gdb调试的简单回顾

1. 查看寄存器(gdb) i r(gdb) i r a                     # 查看所有寄存器(包括浮点、多媒体)(gdb) i r esp(gdb) i r pc2. 查看内存(gdb) x /wx 0x80040000    # 以16进制显示指定地址处的数据(gdb) x /8x $esp(gdb) x /16x $esp

2015-05-20 10:56:59 1159

转载 调试宏定义

调试宏定义的方法:1:通过gcc -E 产生预编译后的源代码,所有的预编译动作都已完成,如头文件的插入,宏定义的展开example:#include stdlib.h>#include stdio.h>#define MACRO1(x) (++(x))#define MACRO2(x) (MACRO1(x)+100)#define MACRO3(x) (MACRO2(x)+200)i

2015-05-20 10:05:45 1083

转载 gdb查看内存地址和栈中的值

gdb查看指定地址的内存地址的值:examine 简写 x-----使用gdb> help x 来查看使用方式     x/ (n,f,u为可选参数) n: 需要显示的内存单元个数,也就是从当前地址向后显示几个内存单元的内容,一个内存单元的大小由后面的u定义 f:显示格式               x(hex) 按十六进制格式显示变量。               d(decima

2015-05-20 10:01:16 10285

原创 gdb查看内存区和寄存器i

一、用gdb查看内存格式: x /nfu说明x 是 examine 的缩写n表示要显示的内存单元的个数f表示显示方式, 可取如下值x 按十六进制格式显示变量。d 按十进制格式显示变量。u 按十进制格式显示无符号整型。o 按八进制格式显示变量。t 按二进制格式显示变量。a 按十六进制格式显示变量。i 指令地址格式c 按字符格式显示变量。f 按浮

2015-05-20 09:45:34 12810

转载 连接器脚本

今天在看uboot引导Linux部分,发现要对链接脚本深入了解,才能知道各个目标文件的内存分布映像,下面是我看到的一些资料0. Contents 1. 概论2. 基本概念3. 脚本格式4. 简单例子5. 简单脚本命令6. 对符号的赋值7. SECTIONS命令8. MEMORY命令9. PHDRS命令10. VERSION命令11. 脚本内的表达式

2015-05-17 10:35:46 1394

原创 system.map文件详解

有时system.map文件可以帮助我们理解内核编译,它记录了所有代码的运行地址。对于系统的oop消息、或者通过gdb的调试消息,都需要根据该对照表,将内核熟悉的函数地址转化为用户熟悉的函数名称,便于用户进行故障定位、运行监控。system.map内容格式为:线性地址 类型 符号符号类型.小写字母表示局部; 大写字母表示全局(外部). A The symbol's

2015-05-17 09:47:09 4090

原创 墙上时钟时间 ,用户cpu时间 ,系统cpu时间

一、 墙上时钟时间 ,用户cpu时间 ,系统cpu时间定义与联系时钟时间(墙上时钟时间wall clock time):从进程从开始运行到结束,时钟走过的时间,这其中包含了进程在阻塞和等待状态的时间。用户CPU时间:就是用户的进程获得了CPU资源以后,在用户态执行的时间。系统CPU时间:用户进程获得了CPU资源以后,在内核态的执行时间。   进程的三种状态为阻塞、就绪、运行

2015-05-11 15:54:59 2409

转载 Linux系统编程之错误处理:perror,strerror和errno

1,在系统编程中错误通常通过函数返回值来表示,并通过特殊变量errno来描述。errno这个全局变量在头文件中声明如下:extern int errno;errno是一个由POSIX和ISO C标准定义的符号,看(用)起来就好像是一个整形变量。当系统调用或库函数发生错误的时候,比如以只读方式打开一个不存在的文件时,它的值将会被改变,根据errno值的不同,我们就可以知道自己的程序发生了什么

2015-05-11 14:30:50 1370

原创 gdb调试技巧

使用命令:display 变量名跟踪查看某个变量,每次停下来都显示它的值undisplay 跟踪显示号取消跟踪显示info(或i) breakpoints查看当前设置了哪些断点例如:disable breakpoints 3(gdb) enable 3(gdb) i breakpoints (gdb) delete breakpoints gdb) br

2015-05-06 19:45:50 909

转载 如何判断路由器是否有公网IP,以进行远程通信

1:检查是否路由器是否有公网IP:在浏览器上登陆路由器的设置网页,在运行状态下,检查路由器的WAN口地址,检查WAN口地址是否为公网IP,例如下图IP是:123.232.174.21.2:在百度上输入IP,百度一下查询到的IP地址,将百度上查询到的IP地址与路由器的WAN口IP地址进行比较,查一下两个IP地址是否一致,如果一致,则路由器有公网IP。例如一

2015-05-05 15:18:49 8241

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除