檢視原始碼 Runtime_Tools 版本說明
此文件描述對 Runtime_Tools 應用程式所做的變更。
Runtime_Tools 2.1.1
修正的錯誤與故障
修正了遠端節點上的 dbg 工作階段過早終止的錯誤。
自有 ID:OTP-19188 輔助 ID:PR-8692
Runtime_Tools 2.1
改進與新功能
instrument
模組現在可以追蹤每個進程或每個埠的配置。自有 ID:OTP-18577 輔助 ID:PR-7236
新的函式
proc_lib:set_label/1
可以用來為任何沒有註冊名稱的進程新增描述性術語。此名稱將顯示在c:i/0
、observer
等工具中,並且會包含在使用gen_server
、gen_statem
、gen_event
和gen_fsm
的進程產生的當機報告中。可以透過呼叫
proc_lib:get_label/1
來檢索進程的標籤。請注意,這些函式適用於任何進程,而不僅限於使用
proc_lib
的進程。範例
1> self(). <0.90.0> 2> proc_lib:set_label(my_label). ok 3> i(). . . . <0.90.0> erlang:apply/2 2586 75011 0 my_label c:pinfo/2 51 4> proc_lib:get_label(self()). my_label
已將類型規範新增至所有
dbg
函式。自有 ID:OTP-18859 輔助 ID:PR-7782
文件已遷移以使用 Markdown 和 ExDoc。
自有 ID:OTP-18955 輔助 ID:PR-8026
已新增
dbg:session_create/1
、dbg:session/2
和dbg:session_destroy/1
以使用工作階段。請參閱文件以瞭解詳細資訊。自有 ID:OTP-19081 輔助 ID:PR-8363
Runtime_Tools 2.0.1
修正的錯誤與故障
修正了當埠已停止時,擷取觀察器埠資訊可能會當機的問題。
自有 ID:OTP-18868 輔助 ID:GH-7735
修正了 Windows 上的一些良性編譯警告。
自有 ID:OTP-18895
Runtime_Tools 2.0
修正的錯誤與故障
修正了
instrument:carriers/0,1
的類型規範自有 ID:OTP-18499 輔助 ID:PR-6946
改進與新功能
新增
dbg:tracer(file, Filename)
作為以純文字追蹤至檔案的便捷方式。自有 ID:OTP-18211 輔助 ID:PR-6143
藉由在嵌入模式的啟動順序中新增一個額外的步驟來改善啟動期間
on_load
模組的處理,該步驟會執行所有on_load
處理常式,而不是依賴稍後在核心監督樹狀結構啟動時明確叫用它們。這主要是一個程式碼改進和 OTP 內部簡化,以避免未來發生錯誤並簡化程式碼維護。
自有 ID:OTP-18447
已淘汰
dbg:stop_clear/0
,因為它只是一個dbg:stop/0
的函式別名。自有 ID:OTP-18478 輔助 ID:GH-6903
instrument
模組已從tools
移至runtime_tools
。自有 ID:OTP-18487 輔助 ID:PR-6829
已移除實驗性的
erts_alloc_config
模組。它不再產生良好的配置,且無法以合理的向後相容方式進行修復。自 OTP 25 以來,它已被淘汰並排定在 OTP 26 中移除。* 可能不相容 *
自有 ID:OTP-18549 輔助 ID:PR-7105
Runtime_Tools 1.19
修正的錯誤與故障
在 macOS 和 Windows 上讀取埠的通訊端選項會「跳過」無效的選項。
自有 ID:OTP-18012 輔助 ID:#5798
改進與新功能
dbg:stop/0
現在的行為與dbg:stop_clear/0
類似,會清除所有函式的全域追蹤模式。自有 ID:OTP-17909 輔助 ID:ERIERL-760
erts_alloc_config
已排定在 OTP 26 中移除。它在很長一段時間內都沒有產生良好的配置,而且很遺憾地無法以向後相容的方式進行修復。自有 ID:OTP-17939
Runtime_Tools 1.18
修正的錯誤與故障
修正了
scheduler:utilization(Seconds)
中會不正確地將scheduler_wall_time
系統旗標啟用而未停用的錯誤。自有 ID:OTP-17800 輔助 ID:PR-5425
改進與新功能
新增
scheduler:get_sample/0
和get_sample_all/0
。同時說明scheduler
模組文件關於它如何取決於系統旗標scheduler_wall_time
。自有 ID:OTP-17830 輔助 ID:GH-5425、PR-5444
Runtime_Tools 1.17
改進與新功能
觀察器現在有一個新通訊端的區段。
自有 ID:OTP-17346
已擴充 dbg 文件以包含所有函式名稱縮寫的含義。
自有 ID:OTP-17572 輔助 ID:PR-5117
Runtime_Tools 1.16.2
改進與新功能
已移除實驗性的 HiPE 應用程式,以及其他應用程式中所有相關的功能。
* 可能不相容 *
自有 ID:OTP-16963
Runtime_Tools 1.16.1
修正的錯誤與故障
函式
dbg:n/1
使用本機函式在遠端節點上設定追蹤器。只要遠端節點執行完全相同版本的 Erlang/OTP,這就能運作正常,但否則就完全無法運作。解決方法是匯出相關函式,並在遠端節點上呼叫此函式來設定遠端追蹤。自有 ID:OTP-16930 輔助 ID:ERL-1371、GH-4396
Runtime_Tools 1.16
改進與新功能
說明模組 'scheduler' 的文件。
自有 ID:OTP-17208 輔助 ID:GH-4502、PR-4532
Runtime_Tools 1.15.1
修正的錯誤與故障
修正在嘗試從正在終止的埠讀取埠資訊時,由
appmon_info
觸發的當機。appmon_info
由observer
用來從觀察到的節點取得資訊。自有 ID:OTP-16787 輔助 ID:PR-2673
Runtime_Tools 1.15
改進與新功能
改善
instrument
模組中配置和載體的呈現。自有 ID:OTP-16327
由於進行了新的衍生改進而進行的次要更新。
自有 ID:OTP-16368 輔助 ID:OTP-15251
Runtime_Tools 1.14.0.1
修正的錯誤與故障
函式
dbg:n/1
使用本機函式在遠端節點上設定追蹤器。只要遠端節點執行完全相同版本的 Erlang/OTP,這就能運作正常,但否則就完全無法運作。解決方法是匯出相關函式,並在遠端節點上呼叫此函式來設定遠端追蹤。自有 ID:OTP-16930 輔助 ID:ERL-1371、GH-4396
Runtime_Tools 1.14
改進與新功能
修正
dbg:stop_clear/0
以同時清除追蹤事件(send
和'receive'
)。自有 ID:OTP-16044
Runtime_Tools 1.13.3
改進與新功能
由於
crypto
應用程式的組態移動,因此必須對建置系統進行次要更新。自有 ID:OTP-15262 輔助 ID:OTP-15129
Runtime_Tools 1.13.2.1
修正的錯誤與故障
函式
dbg:n/1
使用本機函式在遠端節點上設定追蹤器。只要遠端節點執行完全相同版本的 Erlang/OTP,這就能運作正常,但否則就完全無法運作。解決方法是匯出相關函式,並在遠端節點上呼叫此函式來設定遠端追蹤。自有 ID:OTP-16930 輔助 ID:ERL-1371、GH-4396
Runtime_Tools 1.13.2
改進與新功能
更新 systemtap 追蹤範例指令碼。
自有 ID:OTP-15670
Runtime_Tools 1.13.1
改進與新功能
透過使用新的
system_info(ets_count)
而不是較為昂貴的length(ets:all())
來最佳化observer
。自有 ID:OTP-15163 輔助 ID:PR-1844
Runtime_Tools 1.13
改進與新功能
新增工具模組
scheduler
,可更輕鬆地測量排程器使用率。自有 ID:OTP-14904
Runtime_Tools 1.12.5
修復的錯誤與故障
system_information:to_file/1
現在將使用稍微較少的記憶體。自有 ID:OTP-14816
Runtime_Tools 1.12.4
改進與新功能
新的
erts_alloc
策略系列:年齡順序最先適配。類似於「位址順序」,但會優先選擇最舊的可用載體進行分配。自有 ID:OTP-14917 輔助 ID:ERIERL-88
Runtime_Tools 1.12.3
修復的錯誤與故障
已移除文件中所有未使用的舊檔案。
自有 ID:OTP-14475 輔助 ID:ERL-409, PR-1493
Runtime_Tools 1.12.2
改進與新功能
通用 Unicode 改進。
自有 ID:OTP-14462
Runtime_Tools 1.12.1
修復的錯誤與故障
將追蹤模式儲存到檔案時,新增了錯誤的編碼註解。現已修正。
自有 ID:OTP-14479
Runtime_Tools 1.12
修復的錯誤與故障
在具有
on_load
指令的模組中新增編譯選項-compile(no_native)
,HiPE 尚未支援此指令。自有 ID:OTP-14316 輔助 ID:PR-1390
改進與新功能
因原子包含任意 Unicode 字元而進行的各種更新。
自有 ID:OTP-14285
現在,在支援的平台上,套接字可以繫結至裝置 (SO_BINDTODEVICE)。
此功能已實作,例如在 Linux 下支援 VRF-Lite;請參閱 VRF 和 GitHub Pull Request #1326。
自有 ID:OTP-14357 輔助 ID:PR-1326
Runtime_Tools 1.11.1
修復的錯誤與故障
etop 錯誤地報告了工具首次啟動以來的平均排程器使用率,而不是上次更新以來的排程器使用率。現已修正。
自有 ID:OTP-14090 輔助 ID:seq13232
Runtime_Tools 1.11
改進與新功能
將選項
queue_size
新增至 ttb:tracer/2。這會設定 IP 追蹤驅動程式的最大佇列大小,該驅動程式用於追蹤到 Shell 和/或{local,File}
。queue_size
的預設值由dbg
指定,現在從 50 變更為 200。自有 ID:OTP-13829 輔助 ID:seq13171
已更新連接埠資訊頁面,以顯示每個連接埠的更多資訊。
自有 ID:OTP-13948 輔助 ID:ERL-272
Runtime_Tools 1.10.1
改進與新功能
修正了一些次要的文件問題。
自有 ID:OTP-13891
Runtime_Tools 1.10
修復的錯誤與故障
修正 dbg:trace_port/2 中的錯誤,該錯誤可能導致追蹤 IP 驅動程式產生錯誤的錯誤報告「...(re)selected before stop_select was called for driver trace_ip_drv」。
自有 ID:OTP-13576 輔助 ID:ERL-119
改進與新功能
新增微狀態計數
微狀態計數是一種追蹤 ERTS 內不同執行緒處於哪種狀態的方式。主要使用範圍是藉由檢查執行緒處於哪種狀態來找出效能瓶頸,然後從那裡找出優化的原因和位置。
由於檢查微狀態計數是否開啟或關閉的成本相對較高,因此預設只會啟用少數狀態,而且可以透過設定來啟用更多狀態。
runtime_tools 中新增了一個名為 msacc 的便利模組,可協助收集和解譯微狀態計數的資料。
如需更多資訊,請參閱 erlang:statistics(microstate_accounting, ) 和 runtime_tools 中的
msacc
模組。自有 ID:OTP-12345
更新觀察者 GUI 以支援在連接埠上追蹤,並為傳送/接收設定比對規格。這需要在 runtime_tools/dbg 中進行一些小的錯誤修正。
自有 ID:OTP-13481
更新 dbg 和 ttb 以搭配追蹤器模組作為追蹤器,並在連接埠上進行追蹤。
自有 ID:OTP-13500
更新 dbg 以接受新的追蹤選項
monotonic_timestamp
和strict_monotonic_timestamp
。自有 ID:OTP-13502
透過 Erlang 追蹤引入 LTTng 追蹤。
若要啟用 LTTng,需要使用設定選項
--with-dynamic-trace=lttng
建置 OTP。動態追蹤模組
dyntrace
現在可以用作 Erlang 追蹤的 LTTng 接收器。如需所有追蹤點的清單,請參閱 Runtime Tools 使用者指南。此功能也會在追蹤標籤中引入不相容的變更。追蹤標籤
gc_start
和gc_end
已拆分為gc_minor_start
、gc_minor_end
和gc_major_start
、gc_major_end
。* 可能不相容 *
自有 ID:OTP-13532
Runtime_Tools 1.9.3
改進與新功能
dbg:trace_client()
現在使用讀取緩衝區來加速讀取追蹤檔案。自有 ID:OTP-13279
Runtime_Tools 1.9.2
改進與新功能
釐清 dbg:stop 文件
自有 ID:OTP-13078
Runtime_Tools 1.9.1
修復的錯誤與故障
trace_file_drv
未正確處理EINTR
,這導致執行時間系統收到訊號時失敗。自有 ID:OTP-12890 輔助 ID:seq12885
Runtime_Tools 1.9
改進與新功能
將授權文字從 Erlang 公共授權變更為 Apache 公共授權 v2
自有 ID:OTP-12845
Runtime_Tools 1.8.16
修復的錯誤與故障
呼叫
dbg:stop/0
時,dbg
啟動的追蹤處理序並非總是終止。自有 ID:OTP-12517
Runtime_Tools 1.8.15
修復的錯誤與故障
將
nif_version
新增至erlang:system_info/1
,以便取得執行時間系統的 NIF API 版本,方式與driver_version
類似。自有 ID:OTP-12298
Runtime_Tools 1.8.14
修復的錯誤與故障
dbg:{stop,stop_clear} 函式的傳回值文件現在已正確 (感謝 Luca Favatella)
自有 ID:OTP-11603
修正 Illumos 上的 DTrace 建置。(感謝 Ryan Zezeski。)
自有 ID:OTP-11622
請勿關閉 scheduler_wall_time,因為它可能會干擾其他應用程式的使用。
自有 ID:OTP-11693 輔助 ID:seq12528
已修正下列應用程式的應用程式升級 (appup) 檔案:
asn1、common_test、compiler、crypto、debugger、dialyzer、edoc、eldap、erl_docgen、et、eunit、gs、hipe、inets、observer、odbc、os_mon、otp_mibs、parsetools、percept、public_key、reltool、runtime_tools、ssh、syntax_tools、test_server、tools、typer、webtool、wx、xmerl
在 test_server 中新增了一個用於測試 appup 檔案的測試工具。目前 OTP 中的大多數應用程式都使用此工具。
(感謝 Tobias Schlager)
內部編號:OTP-11744
改進與新功能
允許安裝路徑包含 Unicode 字元。
內部編號:OTP-10877
已更新
erts_alloc_config
工具,以產生更適合當今 VM 中 SMP 支援的組態。內部編號:OTP-11662
已引入
app
檔案鍵runtime_dependencies
。已將執行時依賴項新增至 OTP 中的所有應用程式檔案。請注意,在 OTP 17 期間這些依賴項可能不完全正確,但目前正積極進行處理。
當呼叫
system_information:sanity_check/0
函式時,將會驗證系統中所有宣告的執行時依賴項。內部編號:OTP-11773
Runtime_Tools 1.8.13
已修正的錯誤與故障
當 ERTS 內部記憶體配置器被停用時,Observer 沒有產生正確的結果。
內部編號:OTP-11520
Runtime_Tools 1.8.12
已修正的錯誤與故障
在呼叫 dbg:p/2 時,現在允許使用程序追蹤標誌 'silent'。
內部編號:OTP-11222
改進與新功能
引入了用於檢查系統和組建組態的功能。
內部編號:OTP-11196
Runtime_Tools 1.8.11
已修正的錯誤與故障
修正了 observer 中一些與 CPU/排程器使用率計算相關的錯誤。
當執行 hipe 時,接受程序的當前函數為 'undefined'。
內部編號:OTP-10894
改進與新功能
現在 Erlang 原始檔中的非 ASCII 字元會以 UTF-8 編碼 (而非 latin1)。
內部編號:OTP-11041 輔助編號:OTP-10907
Runtime_Tools 1.8.10
已修正的錯誤與故障
修復了不再存在的 ets 表格上表格檢視器重新整理時當機的問題。(感謝 Peti Gömori)
內部編號:OTP-10635
改進與新功能
已將動態追蹤工具 dtrace 和 systemtap 的使用者指南新增至文件。
內部編號:OTP-10155
在必要時,已在 Erlang 檔案中新增說明編碼方式的註解。此註解旨在 Erlang/OTP R17B 時移除,屆時 UTF-8 將成為預設編碼方式。
內部編號:OTP-10630
已修正一些範例超出 PDF 頁面寬度的問題。
內部編號:OTP-10665
後端模組 appmon_info.erl 從 appmon 應用程式移至 runtime_tools。這樣一來,appmon 就可以從遠端 Erlang 節點朝向未安裝 appmon (及其依賴項) 的目標節點執行,前提是目標節點已安裝 runtime_tools。
內部編號:OTP-10786
Runtime_Tools 1.8.9
已修正的錯誤與故障
變更模組層級的文件,以提供使用 `dyntrace:p()` 追蹤函式的完整逐步指示。(感謝 Scott Lystig Fritchie)
內部編號:OTP-10141
在 dyntrace.erl 和 dyntrace.c 中新增 1024 個獨立的 USDT 探針。(感謝 Scott Lystig Fritchie)
內部編號:OTP-10143
將 DTrace 探針的主體重新配置到靜態連結的 VM。
由於各種作業系統 (在 DTrace 和 SystemTap 世界中) 並不完全支援共用程式庫中的 DTrace 探針 (或 SystemTap 相容模式探針),因此我們將這些探針重新配置到靜態連結的虛擬機器。這可以被視為 (目前) 實驗性功能對原始 VM 的污染。不過
1. 此程式碼可以由 C 前處理器完全消除。 2. 將探針保留在 dyntrace NIF 共用程式庫中在太多平台上根本無法正確運作。非常感謝 Basho 的 Macneil Shonle 在我受 RSI 傷害的手指不行時協助我。(注意:Solaris 10 和 FreeBSD 9.0-RELEASE 可能需要很長時間才能編譯)
內部編號:OTP-10189
Runtime_Tools 1.8.8
改進與新功能
來自 Scott Lystig Fritchie 的 DTrace 原始碼修補程式已整合到原始碼樹中。仍然不支援在生產環境中使用帶有 dtrace 探針的模擬器,但它可能是一個有價值的偵錯工具。使用 --with-dynamic-trace=dtrace (或 --with-dynamic-trace=systemtap) 進行設定,以建立啟用 dtrace 探針的組建。請參閱 runtime_tools 以取得文件和範例。
內部編號:OTP-10017
Runtime_Tools 1.8.7
已修正的錯誤與故障
先前的 dbg:stop 僅執行 erlang:trace_delivered,且未刷新追蹤檔案驅動程式。因此,當 dbg:stop 返回時,可能仍然存在傳遞到驅動程式 (由 erlang:trace_delivered 保證) 但尚未寫入檔案的追蹤訊息。現在會在每個節點上終止 dbg 程序之前新增刷新。
內部編號:OTP-9651
由 trace_file_drv 驅動程式建立的檔案控制代碼會繼承到子程序。現在已修正此問題。
內部編號:OTP-9658
改進與新功能
現在,如果您限制工作的數量,可以使用平行 make 來組建 Erlang/OTP,例如使用 '
make -j6
' 或 'make -j10
'。由於某些遺失的依賴項,目前 'make -j
' 無法運作。內部編號:OTP-9451
新增了兩個新的內建追蹤模式別名:caller_trace (c) 和 caller_exception_trace (cx)。請參閱 dbg:ltp/0 文件以取得更多資訊。
內部編號:OTP-9458
Runtime_Tools 1.8.6
改進與新功能
新增了兩個新的內建追蹤模式別名:caller_trace (c) 和 caller_exception_trace (cx)。請參閱 dbg:ltp/0 文件以取得更多資訊。
內部編號:OTP-9458
Runtime_Tools 1.8.5
改進與新功能
當 inviso 設定大量追蹤模式時,Erlang VM 可能會在幾秒鐘內沒有回應。現在已修正此問題。
內部編號:OTP-9048 輔助編號:seq11480
Runtime_Tools 1.8.4.1
已修正的錯誤與故障
次要修正以及移除暫時的因應措施。
內部編號:OTP-8755 輔助編號:seq-11628、seq-11639
inviso_autostart_server 中的小修正。
內部編號:OTP-8783 輔助編號:seq11628
Runtime_Tools 1.8.4
改進與新功能
其他雜項更新。
內部編號:OTP-8705
Runtime_Tools 1.8.3
改進與新功能
交叉編譯改進和其他組建系統改進。
最值得注意的是
- 許多交叉編譯改進。舊的交叉編譯支援或多或少是不存在的,而且已損壞。請注意,交叉編譯支援仍應被視為實驗性的。另請注意,舊的交叉編譯組態在未修改的情況下無法使用。如需有關交叉編譯 Erlang/OTP 的更多資訊,請參閱
$ERL_TOP/INSTALL-CROSS.md
檔案。 - 支援使用 DESTDIR 進行分階段安裝。舊的損壞
INSTALL_PREFIX
也已修復。如需更多資訊,請參閱$ERL_TOP/INSTALL.md
檔案。 - 頂層
Makefile
的release
目標的文件。如需更多資訊,請參閱$ERL_TOP/INSTALL.md
檔案。 make install
現在預設建立相對符號連結,而非絕對符號連結。如需更多資訊,請參閱$ERL_TOP/INSTALL.md
檔案。$ERL_TOP/configure --help=recursive
現在可以運作,並印出所有具有configure
指令碼的應用程式的說明。- 在
make all
之後直接執行make install
或make release
不會再觸發其他雜項重建。 - 在沒有先執行
make all
的情況下執行make install
或make release
時,現在會使用現有的引導系統。 - 當動態連結到
libssl.so
和libcrypto.so
時,crypto
和ssl
應用程式使用相同的執行階段程式庫路徑。執行階段程式庫搜尋路徑也已延伸。 erl_interface
和odbc
的configure
指令碼現在會以與 ERTS 相同的方式搜尋執行緒程式庫和執行緒程式庫怪癖。- 當在 64 位元系統上組建時,
odbc
應用程式的configure
指令碼現在也會在lib64
和lib/64
目錄中尋找 odbc 程式庫。 - 現在會自動產生
erl_interface
應用程式中的config.h.in
檔案,而不是靜態更新,這減少了configure
測試沒有任何效果的風險。
(感謝 Henrik Riomar 的建議與測試)
(感謝 Winston Smith 的 AVR32-Linux 交叉組態與測試)
* 可能不相容 *
內部編號:OTP-8323
- 許多交叉編譯改進。舊的交叉編譯支援或多或少是不存在的,而且已損壞。請注意,交叉編譯支援仍應被視為實驗性的。另請注意,舊的交叉編譯組態在未修改的情況下無法使用。如需有關交叉編譯 Erlang/OTP 的更多資訊,請參閱
由 tidier 建議的清理,以及類型和規格的現代化。
內部編號:OTP-8455
Runtime_Tools 1.8.2
改進與新功能
文件現在使用大多數平台上都存在的開源工具 (xsltproc 和 fop) 構建。一個明顯的變化是框架已被移除。
自有 ID: OTP-8201
Runtime_Tools 1.8.1
已修復的錯誤和故障
Makefile.in
已更新為使用 LDFLAGS 環境變數(如果已設定)。(感謝 Davide Pesavento。)自有 ID: OTP-8157
Runtime_Tools 1.8
改進與新功能
如果模擬器的自訂記憶體分配器已關閉(例如使用
+Meamin
選項),etop
會崩潰。自有 ID: OTP-7519
版權聲明已更新。
自有 ID: OTP-7851
現在,dbg:p/2 接受文件中所述的 {X,Y,Z} 處理程序規格。它現在也接受類似於 erlang:pid_to_list/1 的 "<X.Y.Z>"。
dbg 中現在有一個預先儲存的 match spec,可節省大量的輸入。使用 dbg:ltp/0 了解更多...
自有 ID: OTP-7867
Runtime_Tools 1.7.3
已修復的錯誤和故障
修正了時間戳問題,其中某些事件可能會以無序的方式發送。資料呈現的次要修復。
自有 ID: OTP-7544 輔助 ID: otp-7442
Runtime_Tools 1.7.2
已修復的錯誤和故障
etop
現在比以前更快更可靠地收集處理程序資訊(已消除 Igor Goryachev 報告的競爭條件)。當呼叫
ttb:stop/0
時,追蹤訊息可能會遺失。自有 ID: OTP-7164
Runtime_Tools 1.7.1
改進與新功能
文件已更新,以反映 Erlang shell 的最新更新以及
io_lib
模組的控制序列p
的次要修改。已從程式碼範例和 Erlang shell 範例中移除多餘的空行。
自有 ID: OTP-6944 輔助 ID: OTP-6554, OTP-6911
記憶體管理改進,特別是針對支援 SMP 的執行階段系統
- 支援 SMP 的執行階段系統現在可以使用大多數記憶體分配器的多個、特定於執行緒的實例。由於它可以減少記憶體分配器中的鎖爭用,因此可以提高效能。但是,對於某些應用程式,它可能會增加記憶體使用量。支援 SMP 的執行階段系統預設會在大多數分配器上啟用此功能。可以配置所使用的實例數量。
driver_alloc()
、driver_realloc()
和driver_free()
現在使用它們自己的 erts 特定記憶體分配器,而不是系統上的預設malloc()
實作。- 某些分配器的預設組態已變更,以更符合使用大量記憶體的應用程式。
- 已新增一些新的
erts_alloc
組態參數。 - 已修改
erts_alloc_config
,使其能夠建立適用於多個分配器實例的組態。 - 已變更從
erlang:system_info({allocator, Alloc})
傳回的值。這是因為分配器現在可能會在多個實例中執行。
如果由於某些原因您希望像以前一樣組態記憶體分配器,則可以將
+Mea r11b
命令列引數傳遞給erl
。如需詳細資訊,請參閱
erts_alloc(3)
、m:erts_alloc_config
和erlang
文件。* 可能不相容 *
自有 ID: OTP-7100
Runtime_Tools 1.7
已修復的錯誤和故障
如果追蹤器處理程序因退出原因
kill
而終止,dbg
可能會讓已追蹤的處理程序處於暫停狀態。已引入
erlang:suspend_process/2
,它接受選項清單作為第二個引數。如需詳細資訊,請參閱erlang
文件。如果呼叫
erlang:suspend_process/[1,2]
的處理程序終止,則透過erlang:suspend_process/[1,2]
暫停的處理程序現在會自動恢復。先前,處理程序可能會由一個處理程序暫停,然後由另一個處理程序恢復,除非有人追蹤被暫停者。這不再可能。恢復處理程序的處理程序必須是暫停它的處理程序。
* 可能不相容 *
自有 ID: OTP-6946
改進與新功能
已移除未記錄且不受支援的函式
dbg:tracer/1
。已移除未記錄、不受支援且損壞的函式dbg:i/1
。自有 ID: OTP-6939
Runtime_Tools 1.6.8
已修復的錯誤和故障
在此版本中,已修復和增強以下功能:自動啟動:現在可以設定將由自動啟動機制載入的模組。這是因為並非所有應用程式系統都使用 OTP 開機指令碼來設定所有 Erlang 模組的路徑。Runtime_tools/Inviso:已修復擷取記錄功能中的錯誤。此外,已在此修補程式中(再次)修復先前修補程式中(據說)修復的與元追蹤器 write_ti 相關的錯誤。已修復 inviso_as_lib 中的錯誤,該錯誤導致遠端自動啟動組態檔更新失敗。Inviso:已為 inviso_tool 提供刷新 API。
自有 ID: OTP-6918
Runtime_Tools 1.6.7
改進與新功能
已完成下列錯誤/改進:inviso_rt 和 inviso_rt_meta 之間的內部交互運作。inviso_rt 用於呼叫 inviso_rt_meta 的呼叫函式現在受到監視器的保護。inviso_rt_meta 現在在呼叫呼叫回呼時包含傳入元追蹤訊息的時間戳。(可以將「更好」的時間戳新增至 ti 檔案。)inviso_tool 中的錯誤導致終止時無法移除追蹤模式。內部函式 h_start_session 中的錯誤導致如果沒有活動節點來啟動會話,inviso_tool 會崩潰。使用者-inviso_tool 和 inviso API-inviso 控制元件請求/回應 gen_server 通訊協定具有預設逾時。由於許多追蹤操作可能很耗時,因此需要更長的逾時。已改善過載保護。現在可以讓過載保護自行更新(例如,在從外部過載保護器退出後)。inviso_rt_meta 現在完全使用 exception_trace match spec action term。在 inviso_tool 中執行追蹤案例 API(與啟用和停用追蹤案例 API 相反)。已將刷新追蹤埠 API 新增至 inviso。已將 Get_session_data API 新增至 inviso_tool。已改善 inviso_tool:stop,使其可以命名在 inviso_tool 終止時不應移除其追蹤模式的節點。如果在 inviso_rt_meta 中從呼叫/從呼叫傳回回呼傳回,則處理寫入多個 ti 條目的錯誤。當 inviso_tool 終止時,處理程序追蹤旗標不再被明確移除。沒有必要。inviso_tool get_autostart_data 採用標準自動啟動器。
* 與元追蹤回呼的不相容性現在使用不同的引數呼叫。*
自有 ID: OTP-6881
Runtime_Tools 1.6.6
已修復的錯誤和故障
inviso_rt_meta 中的錯誤導致在暫停追蹤時遺失包含有關已啟動 (init_tpm) 函式的資訊的 ETS 表格。此外,inviso_rt 中已引入增強功能,使其可以根據全域註冊的名稱啟用處理程序追蹤旗標。然後,在名稱不存在的節點上啟用全域名稱不會發生錯誤。傳回值中的處理程序計數將簡單地設定為零(因此,傳回值的 NodeResult 部分中恰好一個節點將指示找到一個匹配的處理程序)。在 fetch_log API 中發現錯誤。同時,還增強了 fetch_log 功能以提供流程控制,使擷取器處理程序以較慢的速度傳送傳輸的檔案資料區塊。
自有 ID: OTP-6703
改進與新功能
次要 Makefile 變更。
自有 ID: OTP-6689 輔助 ID: OTP-6742
已新增一個名為
erts_alloc_config
的實驗性工具。erts_alloc_config
旨在用於協助建立適合有限數量執行階段情境的erts_alloc
組態。如需詳細資訊,請參閱m:erts_alloc_config
文件。自有 ID: OTP-6700
Runtime_Tools 1.6.5
改進與新功能
雜項改進。
自有 ID: OTP-6576
Runtime_Tools 1.6.4
改進與新功能
此應用程式已更新以消除 Dialyzer 的警告。
自有 ID: OTP-6551
Runtime_Tools 1.6.3
已修正的錯誤與故障
此票券包含對 runtime_tools 和 inviso 的多項改進和錯誤修正。過載機制現在也可以對傳入的訊息做出反應。如果使用外部過載監視器,這會很有用。預設自動啟動機制 - inviso_autostart_server 的變數綁定已進行一些改進。自動啟動「工作」現在可以並行完成,允許某些工作在繼續之前掛起等待追蹤系統的某些部分準備就緒。先前使用具名元匹配規格 (tpm_ms) 時,如果最後結果為零個匹配規格,仍會保持元追蹤模式啟用。這會導致零個匹配規格等於對該特定函數進行無限的元追蹤。如果內部資料庫中沒有元匹配規格,則會移除該函數的元追蹤模式。inviso 執行時元追蹤器程序中的標準公共迴圈資料現在已擴展為 2 元組。新增了函數 ctp/1 和 ctpl/1,可以移除一組函數的追蹤模式,而不是一次移除一個。除了單個二進制檔外,Inviso_rt_meta 現在將接受要輸出到追蹤資訊檔案中的二進制檔列表。此外,還可以使用 write_ti/1 函數將自己的輸出寫入追蹤資訊檔案中。在 inviso_rt 中發現一個錯誤,如果 inviso_rt 因「單獨執行」(不允許在沒有控制元件的情況下執行)而終止,則會導致 inviso_rt_meta 保持執行狀態而不是終止。已在 inviso 應用程式中新增一個新工具 inviso_tool。
自有 ID:OTP-6426
Runtime_Tools 1.6.2
已修正的錯誤與故障
已在 runtime_tools 和 observer 應用程式中消除幾個小錯誤和競爭條件。
自有 ID:OTP-6265
Runtime_Tools 1.6.1
改進和新功能
有新的 BIF
erlang:spawn_monitor/1,3
,以及spawn_opt/2,3,4,5
的新選項monitor
。已更新
observer_backend
模組以處理新的 BIF。自有 ID:OTP-6281
Runtime_Tools 1.6
新增 Inviso 追蹤器的執行階段部分,有關更多資訊,請參閱新的 Inviso 應用程式。這也意味著為 Runtime_Tools 新增一個應用程式回呼模組和應用程式監管器樹狀結構。
Runtime_Tools 1.5.1.1
改進和新功能
已更新
dbg
手冊頁面,其中包含有關如何在追蹤時避免死鎖的資訊。自有 ID:OTP-5373 輔助 ID:seq9729
Runtime_Tools 1.5.1
已修正的錯誤與故障
現在,當模擬器啟用執行緒支援時,Crypto 和 Asn1 應用程式中連結的驅動程式會使用 Unix 上的
-D_THREAD_SAFE
和-D_REENTRANT
開關進行編譯。MacOSX 上連結的驅動程式不再使用未公開的
-lbundle1.o
開關進行編譯。感謝 Sean Hinde 發送給我們修補程式。現在,Crypto 中連結的驅動程式和 SSL 中的埠程式可以在 OSF1 上編譯。
Runtime_Tools 中的次要
Makefile
改進。自有 ID:OTP-5346