zoukankan      html  css  js  c++  java
  • FreeBSD打开DTrace支持

    主要翻译自: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

  • 相关阅读:
    OleDbCommand 的用法
    递归求阶乘
    C#重写窗体的方法
    HDU 5229 ZCC loves strings 博弈
    HDU 5228 ZCC loves straight flush 暴力
    POJ 1330 Nearest Common Ancestors LCA
    HDU 5234 Happy birthday 01背包
    HDU 5233 Gunner II 离散化
    fast-IO
    HDU 5265 pog loves szh II 二分
  • 原文地址:https://www.cnblogs.com/Lifehacker/p/FreeBSD_9_DTrace_support.html
Copyright © 2011-2022 走看看