1. 程式人生 > >系統技術非業餘研究 » 看multitrace程式碼學習如何定製自己的dbg資訊

系統技術非業餘研究 » 看multitrace程式碼學習如何定製自己的dbg資訊

multitrace是ttb應用帶的一個例子,給了個例子讓使用者來格式化和定製自己的dbg資訊。 文件在這裡

The module multitrace.erl which can be found in the src directory of the Observer application implements a small tool with three possible trace settings. The trace messages are written to binary files which can be formatted with the function multitrace:format/1/2.

程式碼太長,我就不貼了,可以點這裡檢視.

我演示下如何使用:

$ pwd
/home/chuba/otp/lib/observer/src
$ erlc multitrace.erl
$ erl
Erlang R14B04 (erts-5.8.5)  [64-bit] [smp:16:16] [rq:16] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.8.5  (abort with ^G)
1> multitrace:schedule(self()).                
ok
2> erlang:ports().
[#Port<0.1>,#Port<0.49>,#Port<0.406>,#Port<0.415>,
 #Port<0.714>,#Port<0.720>]
3> multitrace:stop().                          
stopped
4> multitrace:format("
[email protected]
_trace"). Tracing started on node [email protected] at 2011-10-27 16:29:40,984702 Flags: [{[<0.47.0>],[running,timestamp]}] in: Process : <0.47.0> Time : 2011-10-27 16:29:40,984453 Function : {dbg,req,1} out: Process : <0.47.0> Time : 2011-10-27 16:29:40,984528 Function : {io,wait_io_mon_reply,2} in: Process : <0.47.0> Time : 2011-10-27 16:29:40,984582 Function : {io,wait_io_mon_reply,2} out: Process : <0.47.0> Time : 2011-10-27 16:29:40,984635 Function : {io,wait_io_mon_reply,2} in: Process : <0.47.0> Time : 2011-10-27 16:29:40,984662 Function : {io,wait_io_mon_reply,2} out: Process : <0.47.0> Time : 2011-10-27 16:29:40,984720 Function : {shell,eval_loop,3} in: Process : <0.47.0> Time : 2011-10-27 16:30:32,215798 Function : {shell,eval_loop,3} out: Process : <0.47.0> Time : 2011-10-27 16:30:32,216096 Function : {code_server,call,2} in: Process : <0.47.0> Time : 2011-10-27 16:30:32,216155 Function : {code_server,call,2} Total time 'in' for process <0.47.0>: 484 micro seconds ok 13>

我們可以在自己的專案裡面結合ttb做些除錯模組,方便在出現問題的時候定位問題。

祝玩得開心!

Post Footer automatically generated by wp-posturl plugin for wordpress.

No related posts.

相關推薦

系統技術業餘研究 » multitrace程式碼學習如何定製自己dbg資訊

multitrace是ttb應用帶的一個例子,給了個例子讓使用者來格式化和定製自己的dbg資訊。 文件在這裡: The module multitrace.erl which can be found in the src directory of the Observer application

系統技術業餘研究 » 圖學TCP API以及狀態變遷

client的connect呼叫和server端之間的三根線應該對應著三次握手過程,這裡有一點問題。 client傳送的sync到達應該在server端accpet之前,所以橙色線應該指向accpet前面。 同樣,server端響應ack,sync是在accpet呼叫前的,因此粉色線也應該放在a

系統技術業餘研究 » 從FTP模組學習先進的診斷技術(Erlang Trace機制)

我們開發好了一個軟體的時候,通常是經過嚴格測試的,才分發給使用者使用, 但是即使這樣也不能保證使用者的環境和我們的相同, 我們的軟體還是會失敗的. 問題是如何診斷這些問題. 通常的做法是寫log,這是個很有效的方式. 但是寫log要程式碼支援,而且會帶來負面的效能影響. Erlang提供了強大的T

系統技術業餘研究 » Erlang程式碼反編譯以及檢視彙編碼

Erlang的程式碼是先翻譯成abstract_code,再到目的碼的,如果有符號資訊很容易恢復原始碼,通常我們部署系統的時候需要把符號資訊去掉,reltool就可以幹這個事情! 我們演示下: $ cat server.erl -module(server). -compile(export

系統技術業餘研究 » 計算機各系統元件的吞吐量和延遲 圖不說話

這個圖挺好的,就是比較粗線條,有些東西不太完整/準確,比如現有的USB實際上是480M/12M和1.5M三種速率(暫不算3.0和無線的) 另:幫樓主補充一下這類資料的意義:如果對各種匯流排的速率和IOPS如果沒有概念和預估,寫程式時就只能Compile & Pray了。 Reply:O

系統技術業餘研究 » Erlang強大的程式碼自動重構工具 tidier

Jan 29, 2010 We are very happy to announce the website of Tidier, an automatic refactoring tool for Erlang programs. Tidier cleans up Erlang source c

系統技術業餘研究 » 從Megaco學如何寫診斷程式碼

Megaco/H.248 is a protocol for control of elements in a physically decomposed multimedia gateway, enabling separation of call control from media conv

系統技術業餘研究 » 獲取Erlang系統資訊程式碼片段

從lib/megaco/src/tcp/megaco_tcp_connection.erl摘抄的程式碼, 挺詳細的關於系統的資訊: SchedId = erlang:system_info(scheduler_id), SchedNum = erlang:sy

系統技術業餘研究 » Iostat不到裝置統計資訊的原因分析

最近在把玩些高速的SSD和nvram裝置的時候,發現iostat無法統計到這些裝置的資訊,很是奇怪,於是分析和總結了一把,挺有意思的。 現象描述如下: # uname -a Linux dr4000 2.6.32-131.17.1.el6.x86_64 #1 SMP Wed Oct 5 17:1

系統技術業餘研究

ItPub寫的文章“2017 年度 DB-Engines 資料庫冠軍得主:PostgreSQL 封王!”, 點選 這裡 進一步閱讀 升的最快的幾個資料庫,我簡單的無責任點評: PG資料庫是很老的資料庫,不過這幾年冉冉升起,因為是學院派的,有很好的學術和智力的支援,一直以來在資料庫的體系結構,程式碼

系統技術業餘研究 » MySQL資料庫架構的演化觀察

MySQL資料庫架構的演化觀察 December 14th, 2017 Categories: 資料庫 Tags: mysql

系統技術業餘研究 » inet_dist_connect_options

Erlang 17.5版本引入了inet_dist_{listen,connect}_options,對於結點間的互聯socket可以有更精細的控制,RPC的時候效能可以微調: raimo/inet_tcp_dist-priority-option/OTP-12476: Document ke

系統技術業餘研究 » 推薦工作機會

最後更新時間:2014/11/28 請賜簡歷至:[email protected], 感謝您對加入我們公司有興趣,我們希望能早日和您共事。 以下幾個職位1年內有效,歡迎內部轉崗:
 資深資料工程師 公司:阿里(核心系統資料庫組) 工作地點:杭州(西溪園區) 崗位描述: 分析雲服務產生的海

系統技術業餘研究 » 新的工作和研究方向

和大家更新下: 做了將近8年資料庫後,我的工作和研究方向將會延伸到虛擬化和計算相關的雲服務,希望能夠和大家一起進步,Happy New Year! 預祝大家玩得開心! Post Footer automatically generated by wp-posturl plugin for w

系統技術業餘研究 » 叢集引入inet_dist_{listen,connect}_options更精細引數微調

Erlang 17.5版本引入了inet_dist_{listen,connect}_options,對於結點間的互聯socket可以有更精細的控制,RPC的時候效能可以微調: raimo/inet_tcp_dist-priority-option/OTP-12476: Document ke

系統技術業餘研究 » 2017升的最快的幾個資料庫無責任點評

ItPub寫的文章“2017 年度 DB-Engines 資料庫冠軍得主:PostgreSQL 封王!”, 點選 這裡 進一步閱讀 升的最快的幾個資料庫,我簡單的無責任點評: PG資料庫是很老的資料庫,不過這幾年冉冉升起,因為是學院派的,有很好的學術和智力的支援,一直以來在資料庫的體系結構,程式碼

系統技術業餘研究 » Erlang 17.5引入+hpds命令列控制程序預設字典大小

Erlang 17.5釋出引入控制程序預設字典大小的命令列引數: Erlang/OTP 17.5 has been released Written by Henrik, 01 Apr 2015 Some highlights of the release are: ERTS: Added co

系統技術業餘研究 » inet_dist_listen_options

Erlang 17.5版本引入了inet_dist_{listen,connect}_options,對於結點間的互聯socket可以有更精細的控制,RPC的時候效能可以微調: raimo/inet_tcp_dist-priority-option/OTP-12476: Document ke

系統技術業餘研究 » 老生常談: ulimit問題及其影響

ulimit最初設計是用來限制程序對資源的使用情況的,因為早期的系統系統資源包括記憶體,CPU都是非常有限的,系統要保持公平,就要限制大家的使用,以達到一個相對公平的環境。以下是典型的機器預設的限制情況: $ ulimit -a core file size (blocks,

系統技術業餘研究 » 求賢帖

原創文章,轉載請註明: 轉載自系統技術非業餘研究 本文連結地址: 求賢帖 作為一個優秀的工程師,你其實不缺少才華,你缺少的是神一樣的隊友、充滿挑戰的世界級技術難題,和一個可以施展自己才華的大舞臺。加入阿里核心系統資料庫開發團隊吧,你缺的這裡都有。來吧,戳這裡,給我們見識你的機會:http://b