ltrace查看库调用

简介: ltrace - A library call tracer strace - trace system calls and signals -S  display system calls 显示系统调用 -t, -tt, -ttt  print absolute times...

ltrace - A library call tracer

strace - trace system calls and signals

-S  display system calls 显示系统调用

-t, -tt, -ttt  print absolute timestamps 打印绝对时间戳

-T  show the time spent inside each call 输出每个调用过程的时间开销

下面是常见的几种应用场景

1、最基本应用,不带任何参数

[guest@localhost tmp]$ ltrace ./a.out

__libc_start_main(0x80484aa, 1, 0xbfc07744, 0x8048550, 0x8048540 <unfinished ...>

printf("no1:%d \t no2:%d \t diff:%d\n", 10, 6, 4no1:10   no2:6   diff:4 ) = 24

printf("no1:%d \t no2:%d \t diff:%d\n", 9, 7, 2no1:9     no2:7   diff:2 ) = 23

printf("no1:%d \t no2:%d \t diff:%d\n", 8, 8, 0no1:8     no2:8   diff:0 ) = 23

--- SIGFPE (Floating point exception) ---

+++ killed by SIGFPE +++

2、输出调用时间开销

[guest@localhost tmp]$ ltrace -T ./a.out

__libc_start_main(0x80484aa, 1, 0xbf81d394, 0x8048550, 0x8048540 <unfinished ...>

printf("no1:%d \t no2:%d \t diff:%d\n", 10, 6, 4no1:10   no2:6   diff:4 ) = 24 <0.000972>

printf("no1:%d \t no2:%d \t diff:%d\n", 9, 7, 2no1:9     no2:7   diff:2 ) = 23 <0.000155>

printf("no1:%d \t no2:%d \t diff:%d\n", 8, 8, 0no1:8     no2:8   diff:0 ) = 23 <0.000153>

--- SIGFPE (Floating point exception) ---

+++ killed by SIGFPE +++

3、显示系统调用

[guest@localhost tmp]$ ltrace -S ./a.out

SYS_brk(NULL)         = 0x9e20000

SYS_access(0xa4710f, 4, 0xa4afc0, 0, 0xa4b644)         = 0

SYS_open("/etc/ld.so.preload", 0, 02)       = 3

SYS_fstat64(3, 0xbfbd7a94, 0xa4afc0, -1, 3)            = 0

SYS_mmap2(0, 17, 3, 2, 3)        = 0xb7f2a000

SYS_close(3)          = 0

SYS_open("/lib/libcwait.so", 0, 00)         = 3

SYS_read(3, "\177ELF\001\001\001", 512)     = 512

SYS_fstat64(3, 0xbfbd76fc, 0xa4afc0, 4, 0xa4b658)      = 0

SYS_mmap2(0, 4096, 3, 34, -1)    = 0xb7f29000

SYS_mmap2(0, 5544, 5, 2050, 3)              = 0x423000

SYS_mmap2(0x424000, 4096, 3, 2066, 3)       = 0x424000

.............省去若干行

原文

http://hi.baidu.com/higkoo/item/c48de4950118cc49f14215ca

http://hi.baidu.com/yuanhuiyong/item/eba859d111e6e28f6dce3fea

目录
相关文章
|
开发框架 .NET 数据库
.NETCore 获取数据库上下文[实例的方法和配置连接字符串
.NETCore 获取数据库上下文[实例的方法和配置连接字符串
704 1
|
1天前
|
API 数据库
ionic4 接收API数据库传值并显示
ionic4 接收API数据库传值并显示
6 0
|
3月前
|
前端开发 程序员 开发者
自己封装的一些工具函数
自己封装的一些工具函数
|
3月前
|
程序员 Linux 调度
用ucontext库创建简单的协程
用ucontext库创建简单的协程
38 0
|
4月前
|
算法 关系型数据库 编译器
[项目配置] 配置Qt函数库和ui界面库的封装并调用的项目(一)
[项目配置] 配置Qt函数库和ui界面库的封装并调用的项目
69 0
|
4月前
|
C++
[项目配置] 配置Qt函数库和ui界面库的封装并调用的项目(二)
[项目配置] 配置Qt函数库和ui界面库的封装并调用的项目
44 0
|
5月前
|
XML 前端开发 API
【 ⑧】XPath库及其基本用法
【 ⑧】XPath库及其基本用法
64 0
|
10月前
|
开发工具 git C++
Qt的简易日志库实现及封装
Qt的简易日志库实现及封装
|
C# Python
c#调用python脚本函数_
c#调用python脚本函数_
105 0
c#调用python脚本函数_

热门文章

最新文章