ChinaUnix.net
相关文章推荐:

ltrace android

ltrace的功能是能够跟踪进程的库函数调用,它是如何实现的呢? 在ltrace源代码从chinaunix.net中下载下来,做了一个粗略的分析。 ltrace其实也是基于ptrace。我们知道,ptrace能够主要是用来跟踪系统调用,那么它是如何跟踪库函数呢? 首先ltrace打开elf文件,对其进行分析。在elf文件中,出于动态连接的需要,需要在elf文件中保存函数的符号,供连接器使用。具体格式,大家可以参考elf文件的格式。 这样ltrace就能够获得该...

by loughsky - Linux文档专区 - 2007-03-27 18:02:17 阅读(2539) 回复(0)

相关讨论

本帖最后由 yshihyu 于 2013-07-27 22:21 编辑 [code]#include int main(void) { printf("hello, world!\n"); puts("hello, world!\n"); printf("hello, world! %d\n", 3); return 0; } [/code]$ ltrace ./f > /dev/null __libc_start_main(0x80483f4, 1, 0xbf812ab4, 0x8048450, 0x8048440 puts("hello, world!") = 14 puts("hello, world!\n") ...

by yshihyu - C/C++ - 2013-07-28 09:37:46 阅读(4639) 回复(5)

NAME ltrace - A library call tracer SYNOPSIS ltrace [-CdfhiLrStttV] [-a column] [-e expr] [-l filename] [-n nr] [-o filename] [-p pid] ... [-s strsize] [-u username] [-X extern] [-x extern] ... [--align=column] [--debug] [--demangle] [--help] [--indent=nr] [--library=filename] [--output=filename] [--version] [command [arg ...]] DESCRIPTION ltrace is a program that simply runs the specified comm...

by loughsky - Linux文档专区 - 2007-04-02 14:54:06 阅读(646) 回复(0)

本帖最后由 gudujianjsk 于 2014-07-23 11:17 编辑 今天想编译下ltrace在busybox中使用,首先下载了 ltrace-0.7.3.tar.gz 然后apt-get install libefl-dev 防止configure时提示gelf.h 找不到的问题 make编译 然后遇到2个typedef 定义了未使用的问题 都是在函数内部的typedef 进入函数注释掉即可。然后 make 通过。 但是用file 命令查看生成的 ltrace二进制文件仍然动态编译的: $ file ltrace ltrace: ELF 6...

by gudujianjsk - Linux环境编程 - 2014-07-23 09:58:12 阅读(896) 回复(0)

今天用这两个程序跟踪一个正在运行的程序 strace -p 333 -f xxx -o ./3 ltrace -p 333 然后发现PID为333的程序变成僵尸进程了,整个服务也不能用了,只能重新启动服务器 居然有这样的事。。。

by chameleon - Linux系统管理 - 2008-06-25 22:35:33 阅读(1379) 回复(1)

ltrace可以跟踪函数调用,前面我已经说过了。 转载请注明: http://blog.chinaunix.net/u/30686 下午突然发现了ltrace的一个新功能,ltrace不光能跟踪函数的进入,函数的返回也能够获得。有了进入和退出,那么他就可以获得该函数的运行时间。 那么ltrace是如何获得函数的返回呢? 我以前介绍的,是不够的。 总的来说,是通过堆栈。 struct callstack_element { union { int syscall; struct library_symbol * libfunc; ...

by loughsky - Linux文档专区 - 2007-04-02 16:26:03 阅读(767) 回复(0)

ltrace其可以打印出程序运行过程中的库函数调用,其原理是通过解析elf文件,找到需要解析的符号,及该符号所对应的地址。在程序运行起来后,首先使用ptrace技术,将该符号对应的位置替换为软件中断,这样在程序运行到该中断时,会通知ltraceltrace从而能打印出当时所调用的函数。 在ltrace中,只时能够列出库函数的调用,那么如何来列出自身的函数调用呢? 在elf文件中,我们可以找到symbol的section,该section中包含了程序...

by loughsky - Linux文档专区 - 2007-04-02 13:47:06 阅读(1075) 回复(0)

使用truss、strace或ltrace诊断软件问题 进程无法启动,软件运行速度突然变慢,程序的"Segment Fault"等等都是让每个Unix系统用户头痛的问题,本文通过三个实际案例演示如何使用truss、strace和ltrace这三个常用的调试工具来快速诊断软件的"疑难杂症"。 truss和strace用来跟踪一个进程的系统调用或信号产生的情况,而 ltrace用来跟踪进程调用库函数的情况。truss是早期为System V R4开发的调试程序,包括Aix、Fre...

by john8714105 - Linux文档专区 - 2009-12-19 11:24:37 阅读(789) 回复(0)

简介:进程无法启动,软件运行速度突然变慢,程序的"Segment Fault"等等都是让每个Unix系统用户头痛的问题,本文通过三个实际案例演示如何使用truss、strace和ltrace这三个常用的调试工具来快速诊断软件的"疑难杂症"。 truss和strace用来 跟踪一个进程的系统调用或信号产生的情况,而 ltrace用来 跟踪进程调用库函数的情况。truss是早期为System V R4开发的调试程序,包括Aix、FreeBSD在内的大部分Unix系统都自带了这个工具;而str...

by zwctaszlh - Linux文档专区 - 2009-11-02 13:24:48 阅读(787) 回复(0)

本文通过三个实际案例演示如何使用truss、strace和ltrace这三个常用的调试工具来快速诊断软件的"疑难杂症"。 简介 进程无法启动,软件运行速度突然变慢,程序的"Segment Fault"等等都是让每个Unix系统用户头痛的问题,本文通过三个实际案例演示如何使用truss、strace和ltrace这三个常用的调试工具来快速诊断软件的"疑难杂症"。 truss和strace用来跟踪一个进程的系统调用或信号产生的情况,而 ltrace用来跟踪进程调用库函数的情况。...

by kinganeng - Linux文档专区 - 2009-08-29 12:41:33 阅读(516) 回复(0)

进程无法启动,软件运行速度突然变慢,程序的"Segment Fault"等等都是让每个Unix系统用户头痛的问题,本文通过三个实际案例演示如何使用truss、strace和ltrace这三个常用的调试工具来快速诊断软件的"疑难杂症"。 truss和strace用来跟踪一个进程的系统调用或信号产生的情况,而 ltrace用来跟踪进程调用库函数的情况。truss是早期为System V R4开发的调试程序,包括Aix、FreeBSD在内的大部分Unix系统都自带了这个工具;而strace...

by lgxswfc - Linux文档专区 - 2009-07-23 21:19:12 阅读(455) 回复(0)