mirror of
https://github.com/phil-opp/blog_os.git
synced 2025-12-16 22:37:49 +00:00
Merge pull request #1034 from adi-g15/patch-1
Replace MS doc link in german
This commit is contained in:
@@ -160,7 +160,7 @@ fn panic(_info: &PanicInfo) -> ! {
|
|||||||
[آیتم زبان `eh_personality`]: https://github.com/rust-lang/rust/blob/edb368491551a77d77a48446d4ee88b35490c565/src/libpanic_unwind/gcc.rs#L11-L45
|
[آیتم زبان `eh_personality`]: https://github.com/rust-lang/rust/blob/edb368491551a77d77a48446d4ee88b35490c565/src/libpanic_unwind/gcc.rs#L11-L45
|
||||||
[بازکردن پشته (Stack Unwinding)]: https://www.bogotobogo.com/cplusplus/stackunwinding.php
|
[بازکردن پشته (Stack Unwinding)]: https://www.bogotobogo.com/cplusplus/stackunwinding.php
|
||||||
[libunwind]: https://www.nongnu.org/libunwind/
|
[libunwind]: https://www.nongnu.org/libunwind/
|
||||||
[مدیریت اکسپشن ساخت یافته]: https://docs.microsoft.com/de-de/windows/win32/debug/structured-exception-handling
|
[مدیریت اکسپشن ساخت یافته]: https://docs.microsoft.com/en-us/windows/win32/debug/structured-exception-handling
|
||||||
|
|
||||||
### غیرفعال کردن Unwinding
|
### غیرفعال کردن Unwinding
|
||||||
|
|
||||||
|
|||||||
@@ -160,7 +160,7 @@ language item はコンパイラによって内部的に必要とされる特別
|
|||||||
[`eh_personality` language item]: https://github.com/rust-lang/rust/blob/edb368491551a77d77a48446d4ee88b35490c565/src/libpanic_unwind/gcc.rs#L11-L45
|
[`eh_personality` language item]: https://github.com/rust-lang/rust/blob/edb368491551a77d77a48446d4ee88b35490c565/src/libpanic_unwind/gcc.rs#L11-L45
|
||||||
[stack unwinding]: https://www.bogotobogo.com/cplusplus/stackunwinding.php
|
[stack unwinding]: https://www.bogotobogo.com/cplusplus/stackunwinding.php
|
||||||
[libunwind]: https://www.nongnu.org/libunwind/
|
[libunwind]: https://www.nongnu.org/libunwind/
|
||||||
[structured exception handling]: https://docs.microsoft.com/de-de/windows/win32/debug/structured-exception-handling
|
[structured exception handling]: https://docs.microsoft.com/en-us/windows/win32/debug/structured-exception-handling
|
||||||
|
|
||||||
### アンワインドの無効化
|
### アンワインドの無効化
|
||||||
|
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ The [`eh_personality` language item] marks a function that is used for implement
|
|||||||
[`eh_personality` language item]: https://github.com/rust-lang/rust/blob/edb368491551a77d77a48446d4ee88b35490c565/src/libpanic_unwind/gcc.rs#L11-L45
|
[`eh_personality` language item]: https://github.com/rust-lang/rust/blob/edb368491551a77d77a48446d4ee88b35490c565/src/libpanic_unwind/gcc.rs#L11-L45
|
||||||
[stack unwinding]: https://www.bogotobogo.com/cplusplus/stackunwinding.php
|
[stack unwinding]: https://www.bogotobogo.com/cplusplus/stackunwinding.php
|
||||||
[libunwind]: https://www.nongnu.org/libunwind/
|
[libunwind]: https://www.nongnu.org/libunwind/
|
||||||
[structured exception handling]: https://docs.microsoft.com/de-de/windows/win32/debug/structured-exception-handling
|
[structured exception handling]: https://docs.microsoft.com/en-us/windows/win32/debug/structured-exception-handling
|
||||||
|
|
||||||
### Disabling Unwinding
|
### Disabling Unwinding
|
||||||
|
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ fn panic(_info: &PanicInfo) -> ! {
|
|||||||
|
|
||||||
我们可以自己实现语言项,但这是下下策:目前来看,语言项是高度不稳定的语言细节实现,它们不会经过编译期类型检查(所以编译器甚至不确保它们的参数类型是否正确)。幸运的是,我们有更稳定的方式,来修复上面的语言项错误。
|
我们可以自己实现语言项,但这是下下策:目前来看,语言项是高度不稳定的语言细节实现,它们不会经过编译期类型检查(所以编译器甚至不确保它们的参数类型是否正确)。幸运的是,我们有更稳定的方式,来修复上面的语言项错误。
|
||||||
|
|
||||||
`eh_personality` 语言项标记的函数,将被用于实现**栈展开**([stack unwinding](https://www.bogotobogo.com/cplusplus/stackunwinding.php))。在使用标准库的情况下,当 panic 发生时,Rust 将使用栈展开,来运行在栈上所有活跃的变量的**析构函数**(destructor)——这确保了所有使用的内存都被释放,允许调用程序的**父进程**(parent thread)捕获 panic,处理并继续运行。但是,栈展开是一个复杂的过程,如 Linux 的 [libunwind](https://www.nongnu.org/libunwind/) 或 Windows 的**结构化异常处理**([structured exception handling, SEH](https://docs.microsoft.com/de-de/windows/win32/debug/structured-exception-handling)),通常需要依赖于操作系统的库;所以我们不在自己编写的操作系统中使用它。
|
`eh_personality` 语言项标记的函数,将被用于实现**栈展开**([stack unwinding](https://www.bogotobogo.com/cplusplus/stackunwinding.php))。在使用标准库的情况下,当 panic 发生时,Rust 将使用栈展开,来运行在栈上所有活跃的变量的**析构函数**(destructor)——这确保了所有使用的内存都被释放,允许调用程序的**父进程**(parent thread)捕获 panic,处理并继续运行。但是,栈展开是一个复杂的过程,如 Linux 的 [libunwind](https://www.nongnu.org/libunwind/) 或 Windows 的**结构化异常处理**([structured exception handling, SEH](https://docs.microsoft.com/en-us/windows/win32/debug/structured-exception-handling)),通常需要依赖于操作系统的库;所以我们不在自己编写的操作系统中使用它。
|
||||||
|
|
||||||
### 禁用栈展开
|
### 禁用栈展开
|
||||||
|
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ Language item 是一些編譯器需求的特殊函式或類型。舉例來說,
|
|||||||
|
|
||||||
[stack unwinding]: https://www.bogotobogo.com/cplusplus/stackunwinding.php
|
[stack unwinding]: https://www.bogotobogo.com/cplusplus/stackunwinding.php
|
||||||
[libunwind]: https://www.nongnu.org/libunwind/
|
[libunwind]: https://www.nongnu.org/libunwind/
|
||||||
[structured exception handling]: https://docs.microsoft.com/de-de/windows/win32/debug/structured-exception-handling
|
[structured exception handling]: https://docs.microsoft.com/en-us/windows/win32/debug/structured-exception-handling
|
||||||
|
|
||||||
### 停用回溯
|
### 停用回溯
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user