查看源代码 Observer 发行说明

本文档描述了对 Observer 应用程序所做的更改。

Observer 2.17

修复的 Bug 和故障

  • crashdump_viewer 的内存选项卡中,分配器摘要中的块大小都将显示为 N/A

    自身 ID:OTP-19353 辅助 ID:PR-8532

改进和新功能

  • 内核应用程序现在可以识别 epmd_moduleerl_epmd_listen_port 参数,类似于 -kernel:connect_all

    自身 ID:OTP-19253 辅助 ID:PR-8671

Observer 2.16

修复的 Bug 和故障

  • 此应用程序的依赖项现在列在 app 文件中。

    自身 ID:OTP-18831 辅助 ID:PR-7441

改进和新功能

  • 可以使用新函数 proc_lib:set_label/1 为任何没有注册名称的进程添加描述性术语。该名称将由 c:i/0observer 等工具显示,并且将包含在使用 gen_servergen_statemgen_eventgen_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

    自身 ID:OTP-18789 辅助 ID:PR-7720PR-8003

  • 文档已迁移为使用 Markdown 和 ExDoc。

    自身 ID:OTP-18955 辅助 ID:PR-8026

  • etop 已更新为使用 dbg:session/2,以避免干扰任何其他跟踪。

    自身 ID:OTP-19082 辅助 ID:PR-8363

Observer 2.15.1

修复的 Bug 和故障

  • 通过菜单关闭跟踪日志窗口不起作用。

    自身 ID:OTP-18722 辅助 ID:PR-7462

Observer 2.15

改进和新功能

  • 运行时依赖项已更新。

    自身 ID:OTP-18350

  • 添加了 start/1start_and_wait functions/1|2 函数。

    自身 ID:OTP-18430 辅助 ID:PR-6397

  • 弃用 dbg:stop_clear/0,因为它只是 dbg:stop/0 的函数别名

    自身 ID:OTP-18478 辅助 ID:GH-6903

Observer 2.14.0.1

修复的 Bug 和故障

  • 修复了运行时依赖项。

    自身 ID:OTP-19064

Observer 2.14

修复的 Bug 和故障

  • 处理套接字或端口信息时,WX 事件竞争可能导致崩溃。

    自身 ID:OTP-18339

改进和新功能

  • 改进节点菜单以包含更多节点。

    自身 ID:OTP-18269 辅助 ID:PR-6030

Observer 2.13

改进和新功能

  • 修复了 GUI 中的单位。

    自身 ID:OTP-18151 辅助 ID:PR-6063

Observer 2.12

修复的 Bug 和故障

  • 修复了 Mac 特定菜单的默认处理。

    自身 ID:OTP-17996 辅助 ID:PR-5795

  • 在 macOS 和 Windows 上读取端口套接字选项时,“跳过”无效选项。

    自身 ID:OTP-18012 辅助 ID:#5798

改进和新功能

Observer 2.11.1

修复的 Bug 和故障

  • 修复了 crashdump_viewer 中远程进程标识符的节点信息查找。

    自身 ID:OTP-17995 辅助 ID:PR-5804

Observer 2.11

改进和新功能

  • etop 中计算显示宽度,而不是将其硬编码为 89 个字符。

    自身 ID:OTP-17880 辅助 ID:PR-5557

Observer 2.10.1

修复的 Bug 和故障

  • 修复了崩溃转储中的一个 Bug,其中进程的堆栈帧将使用不正确的格式打印。

    崩溃转储查看器也已修复,可以读取损坏的堆栈格式。

    该 Bug 自 Erlang/OTP 23.0 起就存在。

    自身 ID:OTP-17814 辅助 ID:PR-5462

Observer 2.10

修复的 Bug 和故障

  • 具有大于 255 的 Unicode 代码点(例如,希腊语或西里尔字符)的原子将无法由 crashdump_viewer 正确显示。

    自身 ID:OTP-17377

  • 修复了 crashdump_viewer 以便能够正确解析 monitor_node/2 监视器。

    自身 ID:OTP-17425 辅助 ID:PR-4799

改进和新功能

  • Observer 现在有一个新的套接字部分。

    自身 ID:OTP-17346

  • 在跟踪窗口中添加了跟踪全部按钮。

    自身 ID:OTP-17520 辅助 ID:PR-4962

