查看源代码 调试器发行说明
本文档描述了对调试器应用程序所做的更改。
调试器 5.5
修复的错误和故障
在 shell 中使用
fun Name/Arity
语法定义 fun 会失败。此问题已得到纠正,现在以下语法可以正常工作1> F = fun is_atom/1. #Fun.erl.42.18682967> > F(a). true 3> Id = fun id/1. #Fun.erl.42.18682967> 4> Id(42). ** exception error: undefined shell command id/1 5> id(I) -> I. ok 6> Id(42). 42
调试器也已得到纠正,可以正确处理 BIF 的此语法。
改进和新功能
调试器 5.4
修复的错误和故障
此应用程序的依赖项现在列在 app 文件中。
自身 ID:OTP-18831 辅助 ID:PR-7441
改进和新功能
类型规范已添加到所有 API 函数中。
自身 ID:OTP-18819 辅助 ID:PR-7781
文档已迁移为使用 Markdown 和 ExDoc。
自身 ID:OTP-18955 辅助 ID:PR-8026
调试器现在使用跟踪会话进行其内部跟踪使用,以避免干扰用户对跟踪的使用。
自身 ID:OTP-19074 辅助 ID:PR-8389
调试器 5.3.4
修复的错误和故障
带有嵌套记录表达式的保护可能错误地评估为 false。
自身 ID:OTP-18958 辅助 ID:GH-8120,PR-8275
调试器 5.3.3
修复的错误和故障
映射推导现在可以在调试器中工作。
自身 ID:OTP-18888 辅助 ID:GH-7914
调试器 5.3.2
修复的错误和故障
调用
int:no_break(Module)
不会删除任何断点。自身 ID:OTP-18644 辅助 ID:GH-7336
调试器现在支持
maybe
表达式。自身 ID:OTP-18740 辅助 ID:GH-7410,PR-7599
调试器 5.3.1.3
修复的错误和故障
带有嵌套记录表达式的保护可能错误地评估为 false。
自身 ID:OTP-18958 辅助 ID:GH-8120,PR-8275
调试器 5.3.1.2
修复的错误和故障
调试器现在支持
maybe
表达式。自身 ID:OTP-18740 辅助 ID:GH-7410,PR-7599
调试器 5.3.1.1
修复的错误和故障
调用
int:no_break(Module)
不会删除任何断点。自身 ID:OTP-18644 辅助 ID:GH-7336
调试器 5.3.1
修复的错误和故障
修复了会导致分析崩溃的错误。
自身 ID:OTP-18372 辅助 ID:GH-6580
调试器 5.3
改进和新功能
配置文件
.erlang
、.erlang.cookie
和.erlang.crypt
现在可以位于 XDG 配置主目录中。有关更多详细信息,请参阅每个文件的文档和
filename:basedir/2
。自身 ID:OTP-17554 辅助 ID:GH-5016 PR-5408 OTP-17821
调试器 5.2.1.1
修复的错误和故障
调用
int:no_break(Module)
不会删除任何断点。自身 ID:OTP-18644 辅助 ID:GH-7336
调试器 5.2.1
修复的错误和故障
修复记录索引匹配,它已损坏,永远无法匹配。
自身 ID:OTP-17865 辅助 ID:GH-5571
调试器 5.2
改进和新功能
改进记录处理,使用记录语法打印已知记录。
自身 ID:OTP-17574
调试器 5.1
改进和新功能
已实施 EEP 54 中提议的失败 BIF 调用的扩展错误信息。
当 Erlang shell 的 BIF 调用失败时,将打印有关哪个或哪些参数出错的更多信息。当 BIF 调用失败时,
proc_lib
、common_test
和qlc
将使用相同的扩展错误信息。对于希望提供相同扩展错误信息的应用程序,有新的函数
erl_error:format_exception/3
和erl_error:format_exception/4
。有一个新的
error/3
BIF,允许应用程序或库以相同的方式为其自己的异常提供扩展错误信息。自身 ID:OTP-16686
调试器 5.0
改进和新功能
已实施 EEP-52。
在二进制匹配中,现在允许要匹配的段的大小为保护表达式,类似地,在映射匹配中,键现在可以是保护表达式。有关更多详细信息,请参阅 Erlang 参考手册和编程示例。
生成 Core Erlang 代码的语言编译器或代码生成器可能需要更新才能与 OTP 23 中的编译器兼容。有关更多详细信息,请参阅 EEP 52 中的向后兼容性部分。
自身 ID:OTP-14708
已弃用的
erlang:get_stacktrace/0
BIF 现在返回一个空列表而不是堆栈跟踪。要检索堆栈跟踪,请使用 OTP 21 中引入的扩展 try/catch 语法。erlang:get_stacktrace/0
计划在 OTP 24 中删除。*潜在的不兼容性*
自身 ID:OTP-16484
调试器 4.2.8
修复的错误和故障
修复了 Unicode 原子在整数列表是否打印为字符串时打印不同的错误。
自身 ID:OTP-16186
调试器 4.2.7
修复的错误和故障
所有不正确的(即所有)“can not”的使用已在源代码注释、文档、示例等中更正为“cannot”。
自身 ID:OTP-14282 辅助 ID:PR-1891
调试器 4.2.6
修复的错误和故障
改进的文档。
自身 ID:OTP-15190
调试器 4.2.5
修复的错误和故障
修复了在二进制文件中调用 fun 会导致调试器崩溃的错误。
自身 ID:OTP-14957 辅助 ID:PR-1741
调试器 4.2.4
修复的错误和故障
不要在调试器窗口中引用变量和按钮名称。该错误是在 Erlang/OTP 20.1 中引入的。
自身 ID:OTP-14802
调试器 4.2.3
改进和新功能
工具已更新,可以正确显示 Unicode 原子。
自身 ID:OTP-14464
调试器 4.2.2
修复的错误和故障
只要可以在运行的系统中创建,Erlang shell、
qlc:string_to_handle()
和调试器(绑定区域的求值器区域和编辑变量窗口)就可以解析 pid、端口、引用和外部 fun。自身 ID:OTP-14296
修复了调试器的附加进程窗口的绑定区域中简单二进制值的编辑。
自身 ID:OTP-14318
改进和新功能
由于包含任意 Unicode 字符的原子而进行的杂项更新。
自身 ID:OTP-14285
调试器 4.2.1
修复的错误和故障
更新构建脚本,使其不对 env、cp 和 perl 的位置进行假设。
自身 ID:OTP-13800
已修复一个导致非解释代码使调试器崩溃的错误。
自身 ID:OTP-13756
调试器 4.2
改进和新功能
当调试器搜索源文件时,它还会使用 BEAM 文件编译信息部分中源文件的位置。
自身 ID:OTP-13375
调试器 4.1.2
改进和新功能
文档更正。
自身 ID:OTP-12994
调试器 4.1.1
已修复的错误和故障
修复启动快速调试会话时发生的崩溃。感谢 Alan Duffield。
自身 ID:OTP-12911 辅助 ID:seq12906
调试器 4.1
改进和新功能
支持变量作为表达式和模式中的 Map 键
Erlang 将接受任何表达式作为 Map 表达式中的键,并且它将接受字面量或绑定变量作为 Map 模式中的键。
自身 ID:OTP-12218
调试器 4.0.3
已修复的错误和故障
修复了在 Mac 上无法工作的保存状态功能。
自身 ID:OTP-12378
调试器 4.0.2
已修复的错误和故障
确保在需要时安装 .hrl 文件
自身 ID:OTP-12197
当调用旧的且已删除的基于 gs 的 gui 函数时,调用调试器函数
ia/1
和iaa/1
会崩溃。自身 ID:OTP-12357
调试器 4.0.1
已修复的错误和故障
修复调试器和 erl_eval 中 map 更新的评估问题
报告者:José Valim
自身 ID:OTP-11922
调试器 4.0
已修复的错误和故障
调试器现在可以正确评估代码,例如 '
X = true andalso X
'。(感谢 Anthony Ramine。)自身 ID:OTP-11553
已更正调试器中代码评估的一些细微错误。(感谢 Anthony Ramine。)
自身 ID:OTP-11676
以下应用程序的应用程序升级 (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
改进和新功能
已删除基于 gs 的应用程序和基于 gs 的后端。
observer
应用程序取代了已删除的应用程序。*潜在的不兼容性*
自身 ID:OTP-10915
在调试器中支持 Maps 语法 (感谢 Anthony Ramine)。
自身 ID:OTP-11673
调试器 3.2.12
改进和新功能
修复了浮点中间字节序机器的匹配问题。感谢 Johannes Weissl。
自身 ID:OTP-11201
调试器 3.2.11
改进和新功能
添加了一个新的复选框。选中时,由
erl
标志+pc
设置的范围用于确定何时将整数列表打印为字符串。取消选中时,整数列表永远不会打印为字符串。一个小的兼容性问题:Erlang R16B01 或更高版本保存的设置无法被 Erlang R16B 或更早版本读取。
自身 ID:OTP-10899
现在,带有非 ASCII 字符的 Erlang 源文件以 UTF-8 编码(而不是 latin1)。
自身 ID:OTP-11041 辅助 ID:OTP-10907
调试器 3.2.10
改进和新功能
erl 的 +pc 标志可用于设置被视为可打印的字符范围。这会影响 shell 和 io:format("~tp",...) 功能如何执行启发式字符串检测。有关更多信息,请阅读 STDLIB 用户指南。
自身 ID:OTP-10884
调试器 3.2.9
已修复的错误和故障
修复了由于 wxFileDialog 中行为更改导致的调试器设置对话框问题 (感谢 Håkan Mattsson)
自身 ID:OTP-10621
改进和新功能
已实现对 Unicode 的支持。
自身 ID:OTP-10302
在必要时,已在 Erlang 文件中添加了声明编码的注释。该注释旨在在 UTF-8 成为默认编码的 Erlang/OTP R17B 中删除。
自身 ID:OTP-10630
现在,变量中的整数列表和 utf-8 二进制文件将显示为字符串。
自身 ID:OTP-10679
调试器 3.2.8
已修复的错误和故障
修复了断点消失的错误,由 Ricardo Catalinas Jiménez 报告。
自身 ID:OTP-9950
调试器 3.2.7
已修复的错误和故障
修复调试器消息和变量中“OK”的拼写
调试器中的简单代码重构:将代码、变量名和字符串中所有出现的“Ok”重命名为“OK”。这提高了代码的一致性,并遵循始终使用“OK”的 GTK UI。(感谢 Ricardo Catalinas Jiménez)
自身 ID:OTP-9699
改进和新功能
现在,允许在 EEP-23 中 Richard O'Keefe 建议的 '
fun M:F/A
' 中使用变量。抽象格式中 '
fun M:F/A
' 的表示方式已进行了不兼容的更改。直接读取或操作抽象格式的工具(例如,解析转换)可能需要更新。编译器可以处理新旧两种格式(即,从 pre-R15 BEAM 文件中提取抽象格式并使用 compile:forms/1,2 进行编译将起作用)。syntax_tools
应用程序也可以处理两种格式。*潜在的不兼容性*
自身 ID:OTP-9643
调试器 3.2.6
改进和新功能
修复了 dialyzer 报告的问题。
自身 ID:OTP-9107
调试器 3.2.5
改进和新功能
杂项更新
自身 ID:OTP-8976
调试器 3.2.4
改进和新功能
已添加/清理了类型规范。(感谢 Kostis Sagonas。)
自身 ID:OTP-8757
调试器 3.2.3
改进和新功能
删除了由于新的自动导入 BIF 导致的警告
自身 ID:OTP-8674 辅助 ID:OTP-8579
已删除预定义的内置类型 tid()。而是应使用 ets:tid()。
*潜在的不兼容性*
自身 ID:OTP-8687
调试器 3.2.2
已修复的错误和故障
已修复 guard 中对推导式和短路表达式进行求值时存在的错误。
自身 ID:OTP-8310
改进和新功能
对 WX 版本的调试器进行了杂项更正。
自身 ID:OTP-8346
调试器 3.2.1
改进和新功能
现在文档是使用大多数平台上存在的开源工具(xsltproc 和 fop)构建的。一个可见的变化是移除了框架。
自身 ID:OTP-8201
调试器 3.2
改进和新功能
添加了一个新的 gui,使用 debugger:start(gs) 启动旧的 gui。
自身 ID:OTP-7366
已删除未记录、不支持且已弃用的 guard BIF
is_constant/1
。* 与 R12B 的不兼容性 *
自身 ID:OTP-7673
调试器 3.1.1.4
改进和新功能
现在实验性地支持从存档文件加载代码。有关更多信息,请参阅
code
、init
、erl_prim_loader
和escript
的文档。已改进
escripts
的错误处理。现在,
escript
可以为模拟器设置显式参数,例如-smp enabled
。现在,
escript
可以包含预编译的 beam 文件。现在,
escript
可以包含一个包含一个或多个应用程序的存档文件(实验性)。已删除内部模块
code_aux
。自身 ID:OTP-7548 辅助 ID:otp-6622
调试器 3.1.1.3
改进和新特性
小的改动。
自有 ID:OTP-7388
调试器 3.1.1.2
改进和新特性
文档已更新,以反映 Erlang Shell 的最新更新以及
io_lib
模块的控制序列p
的微小修改。已从代码示例和 Erlang Shell 示例中删除了多余的空行。
自有 ID:OTP-6944 辅助 ID:OTP-6554, OTP-6911
调试器 3.1.1.1
改进和新特性
Makefile 的小改动。
自有 ID:OTP-6689
已使用现代的守卫测试(例如 is_list())替换了过时的守卫测试(例如 list())。
自有 ID:OTP-6725
调试器 3.1.1
修复的 Bug 和故障
从
dbg_ieval
中删除了一些无效代码。自有 ID:OTP-6552
调试器 3.1
修复的 Bug 和故障
当应该求值为 fun 的表达式引用了未解释的代码时,解释器无法处理这种情况。
自有 ID:OTP-6061 辅助 ID:seq10295
调试器中
gen_server
调用的超时现在设置为infinity
。自有 ID:OTP-6103
改进和新特性
通知窗口现在在其父窗口上居中显示。
自有 ID:OTP-6011 辅助 ID:OTP-5987
当解释模块时,现在会检查该模块是否不属于 Kernel、STDLIB、GS 或 Debugger 应用程序,因为解释调试器/解释器本身使用的模块将导致死锁或模拟器崩溃。
此外,如果
Mod
属于上述应用程序之一,则int:interpretable(Mod)
已扩展为返回{error,{app,App}}
。自有 ID:OTP-6020
现在支持
andalso
/orelse
。自有 ID:OTP-6021 辅助 ID:OTP-5894
调试器 3.0.1
修复的 Bug 和故障
当评估 fun 函数子句的守卫表达式时,没有考虑环境变量绑定。
自有 ID:OTP-5837
改进和新特性
对 GUI 进行了一些较小的改进
- 现在可以在函数断点对话窗口中进行多项选择。
- 在断点对话窗口中右键单击“模块”条目将打开一个弹出菜单,从中可以选择相应的(解释的)模块。
- 现在可以使用监视窗口左侧部分的按钮更改自动附加选项,而不仅仅是通过相应的菜单按钮。
- 已添加用于启用和禁用所有断点的按钮。
- 修正了“查看模块”窗口的键盘快捷键。
自有 ID:OTP-4284
调试器 3.0
改进和新特性
调试器现在可以处理
try-catch
。这意味着必须重写解释器的很大一部分。此外,对 GUI 进行了一些小的更改。自有 ID:OTP-5730
调试器 2.3.3
改进和新特性
现在可以加密 Beam 文件中的调试信息,以帮助保护源代码的秘密。有关如何提供加密密钥的说明,请参阅 compile 的文档;有关如何提供解密密钥以便可以使用调试器、Xref 或 Cover 等工具的说明,请参阅 beam_lib 的文档。
现在
beam_lib:chunks/2
函数接受一个额外的块类型“compile_info
”,以直接以术语的形式检索编译信息。(感谢 Tobias Lindahl。)自有 ID:OTP-5460 辅助 ID:seq9787
调试器 2.3.2
修复的 Bug 和故障
图形应用程序现在在正确的位置搜索 HTML 文档。
自有 ID:OTP-5381
调试器 2.3.1
修复的 Bug 和故障
已将包支持添加到调试器。感谢 HiPE 项目中的 Richard Carlsson。
自有 ID:OTP-5255
改进和新特性
已更新以处理最新版本的编译器。
自有 ID:OTP-5265