查看源代码 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
使用本地 fun 在远程节点上设置跟踪器。只要远程节点运行完全相同版本的 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
修复的 Bug 和故障
函数
dbg:n/1
使用本地 fun 在远程节点上设置跟踪器。只要远程节点运行完全相同版本的 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
修复的 Bug 和故障
函数
dbg:n/1
使用本地 fun 在远程节点上设置跟踪器。只要远程节点运行完全相同版本的 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
修复的 Bug 和故障
system_information:to_file/1
现在将使用稍微少一点的内存。自有 ID: OTP-14816
Runtime_Tools 1.12.4
改进和新功能
新的
erts_alloc
策略系列:Age Order First Fit。类似于“地址顺序”,但总是选择最老的可能的载体进行分配。自有 ID: OTP-14917 辅助 ID: ERIERL-88
Runtime_Tools 1.12.3
修复的 Bug 和故障
删除了文档中所有旧的未使用的文件。
自有 ID: OTP-14475 辅助 ID: ERL-409, PR-1493
Runtime_Tools 1.12.2
改进和新功能
通用的 Unicode 改进。
自有 ID: OTP-14462
Runtime_Tools 1.12.1
修复的 Bug 和故障
将跟踪模式保存到文件时添加了错误的编码注释。现在已更正。
自有 ID: OTP-14479
Runtime_Tools 1.12
修复的 Bug 和故障
在具有
on_load
指令(HiPE 尚不支持)的模块中添加编译选项-compile(no_native)
。自有 ID: OTP-14316 辅助 ID: PR-1390
改进和新功能
由于包含任意 Unicode 字符的原子而进行的各种更新。
自有 ID: OTP-14285
现在可以在支持的平台上将套接字绑定到设备 (SO_BINDTODEVICE)。
例如,这已在 Linux 下实现以支持 VRF-Lite;请参阅 VRF 和 GitHub 拉取请求 #1326。
自有 ID: OTP-14357 辅助 ID: PR-1326
Runtime_Tools 1.11.1
修复的 Bug 和故障
etop 错误地报告了自工具首次启动以来的平均调度器利用率,而不是自上次更新以来的调度器利用率。现在已更正。
自有 ID: OTP-14090 辅助 ID: seq13232
Runtime_Tools 1.11
改进和新功能
为 ttb:tracer/2 添加选项
queue_size
。 这将为 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
修复的 Bug 和故障
修复了 dbg:trace_port/2 中的一个错误,该错误可能导致跟踪 ip 驱动程序产生错误的错误报告“...(re)selected before stop_select was called for driver trace_ip_drv”。
自有 ID: OTP-13576 辅助 ID: ERL-119
改进和新功能
添加微状态记帐
微状态记帐是一种跟踪 ERTS 中不同线程处于哪种状态的方法。主要使用领域是通过检查线程处于哪种状态,然后从那里找出为什么以及在哪里进行优化来找出性能瓶颈。
由于检查是否启用微状态记帐相对昂贵,因此默认情况下仅启用少数状态,并且可以通过配置启用更多状态。
有一个名为 msacc 的便利模块已添加到 runtime_tools 中,该模块可以帮助收集和解释来自微状态记帐的数据。
有关更多信息,请参阅 erlang:statistics(microstateaccounting, ) 和 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 sink。有关所有跟踪点的列表,请参阅 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
修复的 Bug 和故障
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
中,以便以类似于driver_version
的方式获取运行时系统的 NIF API 版本。自有 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
一个新的用于测试 appup 文件的测试实用程序已添加到 test_server。现在,OTP 中的大多数应用程序都使用它。
(感谢 Tobias Schlager)
自有 ID: OTP-11744
改进和新功能
允许安装路径包含 unicode 字符。
自有 ID: OTP-10877
erts_alloc_config
工具已更新,以生成更适合 VM 中当前 SMP 支持的配置。自有 ID: OTP-11662
引入了
app
文件键runtime_dependencies
。运行时依赖项已添加到 OTP 中的所有 app 文件中。请注意,在 OTP 17 期间,这些可能不是完全正确的,但正在积极地进行改进。
函数
system_information:sanity_check/0
将在调用时验证系统中所有声明的运行时依赖项。自有 ID: OTP-11773
Runtime_Tools 1.8.13
修复的错误和故障
当 ERTS 内部内存分配器被禁用时,Observer 没有产生正确的结果。
自有 ID: OTP-11520
Runtime_Tools 1.8.12
修复的错误和故障
进程跟踪标志 'silent' 现在允许在调用 dbg:p/2 中使用。
自有 ID: OTP-11222
改进和新功能
引入了用于检查系统和构建配置的功能。
自有 ID: OTP-11196
Runtime_Tools 1.8.11
修复的错误和故障
修复了观察器中与 CPU/调度程序利用率计算相关的一些错误。
当运行 hipe 时,进程的当前函数被接受为 'undefined'。
自有 ID: OTP-10894
改进和新功能
包含非 ASCII 字符的 Erlang 源文件现在以 UTF-8 编码(而不是 latin1)。
自有 ID: OTP-11041 辅助 ID: OTP-10907
Runtime_Tools 1.8.10
修复的错误和故障
修复了当 ets 表不再存在时表查看器刷新崩溃的问题 (感谢 Peti Gömori)
自有 ID: OTP-10635
改进和新功能
动态跟踪工具 dtrace 和 systemtap 的用户指南已添加到文档中。
自有 ID: OTP-10155
在必要时,已将声明编码的注释添加到 Erlang 文件中。该注释旨在在 UTF-8 成为默认编码时在 Erlang/OTP R17B 中删除。
自有 ID: OTP-10630
已更正一些超出 PDF 页面宽度的示例。
自有 ID: OTP-10665
后端模块 appmon_info.erl 从 appmon 应用程序移动到 runtime_tools。这允许从远程 erlang 节点向没有安装 appmon(及其依赖项)的目标节点运行 appmon,只要那里安装了 runtime_tools。
自有 ID: OTP-10786
Runtime_Tools 1.8.9
修复的错误和故障
更改模块级文档,以提供使用 `dyntrace:p()` 跟踪函数的完整逐步说明。(感谢 Scott Lystig Fritchie)
自有 ID: OTP-10141
向 dyntrace.erl 和 dyntrace.c 添加 1024 个单独的 USDT 探针 (感谢 Scott Lystig Fritchie)
自有 ID: OTP-10143
将 DTrace 探针的主体重新定位到静态链接的 VM。
由于各种操作系统(在 DTrace 和 SystemTap 世界中)并不完全支持共享库中的 DTrace 探针(或 SystemTap 兼容模式探针),我们将这些探针重新定位到静态链接的虚拟机。这可以被视为(尚未)实验性功能对原始 VM 的污染。然而
1. 此代码可以通过 C 预处理器完全消除。2. 将探针保留在 dyntrace NIF 共享库中在太多平台上根本无法正常工作。非常感谢 Basho 的 Macneil Shonle 在我受伤的手指失效时提供了帮助。(注意:Solaris 10 和 FreeBSD 9.0-RELEASE 可能需要很长时间才能编译)
自有 ID: OTP-10189
Runtime_Tools 1.8.8
改进和新功能
来自 Scott Lystig Fritchie 的 DTrace 源代码补丁已集成到源代码树中。对于生产用途,仍然不支持使用带有 dtrace 探针的模拟器,但它可能是一个有价值的调试工具。使用 --with-dynamic-trace=dtrace(或 --with-dynamic-trace=systemtap)进行配置以创建启用 dtrace 探针的构建。有关文档和示例,请参阅 runtime_tools。
自有 ID: OTP-10017
Runtime_Tools 1.8.7
修复的错误和故障
早期的 dbg:stop 只执行了 erlang:trace_delivered,并没有刷新跟踪文件驱动程序。因此,当 dbg:stop 返回时,可能仍然存在已传递到驱动程序(由 erlang:trace_delivered 保证)但尚未写入文件的跟踪消息。现在在 dbg 进程终止之前,在每个节点上添加刷新。
自有 ID: OTP-9651
由 trace_file_drv 驱动程序创建的文件句柄被继承到子进程。现在已更正。
自有 ID: OTP-9658
改进和新功能
如果您限制作业的数量,例如使用 '
make -j6
' 或 'make -j10
',则现在可以使用并行 make 构建 Erlang/OTP。由于缺少一些依赖项,'make -j
' 目前不起作用。自有 ID: OTP-9451
添加了两个新的内置跟踪模式别名:caller_trace (c) 和 caller_exception_trace (cx)。有关详细信息,请参阅 dbg:ltp/0 文档。
自有 ID: OTP-9458
Runtime_Tools 1.8.6
改进和新功能
添加了两个新的内置跟踪模式别名:caller_trace (c) 和 caller_exception_trace (cx)。有关详细信息,请参阅 dbg:ltp/0 文档。
自有 ID: OTP-9458
Runtime_Tools 1.8.5
改进和新功能
当 inviso 设置大量跟踪模式时,Erlang VM 可能会在几秒钟内无响应。现在已更正。
自有 ID: OTP-9048 辅助 ID: seq11480
Runtime_Tools 1.8.4.1
修复的错误和故障
次要更正和删除临时解决方法。
自有 ID: OTP-8755 辅助 ID: seq-11628, seq-11639
inviso_autostart_server 中的小修复。
自有 ID: OTP-8783 辅助 ID: seq11628
Runtime_Tools 1.8.4
改进和新功能
杂项更新。
自有 ID: 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 交叉配置和测试)
*潜在的不兼容性 *
自有 ID:OTP-8323
- 大量的交叉编译改进。旧的交叉编译支持或多或少是不存在的,而且是坏的。请注意,交叉编译支持仍然应被视为实验性的。另请注意,旧的交叉编译配置如果不进行修改则无法使用。有关交叉编译 Erlang/OTP 的更多信息,请参阅
由 tidier 建议的清理以及类型和规范的现代化。
自有 ID:OTP-8455
Runtime_Tools 1.8.2
改进和新功能
现在使用大多数平台上都存在的开源工具(xsltproc 和 fop)构建文档。一个明显的变化是删除了框架。
自有 ID:OTP-8201
Runtime_Tools 1.8.1
修复的 Bug 和故障
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 中现在有一个预先保存的匹配规范,可以节省大量输入。使用 dbg:ltp/0 了解更多信息...
自有 ID:OTP-7867
Runtime_Tools 1.7.3
修复的 Bug 和故障
修复了时间戳问题,其中某些事件可能会乱序发送。对数据呈现的微小修复。
自有 ID:OTP-7544 辅助 ID:otp-7442
Runtime_Tools 1.7.2
修复的 Bug 和故障
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
修复的 Bug 和故障
如果跟踪器进程以退出原因
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
修复的 Bug 和故障
在此版本中,已修复和增强了以下内容:自动启动:现在可以配置应由自动启动机制加载的模块。这是因为并非所有应用程序系统都确定使用 OTP 启动脚本来设置所有 Erlang 模块的路径。Runtime_tools/Inviso:修复了 fetch_log 功能中的一个错误。此外,在此补丁中(再次)修复了先前补丁中(据称)修复的关于元跟踪器 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 文件中。)invioso_tool 中的错误导致在终止时无法删除追踪模式。内部函数 h_start_session 中的错误导致如果没有活动节点来启动会话,则 inviso_tool 会崩溃。用户 inviso_tool 和 inviso API 的控制组件请求/响应 gen_server 协议具有默认超时。由于许多跟踪操作可能非常耗时,因此需要更长的超时。改进了过载保护。现在可以使过载保护自行更新(例如,在从外部过载保护器退出后)。inviso_rt_meta 现在完全使用 exception_trace match spec action term。inviso_tool 中实现了运行追踪用例 API(与激活和停用追踪用例 API 相反)。向 inviso 添加了刷新追踪端口 API。向 inviso_tool 添加了 Get_session_data API。改进了 inviso_tool:stop,使其可以命名在 inviso_tool 终止时不会删除其跟踪模式的节点。如果从 inviso_rt_meta 中的 call/return_from call-back 返回,则在处理写入多个 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 进行了一些变量绑定的改进。现在可以并行执行自动启动“作业”,从而允许某些作业挂起,等待被跟踪系统的某些部分准备就绪后再继续。以前,当使用命名的 meta-match-specs (tpm_ms) 时,最终得到零个 match-specs 仍然保持元追踪模式活动。这导致零个 match-specs 等于对该特定函数进行无限元追踪。如果内部数据库中的元 match specs 为空,则会删除该函数的元追踪模式。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 添加了应用程序回调模块和应用程序 supervisor 树。
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