mirror of
https://github.com/LearningOS/rust-based-os-comp2022.git
synced 2026-05-05 10:04:21 +08:00
update vscode debug info
This commit is contained in:
@@ -426,12 +426,12 @@ VSCode 可视化调试支持
|
||||
|
||||
[profile.release]
|
||||
debug = true
|
||||
opt-level = "s"
|
||||
opt-level = 0
|
||||
|
||||
这段配置的意思是说,我们要覆盖默认release模式编译的参数,默认情况下,release模式的编译会移除debug信息,也就是 ``debug=false`` ,并且使用 ``opt-level=2`` ,也就是最高级别的优化进行编译,这样会导致打断点的时候很痛苦,很多代码都被优化的面目全非,对调试很不友好。
|
||||
|
||||
在上述代码中,我们将debug信息保留,并且使用 ``s`` 级别进行优化,这里可选的其他级别还有 0、1、2、z、s三种,其中设置成2的话,相当于没有设置,因为release模式默认就是2,如果设置成0的话,经过我的实验,会导致内核加载的时候直接崩溃掉,(我初步猜测是因为0表示关闭优化,关闭后的内核二进制文件体积有点大?以上是乱猜的,时间有限没有去详细验证,感兴趣的同学欢迎后续指正)
|
||||
如果设置为1的话,感觉还是会有很多地方被优化,导致代码很多地方无法打断点。经过个人实验,感觉选择 ``s`` 级别可以在代码大小和优化之间取得一个比较好的平衡。
|
||||
在上述代码中,我们将debug信息保留,并且使用 ``0`` 级别进行优化,这里可选的其他级别还有 0、1、2、z、s 等。如果设置为 ``1`` 或 ``2`` ,感觉还是会有很多地方被优化,导致代码很多地方无法打断点。如果设置成0,意味着编译器没有编译优化,这样可以最大化地保证打断点的地方就是实际执行的地方。所以在这里优先选择设置为 ``0`` 级别。经过个人实验,感觉选择 ``s`` 级别可以在代码大小和优化之间取得一个比较好的平衡。
|
||||
|
||||
|
||||
第四步,修改Makefile文件
|
||||
|
||||
|
||||
Reference in New Issue
Block a user