FreeBSD打开DTrace支持

http://www.cnblogs.com/Lifehacker/p/FreeBSD_9_DTrace_support.html

主要翻译自:https://wiki.freebsd.org/DTrace

FreeBSD跟Linux发行版一个比较大的差异,就是提倡源码构建。因此这里提到比较多的编译开关设置。自2012年5月后,DTrace支持默认是打开的,因此以下步骤不再需要了。留意uname -a输出的日期即可。

添加内核编译选项,打开DTrace支持

1.打开调试符号

makeoptions DEBUG="-g"       # build kernel with gdb(1) debug symbols

2.对于10.0之前的FreeBSD,添加:

options KDTRACE_HOOKS      # all architectures - enable general DTrace hooks
options DDB_CTF            # all architectures - kernel ELF linker loads CTF data

3.对于AMD64(64位处理器),添加:

options KDTRACE_FRAME        # amd64 - ensure frames are compiled in

4.对于9.0或之后的系统,WITH_CTF=1需要在内核设置里添加:

makeoptions WITH_CTF=1

(关于编译内核的步骤,可以参考:http://tthtlc.wordpress.com/2012/08/12/enabling-dtrace-on-freebsd-9/,内核的代码都在/usr/src, 拿一份比如/usr/src/sys/amd64/conf里的GENERIC复制以下,添加上面的选项就可以了。)

重编译并安装内核

1.对于FreeBSD 9及以后的系统

make buildkernel KERNCONF=DTRACE

2.对于FreeBSD 8-STABLE及更老的系统

make buildkernel WITH_CTF=1 KERNCONF=DTRACE

3.安装内核并重启

make installkernel KERNCONF=DTRACE
shutdown -r now

查看安装效果

sudo su切换到root用户

1.加载内核DTrace模块

kldload dtraceall

2.确认dtrace安装正确:

dtrace -l|head

3.尝试添加DTrace监控:

dtrace -n ‘syscall:::entry { @num[execname] = count(); }‘

如果你看到输出是:

dtrace: invalid probe specifier syscall:::entry { @num[execname] = count(); }: "/usr/lib/dtrace/psinfo.d", line 37: failed to copy type of ‘pr_uid‘: Type information is in parent and unavailable

说明前面没做好,重头再来吧

用户空间的DTrace

对于FreeBSD 9.0及以后的版本

1.对于用户态的DTrace支持,需要在你的/etc/make.conf文件里添加:

STRIP=

CFLAGS+=-fno-omit-frame-pointer

这是用以提供栈跟踪的,可以提供更多信息

2.重新安装world:

make WITH_CTF=1 buildworld

shutdown -r NOW

make installworld

时间: 2024-08-05 07:08:27

FreeBSD打开DTrace支持的相关文章

helm-mode打开文件支持中文搜索

.title { text-align: center; margin-bottom: .2em } .subtitle { text-align: center; font-size: medium; font-weight: bold; margin-top: 0 } .todo { font-family: monospace; color: red } .done { font-family: monospace; color: green } .priority { font-fami

SQL Server附加数据库提示“版本为661,无法打开,支持655版本……”

在我们使用别人导出的数据库的时候,有时候我们会通过附加数据库的方法,把别人导出的数据库附加到我们的电脑中,这时,或许你会遇到这种问题,附加时,提示版本为XXX,无法打开,支持AAA版本. 这是怎么回事呢? 原来,版本号是指SQL Server的版本号,例如版本号661是SQL Server 2008 R2,版本号655是SQL Server 2008 等.它拥有向上兼容的特点.由此可见,标题的意思就是说,你要附加的数据库,只能在SQL Server 2008 R2及更高版本上运行,不能在SQL

C# 打开钱箱支持北洋、佳博、爱普生

/// <summary> /// 执行开钱箱操作 /// 没钱箱或打印机原功能都可以正常使用 /// </summary> public void ExecuteOpenCashBoxOperate() { string l_strDefaultPortName = ""; string l_strDefaultBrand = ""; if (serverCommon.ReadLocalSet("PrintSet", &

动态追踪技术(中) - Dtrace、SystemTap、火焰图

http://openresty.org/cn/presentations.html http://weibo.com/agentzh?is_all=1 http://openresty.org/posts/dynamic-tracing/ 动态追踪技术(中) - Dtrace.SystemTap.火焰图 原创 2016-05-06 章亦春 MacTalk 动态追踪技术中篇,关于 DTrace.SystemTap 和 火焰图的那点事. DTrace 与 SystemTap 说到动态追踪就不能不提

FreeBSD手册——配置FreeBSD内核

转自中文FreeBSD用户组 http://journal.cnfug.org/issue8/000045.html#45 FreeBSD手册--配置FreeBSD内核  [阅读次数: 1761次] 顾宏军(redarmy)@linuxaid.com.cn> 9 配置FreeBSD 内核 9.1 大纲 9.2 为什么要构建一个定制的内核? 9.3 建立并安装一个定制的内核 9.4 配置文件 9.5 建立设备节点 9.6 出现问题如何解决 -----------------------------

VMware Workstation 12,Windows对OpenGL版本支持设置

对做OpenGL开发的同学来说,VMware Workstation 12的出现确实带来了很多"惊喜",VMware Workstation 12对OpenGL的支持版本有较大的提升. 在VMware Workstation 12之前的版本,只基本支持OpenGL2.1,VMware Workstation 12对OpenGL的支持版本为OpenGL3.3,据了解目前支持OpenGL3.3的核心协议接口. 用VM 12重新安装系统的同学一般不会遇到什么问题,只需要把显卡设置里的3D加速

Linux编译wireshark,并支持lua插件

由于工作需要,我编写过一个解析内部通信协议的wireshark的插件,插件是使用lua语言编写的,所以wireshark必须要支持lua接入才行. 一般在windows下的wireshark使用安装包安装后,都是支持lua的.只是默认lua支持是处于关闭状态,在网上一搜索就能知道怎么打开lua支持了. 但是,在Linux下就不一定支持了.我们公司使用的是CentOS的操作系统,默认使用操作系统光盘安装的wireshark是没有lua支持的.所以,我就只能摸索如下的步骤去重新编译wireshark

让WebRTC支持H264编解码

最近实验了下如何让WebRTC支持H264编码,记录下,供有需要的人参考. 说明一下,我是在 Ubuntu Server 14.04 下编译的 WebRTC ,使用 native(C++) api 开发 WebRTC 应用.所以我的调整都是基于 native 代码. 最终的效果是浏览器可以用H264发送视频,也可以接收H264视频. 注意,WebRTC 使用 OpenH264 来做 encoder (见 h264_encoder_impl.cc),使用 ffmpeg 来做 decoder (见

[C] zintrin.h : 智能引入intrinsic函数。支持VC、GCC,兼容Windows、Linux、Mac OS X

博客来源:http://blog.csdn.net/zyl910/article/details/8100744 现在很多编译器支持intrinsic函数,这给编写SSE等SIMD代码带来了方便.但是各个编译器略有差异,于是我编写了zintrin.h,智能引入intrinsic函数. 一.各种编译器的区别 1.1 Visual C++(Windows) 最早支持intrinsic函数的VC编译器是VC 6.0.它在装上Visual Studio 6.0 Service Pack 5.Visual