<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title>DTrace - 標籤 - Yan-Hao Wang&#39;s Blog</title>
        <link>https://kola.ink/tags/dtrace/</link>
        <description>DTrace - 標籤 - Yan-Hao Wang&#39;s Blog</description>
        <generator>Hugo -- gohugo.io</generator><language>zh-TW</language><managingEditor>bses30074@gmail.com (Yan-Hao Wang)</managingEditor>
            <webMaster>bses30074@gmail.com (Yan-Hao Wang)</webMaster><copyright>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.</copyright><lastBuildDate>Mon, 22 Jun 2026 19:54:12 &#43;0800</lastBuildDate><atom:link href="https://kola.ink/tags/dtrace/" rel="self" type="application/rss+xml" /><item>
    <title>Tmp: FreeBSD DTrace 產生 Flame Graph</title>
    <link>https://kola.ink/dtrace-flame-graph/</link>
    <pubDate>Mon, 22 Jun 2026 19:54:12 &#43;0800</pubDate>
    <author>bses30074@gmail.com (Yan-Hao Wang)</author>
    <guid>https://kola.ink/dtrace-flame-graph/</guid>
    <description><![CDATA[<p>可以看到有 profile-97, profile-199 &hellip; profile-4999 還有 tick-1 &hellip; tick-5000，前者是 CPU sampling profiler（基於 interrupt / PMC / sampling），後者是 scheduler tick / timer interrupt sampling 適合 long-run performance trend。</p>
<div class="code-block code-line-numbers" style="counter-reset: code-block 0">
    <div class="code-header language-sh">
        <span class="code-title"><i class="arrow fas fa-angle-right fa-fw" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h fa-fw" aria-hidden="true"></i></span>
        <span class="copy" title="複製到剪貼板"><i class="far fa-copy fa-fw" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">kola@:~/proj/mac_casper/test/performance/syscall/sysctl $ sudo dtrace <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span>-x <span class="nv">stackframes</span><span class="o">=</span><span class="m">100</span> <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span>-o stacks.out <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span>-c ./perf_baseline <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span>-n <span class="s1">&#39;
</span></span></span><span class="line"><span class="cl"><span class="s1">profile-4999
</span></span></span><span class="line"><span class="cl"><span class="s1">/pid == $target/
</span></span></span><span class="line"><span class="cl"><span class="s1">{
</span></span></span><span class="line"><span class="cl"><span class="s1">    @[stack()] = count();
</span></span></span><span class="line"><span class="cl"><span class="s1">}&#39;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">kola@:~/proj/mac_casper/test/performance/syscall/sysctl $ perl ~/proj/FlameGraph/stackcollapse.pl stacks.out &gt; folded.out
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">kola@:~/proj/mac_casper/test/performance/syscall/sysctl $ perl ~/proj/FlameGraph/flamegraph.pl <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span>    --title<span class="o">=</span><span class="s2">&#34;sysctl kernel stack with mac&#34;</span> <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span>    folded.out &gt; flame.svg</span></span></code></pre></div></div>
<h2 id="實際例子">實際例子</h2>
<p>存成 SVG 後你就可以在瀏覽器打開，可以自由跟它互動像是看到全名等。</p>]]></description>
</item>
<item>
    <title>FreeBSD DTrace 基礎了解</title>
    <link>https://kola.ink/dtrace-basic/</link>
    <pubDate>Wed, 13 May 2026 13:52:32 &#43;0800</pubDate>
    <author>bses30074@gmail.com (Yan-Hao Wang)</author>
    <guid>https://kola.ink/dtrace-basic/</guid>
    <description><![CDATA[<h2 id="背景">背景</h2>
<p>可以知道的相關背景知識</p>
<h3 id="歷史">歷史</h3>
<p>最早在 Sun 裡面使用，後來移植到不同作業統，後來在 illumos 上面也有，在 Windows 也有。OpenDTrace 專案於 2016 年 9 月在GitHub上啟動，專案提供了程式碼和系統內部機制的完整文件。</p>]]></description>
</item>
<item>
    <title>DTrace Tail-Call Optimization 問題</title>
    <link>https://kola.ink/dtrace-tco/</link>
    <pubDate>Sat, 02 May 2026 14:57:41 &#43;0800</pubDate>
    <author>bses30074@gmail.com (Yan-Hao Wang)</author>
    <guid>https://kola.ink/dtrace-tco/</guid>
    <description><![CDATA[<h2 id="正文">正文</h2>
<p>我在 DTrace 的時候，有時候會看到以下奇怪的 log，有奇怪的回傳值：</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-sh">
        <span class="code-title"><i class="arrow fas fa-angle-right fa-fw" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h fa-fw" aria-hidden="true"></i></span>
        <span class="copy" title="複製到剪貼板"><i class="far fa-copy fa-fw" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">  <span class="m">0</span>  <span class="m">52547</span> casper_mpo_socket_check_poll_t:return casper_mpo_socket_check_poll_t returned <span class="m">0</span>
</span></span><span class="line"><span class="cl">  <span class="m">0</span>  <span class="m">52549</span> casper_mpo_socket_check_receive_t:return casper_mpo_socket_check_receive_t returned <span class="m">0</span>
</span></span><span class="line"><span class="cl">  <span class="m">0</span>  <span class="m">52625</span> casper_mpo_vnode_check_lookup:return casper_mpo_vnode_check_lookup returned <span class="m">0</span>
</span></span><span class="line"><span class="cl">  <span class="m">0</span>  <span class="m">52625</span> casper_mpo_vnode_check_lookup:return casper_mpo_vnode_check_lookup returned <span class="m">0</span>
</span></span><span class="line"><span class="cl">  <span class="m">0</span>  <span class="m">52631</span> casper_mpo_vnode_check_open:return casper_mpo_vnode_check_open returned -105548670090024
</span></span><span class="line"><span class="cl">  <span class="m">0</span>  <span class="m">52681</span> casper_check_allowed_open:return casper_check_allowed_open returned <span class="m">0</span>
</span></span><span class="line"><span class="cl">  <span class="m">0</span>  <span class="m">52659</span> casper_mpo_vnode_check_stat_t:return casper_mpo_vnode_check_stat_t returned <span class="m">0</span>
</span></span><span class="line"><span class="cl">  <span class="m">0</span>  <span class="m">52635</span> casper_mpo_vnode_check_read_t:return casper_mpo_vnode_check_read_t returned <span class="m">0</span></span></span></code></pre></div></div>
<p>這是因為我的程式碼是這樣寫：</p>]]></description>
</item>
</channel>
</rss>