Observer 2.9.6

改进和新功能

  • 更新了 GUI 部分以使用新的 wx 版本。

    自身 ID:OTP-17214

Observer 2.9.5

修复的 Bug 和故障

  • 修复了 Windows 上图表窗口的闪烁。

    自身 ID:OTP-16778

Observer 2.9.4

改进和新功能

  • 由于进行了新的生成改进,进行了细微更新。

    自身 ID:OTP-16368 辅助 ID:OTP-15251

Observer 2.9.3

修复的 Bug 和故障

  • Crashdump Viewer 如何处理旧二进制 VHeap 溢出的崩溃转储。

    自身 ID:OTP-16296

Observer 2.9.2

修复的 Bug 和故障

  • 修复了用户从展开的术语窗口单击 PID 上的链接后出现的 Bug。

    自身 ID:OTP-15980 辅助 ID:PR-2201

改进和新功能

  • 改进了 Linux 上的深色模式颜色。

    自身 ID:OTP-15916 辅助 ID:ERL-921

Observer 2.9.1

修复的 Bug 和故障

  • 所有不正确(即所有)使用“can not”的地方都已更正为“cannot”,包括源代码注释、文档和示例等。

    自身 ID:OTP-14282 辅助 ID:PR-1891

Observer 2.9

修复的 Bug 和故障

  • 自从 OTP-21.0 中引入 Logger 之后,除非显式安装了 error_logger 事件处理程序,否则 observer 中的菜单选项“日志 > 切换日志视图”会导致崩溃。现在已更正此问题。

    自身 ID:OTP-15553 辅助 ID:ERL-848

改进和新功能

  • 自从引入 persistent_term 之后,observer 有时会在从进程状态展开术语时崩溃。现在已更正此问题。

    自身 ID:OTP-15493 辅助 ID:ERL-810

  • 添加用于 HiDPI 支持的 OBSERVER_SCALE 环境变量。

    自身 ID:OTP-15586 辅助 ID:PR-2105

Observer 2.8.2

