strace 调试java代码使用介绍

在Linux环境下,当需要调试包含本地方法(native关键字)的Java代码时,strace工具变得非常有用。strace可以追踪系统调用和信号,帮助开发者理解程序执行的细节。通过指定选项如`-c`, `-f`, `-tt`等,可以进行详细的性能分析和故障排查。例如,使用`ps -ef | grep java`找到Java进程ID,然后运行`strace -tt -f -o /tmp/output.log -p {pid}`,系统调用信息会被记录在output.log文件中。" 100999554,5527973,Mac日常使用与开发技巧,"['Mac', '开发工具', '操作系统', '软件使用']
摘要由CSDN通过智能技术生成

java代码中有很多地方使用了本地方法,即带有 native 关键字的方法。 这些方法在执行时,很多时候运行的是对操作系统的方法,在用eclipse代码调试时,对本地方法的执行步骤是看不到的。在 linux下 ,借助 starce 命令,可以看到系统调用方法的踪迹,方便对代码的分析。


starce 命令简介

Strace是Linux中一个调试和跟踪工具。它可以接管被跟踪进程执行的系统调用和收到的信号。然后把每一个执行的系统调用的名字,参数和返回值打印出来。

-c  统计每一系统调用的所执行的时间,次数和出错的次数等.
-d  输出strace关于标准错误的调试信息.
-f  跟踪由fork调用所产生的子进程.
-ff  如果提供-o filename,则所有进程的跟踪结果输出到相应的filename.pid中,pid是各进程的进程号.
-F 尝试跟踪vfork调用.在-f时,vfork不被跟踪.
-h  输出简要的帮助信息.
-i  输出系统调用的入口指针.
-q  禁止输出关于脱离的消息.
-r  打印出相对时间,关于每一个系统调用.
-t  在输出中的每一行前加上时间信息.
-tt  在输出中的每一行前加上时间信息,微秒级, 时间格式:17:22:58.345879
-ttt  微秒级输出,以微秒表示时间, 时间格式:1448529538.276858
-T  显示每一调用所耗的时间.
-v  输出所有的系统调用.一些调用关于环境变量,状态,输入输出等调用由于使用频繁,默认不输出.
-V  输出strace的版本信息.
-x  以十六进制形式输出非标准字符串
-xx  所有字符串以十六进制形式输出.
-a column

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值