修复的 Bug 和故障

  • 转储到崩溃转储中的字面量(例如 #{"one"=>1})会导致 crashdump_viewer 崩溃。

    自身 ID: OTP-15365 辅助 ID: ERL-722

  • crashdump_viewer 在处理 literals 区域中被截断的转储时,有时会崩溃。现在已修复此问题。

    自身 ID: OTP-15377

  • 自 OTP-20.2 起,当打开包含大量进程的崩溃转储时,crashdump_viewer 非常慢。可以删除每个进程的 ets:select,从而大大提高了性能。

    在崩溃转储中解析堆数据时的一个错误导致 crashdump_viewer 在多个 Yc 行引用同一个引用计数的二进制文件时崩溃。现在已修复此问题。

    自身 ID: OTP-15391

Observer 2.8.1

修复的错误和故障

  • 改进了文档。

    自身 ID: OTP-15190

Observer 2.8

修复的错误和故障

  • 添加了垃圾回收选定进程的功能,并修复了保存的配置文件包含错误数据时发生的崩溃。

    自身 ID: OTP-14993 辅助 ID: PR-1666

改进和新功能

  • 使用 uri_string 模块代替 http_uri。

    自身 ID: OTP-14902

Observer 2.7

修复的错误和故障

  • etop.hrl 使用相对路径来包含 observer_backend.hrl,现在已更改为使用 include_lib 代替。runtime_tools/include 被添加到三级引导中。

    自身 ID: OTP-14842 辅助 ID: ERL-534

  • 如果崩溃转储在模块的属性部分被截断,当从 GUI 打开模块视图时,crashdump_viewer 会崩溃。此错误是在 OTP-20.2 中引入的,现在已修复。

    自身 ID: OTP-14846 辅助 ID: ERL-537

  • 优化了 observer GUI 中的 ets 和 mnesia 表视图选项卡,之前列出 10000 个表非常慢。

    自身 ID: OTP-14856 辅助 ID: ERIERL-117

改进和新功能

  • 当进程有许多链接和/或监视器时,之前可能需要很长时间才能显示进程信息窗口。现在通过仅显示一些链接和监视器,然后显示一个名为“更多...”的链接来展开其余部分,从而对此进行了改进。

    自身 ID: OTP-14725

  • 更多崩溃转储信息,例如:进程二进制虚拟堆统计信息、GC 期间导致内存不足的进程的完整信息、更多端口相关信息和脏调度器信息。

    自身 ID: OTP-14820

Observer 2.6

修复的错误和故障

  • 在 OTP-20 中引入的一个错误会导致 Crashdump Viewer 在尝试展开一个空二进制文件时崩溃。现在已修复此问题。

    自身 ID: OTP-14642

  • 如果配置文件中的匹配规范包含多个子句,observer 之前会在尝试在 GUI 中显示它时崩溃。现在已修复此问题。

    自身 ID: OTP-14643 辅助 ID: ERL-489

  • 崩溃转储的写入速度显著加快。

    现在崩溃转储中包含映射。

    常量项仅会在一个进程中显示,而引用相同常量项的其他进程会显示不完整堆的标记。

    自身 ID: OTP-14685 辅助 ID: OTP-14611, OTP-14603, OTP-14595

改进和新功能

  • 现在崩溃转储中的二进制文件和其他一些数据以 base64 编码(而不是以十六进制编码),这将减小崩溃转储的大小。

    修复了 crashdump_viewer 中子二进制文件处理中的一些错误。

    自身 ID: OTP-14686

  • 为了允许未来的改进,Crashdump Viewer 现在会检查崩溃转储的版本标记,以查看它是否是已知的格式。如果崩溃转储版本比 Crashdump Viewer 准备读取的版本新,则会在 Crashdump Viewer 终止之前显示一个信息对话框。

    如果在崩溃转储中发现不完整的进程堆,Crashdump Viewer 现在会为此显示警告,类似于崩溃转储被截断时显示的警告。如果不包含文字,则可能会发生不完整的堆,对于 OTP-20.2 之前的所有转储都是这种情况。

    自身 ID: OTP-14755

Observer 2.5

改进和新功能

  • 对 Crashdump Viewer 进行了以下改进

    • 优化了读取包含许多二进制文件的崩溃转储。
    • 当打开进程的详细信息视图时,会显示进度条。
    • cdv 脚本现在设置 ERL_CRASH_DUMP_SECONDS=0 以避免从运行 Crashdump Viewer 的节点生成新的崩溃转储。
    • 如果运行 Crashdump Viewer 的节点可能会覆盖正在检查的崩溃转储,则会显示一个警告对话框。
    • 错误修复:在某些情况下,Crashdump Viewer 无法找到崩溃转储中“最后调用”部分的末尾,并且会错误地将崩溃转储标记为已截断。现在已修复此问题。
    • 错误修复:在某些情况下,即使崩溃转储在二进制部分被截断,并且与相关进程无关,特定进程的进程信息也会被 Crashdump Viewer 标记为已截断。现在已修复此问题。

    自身 ID: OTP-14386

  • 常规 Unicode 改进。

    自身 ID: OTP-14462

  • 更新了工具以正确显示 Unicode 原子。

    自身 ID: OTP-14464

  • 在 observer 的首页添加系统统计信息和限制。

    自身 ID: OTP-14536

Observer 2.4

修复的错误和故障

  • 当等待来自远程节点的数据时,etop 的硬编码超时值为 1 秒。当此超时过期时(例如,如果远程节点上有大量进程,则可能会发生这种情况),etop 将以原因 connection_lost 退出。为了克服这个问题,现在将超时更改为与更新间隔相同,该间隔是可配置的。

    自身 ID: OTP-14393

改进和新功能

  • 在性能监视器图中显示脏调度器线程,并在内存分配器表中添加一列,其中包含最大已分配内存。

    自身 ID: OTP-14137

  • 在刷新表后保留表和端口选择。在关闭前存储设置,并在启动应用程序时恢复。

    自身 ID: OTP-14270

  • 由于包含任意 Unicode 字符的原子而进行的各种更新。

    自身 ID: OTP-14285

  • 当观察早于 OTP-19.0 的节点时,当尝试访问端口信息时,将显示一个弹出窗口。之前,observer 在这种情况下会崩溃。

    自身 ID: OTP-14345 辅助 ID: ERL-399

Observer 2.3.1

修复的错误和故障

  • etop 错误地报告了自工具首次启动以来的平均调度器利用率,而不是自上次更新以来的调度器利用率。现在已修复此问题。

    自身 ID: OTP-14090 辅助 ID: seq13232

  • 当“标语”有多行时,crashdump_viewer 崩溃。现在已修复此问题。

    自身 ID: OTP-14093 辅助 ID: ERL-318

  • 在首次打开端口选项卡之前单击端口的 HTML 链接时,由于端口信息未初始化,observer 会崩溃。现在已修复此问题。

    自身 ID: OTP-14151 辅助 ID: PR-1296

  • dialyzer 和 observer 应用程序现在将使用一种可移植的方式来查找主目录。这意味着不再需要在 Windows 上手动设置 HOME 环境变量。

    自身 ID: OTP-14249 辅助 ID: ERL-161

Observer 2.3

修复的错误和故障

  • 可用于启动 crashdump_viewer 的 shell 脚本 (priv/bin/cdv) 和 bat 文件 (priv/bin/cdv.bat) 都启动了一个分布式 erlang 节点。这将导致任何启动第二个 crashdump_viewer 实例的尝试失败。为了解决这个问题,cdv 和 cdv.bat 现在在启动 crashdump_viewer 时使用非分布式节点。

    自身 ID: OTP-14010

  • 一个错误导致在 crashdump_viewer 中为 ets 表在“对象”列中显示桶数,并在“内存”列中显示对象数。现在已修复此问题。

    自身 ID: OTP-14064

改进和新功能

  • 向 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

Observer 2.2.2

修复的错误和故障

  • 修复了在请求 mnesia 表但不可用时,observer 中的错误处理。

    自身 ID: OTP-13845 辅助 ID: ERL-237

Observer 2.2.1

修复的错误和故障

  • 修复了在观察另一个节点的崩溃,该节点的调度器数量与当前节点不同。

    自身 ID: OTP-13702 辅助 ID: ERL-171

Observer 2.2

改进和新功能

  • 更新 observer GUI 以支持在端口上进行跟踪,并为发送/接收设置匹配规范。这需要在 runtime_tools/dbg 中进行一些小的错误修复。

    自身 ID: OTP-13481

  • 更新 dbg 和 ttb 以使用跟踪器模块作为跟踪器,并在端口上进行跟踪。

    自有 ID:OTP-13500

  • 增加了更改更新频率和图表窗口长度的功能。

    自有 ID:OTP-13555

  • 改进了背景颜色以适应深色主题和其他视觉改进。

    自有 ID:OTP-13556

  • 崩溃转储查看器现在允许端口信息“端口控制 fork 进程...”

    自有 ID:OTP-13647

Observer 2.1.2

改进和新功能

  • 文档更正。

    自有 ID:OTP-12994

Observer 2.1.1

修复的错误和故障

  • 在崩溃转储查看器的弹出窗口中显示 ets 所有者 pid,感谢 Leo Liu。

    自有 ID:OTP-13030

  • 一些首字母缩略词(例如,ERTS、ETS、SMP)被用作标题。它们被错误地大写了。

    自有 ID:OTP-13044

  • 修复了当转储包含截断的二进制文件时崩溃转储查看器中的崩溃。

    自有 ID:OTP-13163

Observer 2.1

修复的错误和故障

  • 在崩溃转储查看器中显示运行队列状态。

    自有 ID:OTP-12401

  • 如果没有更改,则不要刷新 observer 表视图

    自有 ID:OTP-12819

改进和新功能

  • 添加了对 Erlang/OTP 18 的崩溃转储中可用的新崩溃转储信息的显示。

    自有 ID:OTP-12363

  • 添加了查看进程的 sasl 日志条目的功能。

    自有 ID:OTP-12504

  • 添加内存分配器使用情况和利用率图表。

    自有 ID:OTP-12631

Observer 2.0.4

修复的错误和故障

  • 修复了打开进程信息窗口时的崩溃。

    自有 ID:OTP-12634

Observer 2.0.3

修复的错误和故障

  • 从用户指南中删除了一条说明,表示只能观察 R15B 节点。

    自有 ID:OTP-12078

Observer 2.0.2

修复的错误和故障

  • 修复了 Windows 上的状态栏

    自有 ID:OTP-12162

Observer 2.0.1

修复的错误和故障

  • 如果将计时器的所有者指定为进程的注册名称,则 crashdump_viewer 会崩溃。 这已得到纠正。

    自有 ID:OTP-11919

  • 修复崩溃和小的更新。

    自有 ID:OTP-11949

Observer 2.0

修复的错误和故障

  • etop 跟踪处理程序现在可以在 smp 环境中工作(感谢 Péter Gömöri)

    自有 ID:OTP-11633

  • 以下应用程序的应用程序升级 (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)

    自有 ID:OTP-11744

改进和新功能

  • 删除了基于 gs 的应用程序和基于 gs 的后端。 observer 应用程序取代了已删除的应用程序。

    *潜在的不兼容性*

    自有 ID:OTP-10915

  • crashdump_viewer 使用 wx 重写。 crashdump_viewer 的旧 webtool 接口不再存在。

    *潜在的不兼容性*

    自有 ID:OTP-11179

Observer 1.3.1.2

修复的错误和故障

  • ttb:tracer/2 的文档错误地指出有一个名为 'overload' 的选项,而实现中使用的正确名称是 'overload_check'。

    自有 ID:OTP-11335 辅助 ID:seq12385

  • 修复了 observer 文档中的拼写错误。感谢 Dave Parfitt。

    自有 ID:OTP-11475

Observer 1.3.1.1

改进和新功能

  • notes.xml 文件的编码已从 latin1 更改为 utf-8,以避免将来出现合并问题。

    自有 ID:OTP-11310

Observer 1.3.1

修复的错误和故障

  • 纠正了 observer 中与 CPU/调度器利用率计算相关的一些错误。

    当运行 hipe 时,进程的当前函数被接受为“未定义”。

    自有 ID:OTP-10894

改进和新功能

    • 崩溃转储中的新内存字段现在由崩溃转储查看器在进程概述和进程详细信息页面中显示。
    • 在崩溃转储查看器的分配器信息页面中添加了块和载体大小的摘要。

    自有 ID:OTP-10604 辅助 ID:kunagi-336 [247]

  • 在 Mac OS X 上使用“open”作为崩溃转储查看器的默认浏览器。感谢 Magnus Henoch。

    自有 ID:OTP-10929

  • 修复了格式化不正确列表时 observer 表查看器崩溃的问题。感谢 Andrey Tsirulev

    自有 ID:OTP-10931

  • 不再需要用于生成 PDF 文件的 Postscript 文件。

    自有 ID:OTP-11016

  • 在 observer 中添加进程状态视图。感谢 Eric Pailleau。

    自有 ID:OTP-11136

Observer 1.3

改进和新功能

  • 在必要时,已将声明编码的注释添加到 Erlang 文件中。 当 UTF-8 成为默认编码时,此注释将在 Erlang/OTP R17B 中删除。

    自有 ID:OTP-10630

Observer 1.2

修复的错误和故障

  • 每个已加载模块的详细信息页面的链接中的模块名称之前没有 URL 编码。 如果模块名称包含例如 #,则这可能会导致崩溃转储查看器在打开链接时崩溃。 这已得到纠正。

    自有 ID:OTP-10090 辅助 ID:seq12068

  • 转义表格查看器中的控制字符

    与旧 tv 类似的行为。 表中的对象应该打印在单行中,并且当 [...,10,...] 整数列表创建新行时,它看起来很糟糕。 修复表格查看器在新|更改|删除行上的搜索崩溃。

    修复了“找到” -> “未找到”搜索序列后表格查看器崩溃的问题

    “找到” -> “未找到”搜索序列后,起始位置丢失,从而导致下次搜索中位置未定义。 感谢 Peti Gömori

    自有 ID:OTP-10218

  • observer:修复 app 文件(注意者:Motiejus Jakstys)

    将缺失的 observer 模块添加到 observer.app.src。 感谢 Tuncer Ayaz。

    自有 ID:OTP-10221

  • 使表格查看器搜索速度更快

    在多行文本对话框中编辑表行。 感谢 Peti Gomori。

    自有 ID:OTP-10225

改进和新功能

  • 允许在 bifs 上进行跟踪。

    向 epmd 请求本地节点,并记住用户在连接中的最后输入。

    修复了无法检索表或进程信息时的崩溃。

    自有 ID:OTP-10075

Observer 1.0

修复的错误和故障

  • 已纠正 ttb 中的以下错误

    • 当尝试为无盘节点设置跟踪以包装文件时,即当使用选项 {file,{local,{wrap,Filename,Size,Count}}} 时,ttb:tracer/2 之前会崩溃。
    • 如果跟踪了多个具有不同当前工作目录的节点,则 ttb:stop([fetch]) 有时会静默失败。
    • 如果使用选项 {file,{local,Filename}} 启动跟踪器,则 ttb:stop([fetch]) 会崩溃
    • ttb 停止时,由于来自 ttb_control 进程的信息打印输出,有时会发生死锁。

    自有 ID:OTP-9431

  • 在 ttb:stop 时,无盘节点 IP 跟踪客户端将所有跟踪中继到的文件跟踪端口没有正确刷新和关闭。 这已得到纠正。

    自有 ID:OTP-9665

改进和新功能

  • Observer 的新图形用户界面。将 pman、etop、appmon 和 tv 集成到带有跟踪功能的 observer 中。

    自有 ID:OTP-4779

  • 以下新功能已添加到 ttb

    • 添加了一个单命令跟踪设置,ttb:start_trace/4
    • 以下新选项已添加到 ttb:tracer/2
      • shell - 在控制台中实时显示跟踪消息
      • timer - 时间约束跟踪
      • overload - 过载保护
      • flush - 按给定频率刷新文件跟踪端口缓冲区
      • resume - 节点重启后自动恢复跟踪
    • 添加了一个用于常见跟踪器设置的新快捷方式,类似于直接使用 dbg 模块,ttb:tracer(shell | dbg)
    • ttb:tpttb:tpl 中添加了一些常用匹配规范的快捷方式。
    • 函数 ttb:tracerttb:write_configttb:stopttb:formatOptions 参数现在可以是单个选项而不是列表。
    • 当调用 ttb:stop 时,上次跟踪的历史缓冲区现在始终自动转储到文件 ttb_last_config
    • 以下新选项已添加到 ttb:stop/1
      • fetch_dir - 指定存储提取的日志的位置
      • {format,FormatOpts} - 指定格式化提取的日志时要使用的选项
      • return_fetch_dir - 指示 ttb:stop/1 的返回值应包括存储提取的日志的目录的名称
    • 选项 disable_sort 已添加到 ttb:format/2。当使用此选项时,来自不同日志的跟踪消息不会根据时间戳合并,而只是一个日志接一个日志地追加。

    自有 ID:OTP-9403

  • 以下向后不兼容的更改在 ttb 中完成

    • 使用 ttb 设置跟踪时,现在始终设置“timestamp”跟踪标志。
    • ttb:stop/1 的“fetch”选项已删除,因为现在默认行为是在停止 ttb 时提取跟踪日志。可以使用 ttb:stop/1 的“nofetch”选项禁用提取。
    • 上传目录的名称从 ttb_upload-Timestamp 更改为 ttb_upload_FileName-Timestamp。
    • 要使用“et”格式化输出,您现在需要提供选项 {handler,ttb:get_et_handler()} 而不是 {handler,et}。
    • 格式化跟踪日志时,处理程序状态之前在每个跟踪文件之后重置,现在更改为处理程序状态不仅从同一个文件中的一个跟踪消息传递到下一个跟踪消息,而且还从一个文件传递到下一个文件。

    *潜在的不兼容性*

    自有 ID:OTP-9430

Observer 0.9.10

修复的错误和故障

  • 请勿在非 win32 计算机上安装 *.bat 文件(感谢 Hans Ulrich Niedermann)

    自有 ID:OTP-9515

Observer 0.9.9

改进和新功能

  • 将崩溃转储加载到崩溃转储查看器中所需的时间之前会随着崩溃转储文件的大小呈指数增长。读取 20M 的文件需要几分钟,而对于 250M 的转储,则需要 1 到 2 个小时。这个问题已经解决。

    之前,所有进程、计时器、fun 或 ets 表都会在发送到 Web 服务器之前加载到崩溃转储查看器节点的内存中。这种情况已更改,页面现在以块的形式发送到 Web 服务器。

    较新 Web 浏览器中的安全功能阻止从 HTML 文件输入字段发送完整的文件路径,即在将文件加载到崩溃转储查看器中时实现“浏览”按钮所需的字段。为了克服这个问题,不再使用文件输入字段。而是使用普通的文本输入字段,用户需要手动插入完整的文件路径。为了方便起见,在 observer 应用程序中添加了一个 shell 脚本和一个批处理文件。这些可用于启动 crashdump_viewer 和浏览器,并加载文件 - 文件名从命令行给出。shell 脚本和批处理文件分别称为 cdv 和 cdv.bat,可以在 observer 应用程序的 priv 目录中找到。

    自有 ID:OTP-9051 辅助 ID:seq11789

Observer 0.9.8.4

改进和新功能

  • multitrace.erl 安装示例文件现在安装在 examples 目录中。(感谢 Peter Lemenkov。)

    自有 ID:OTP-8857

Observer 0.9.8.3

改进和新功能

  • 测试套件已针对 R14A 进行了更新。

    自有 ID:OTP-8708

Observer 0.9.8.2

改进和新功能

  • 其他更新

    自有 ID:OTP-8456

Observer 0.9.8.1

改进和新功能

  • 对具有 SMP 支持的 Erlang 运行时系统的 Erlang 分布进行了重大改进。之前,分布端口锁的争用非常激烈,并且特定分布通道的所有编码和解码都必须按顺序完成。现在,由于分布导致的锁争用可以忽略不计,并且 Erlang 消息的编码和解码都可以并行完成。

    Erlang 分布使用的旧原子缓存协议已被删除,因为它有效地阻止了通过同一分布通道传递的消息的所有并行编码和解码。

    引入了一种新的原子缓存协议,该协议隔离了原子缓存访问,并使通过同一分布通道传递的消息能够进行并行编码和解码。新的原子缓存协议还使用比以前大 8 倍的原子缓存大小。新的原子缓存协议在 ERTS 用户指南中有记录。

    现在,通过分布接收的 Erlang 消息由接收 Erlang 进程解码,而无需持有任何分布通道特定的锁。通过分布发送的 Erlang 消息和信号像以前一样由发送 Erlang 进程编码,但现在在编码期间不持有任何分布通道特定的锁。也就是说,无论使用哪个分布通道,编码和解码都可以并行完成。

    无法并行化的部分是原子缓存更新。因此,原子缓存更新现在在分布端口上进行调度。由于每个分布通道只有一个实体在执行此工作,因此原子缓存更新不会导致锁争用。

    新的运行时系统不理解旧的原子缓存协议。新的和旧的运行时系统仍然可以通信,但不会使用原子缓存。

    自有 ID:OTP-7774

Observer 0.9.8

改进和新功能

  • 如果已关闭模拟器的自定义分配器(例如,使用 +Meamin 选项),则 etop 会崩溃。

    自有 ID:OTP-7519

  • 版权声明已更新。

    自有 ID:OTP-7851

Observer 0.9.7.4

改进和新功能

  • Makefile 的细微更改。

    自有 ID:OTP-6689

  • 已将过时的保护测试(例如 list())替换为现代的保护测试(例如 is_list())。

    自有 ID:OTP-6725

Observer 0.9.7.3

改进和新功能

  • 此应用程序已更新以消除 Dialyzer 的警告。

    自有 ID:OTP-6551

Observer 0.9.7.2

修复的错误和故障

  • 在 runtime_tools 和 observer 应用程序中消除了几个小错误和竞争条件。

    自有 ID:OTP-6265

Observer 0.9.7.1

修复的错误和故障

  • 带有大整数的崩溃转储可能会导致 crashdump_viewer 崩溃。

    自有 ID:OTP-6301

Observer 0.9.7 (R11B)

修复的错误和故障

  • 修复了 etop 中的一个错误,该错误导致标题中的负载和内存信息不正确 - 例如,显示的 binary 值(为二进制文件分配的内存)实际上是当前正在运行的进程数。(感谢 Rikard Johansson。)

    自有 ID:OTP-6075

Observer 0.9.6.2

修复的错误和故障

  • 由于编译器错误,Observer 应用程序已重新编译。

    自有 ID:OTP-5700

Observer 0.9.6.1

修复的错误和故障

  • 当显示大型进程的消息、字典和堆栈转储时,crashdump_viewer 速度更快。

    自有 ID:OTP-5408