rust/library/std/src
Jacob Pratt aaea63e9e2
Rollup merge of #133882 - jyn514:doc-backtraces, r=saethlin
Improve comments for the default backtrace printer

The existing comments were misleading, confusing, and outdated.

Take this comment for example:
```
// Any frames between `__rust_begin_short_backtrace` and `__rust_end_short_backtrace`
// are omitted from the backtrace in short mode, `__rust_end_short_backtrace` will be
// called before the panic hook, so we won't ignore any frames if there is no
// invoke of `__rust_begin_short_backtrace`.
```

this is just wrong. here is an example (full) backtrace:

<details>

```
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.01s
     Running `/home/jyn/.local/lib/cargo/target/debug/example`
called `Option::unwrap()` on a `None` value
stack backtrace:
   0:     0x56499698c595 - std::backtrace_rs::backtrace::libunwind::trace::h5ef2cc16e9a7415a
   1:     0x56499698c595 - std::backtrace_rs::backtrace::trace_unsynchronized::h9b5e016e9075f714
   2:     0x56499698c595 - std::sys_common::backtrace::_print_fmt::h2f62c7f9ff224e93
   3:     0x56499698c595 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hbe51682735731910
   4:     0x5649969aa26b - core::fmt::rt::Argument::fmt::h1994ab2b310d665e
   5:     0x5649969aa26b - core::fmt::write::hade58a36d63468d7
   6:     0x56499698a43f - std::io::Write::write_fmt::h16145587d801a9ab
   7:     0x56499698c36e - std::sys_common::backtrace::_print::ha8082e56201dadb4
   8:     0x56499698c36e - std::sys_common::backtrace::print::he30f96b4e7f6cbfd
   9:     0x56499698d709 - std::panicking::default_hook::{{closure}}::hf0801f6b18a968d3
  10:     0x56499698d4ac - std::panicking::default_hook::hd2defec7eda5aeb0
  11:     0x56499698dc31 - std::panicking::rust_panic_with_hook::hde93283600065c53
  12:     0x56499698daf3 - std::panicking::begin_panic_handler::{{closure}}::h5e151adbdb7ec0c1
  13:     0x56499698ca59 - std::sys_common::backtrace::__rust_end_short_backtrace::he36a1407e0f77700
  14:     0x56499698d7d4 - rust_begin_unwind
  15:     0x5649969a9503 - core::panicking::panic_fmt::h2380d41365f95412
  16:     0x5649969a958c - core::panicking::panic::h38cf8db80e8c6e67
  17:     0x5649969a93e9 - core::option::unwrap_failed::he72696e53ff29a05
  18:     0x5649969722b6 - core::option::Option<T>::unwrap::hb574dc0dc1703062
  19:     0x5649969722b6 - example::main::h7a867aafacd93d75
  20:     0x5649969721db - core::ops::function::FnOnce::call_once::h734f99a5e57291b7
  21:     0x56499697226e - std::sys_common::backtrace::__rust_begin_short_backtrace::h02f5d58c351c4756
  22:     0x564996972241 - std::rt::lang_start::{{closure}}::h8b134fe2c31a4355
  23:     0x564996988662 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h88d7bb571ee2aaf4
  24:     0x564996988662 - std::panicking::try::do_call::hfb78dfb6599c871d
  25:     0x564996988662 - std::panicking::try::habd041c8c4c8e50c
  27:     0x564996988662 - std::rt::lang_start_internal::{{closure}}::h227591a6f9c0879e
  28:     0x564996988662 - std::panicking::try::do_call::h3c5878333c38916a
  29:     0x564996988662 - std::panicking::try::h5af7b3a127cdae70
  31:     0x564996988662 - std::rt::lang_start_internal::hbc85e809eeace0dd
  32:     0x56499697221a - std::rt::lang_start::ha1eb16922c9cb224
  33:     0x5649969722ee - main
  34:     0x7f031962a1ca - __libc_start_call_main
  35:     0x7f031962a28b - __libc_start_main_impl
  36:     0x5649969720a5 - _start
  37:                0x0 - <unknown>
```

</details>

note particularly frames 13-21, from start_backtrace to end_backtrace. with PrintFmt::Short, these are the *only* frames that are printed; i.e. we are doing the exact opposite of the comment.

r? ``@saethlin``
2024-12-05 05:50:53 -05:00
..
backtrace remove redundant imports 2023-12-10 10:56:22 +08:00
collections ./x miri: fix sysroot build 2024-12-03 07:52:01 +01:00
env Fix std tests for wasm32-wasip2 target 2024-09-29 04:48:13 +02:00
error Reformat use declarations. 2024-07-29 08:26:52 +10:00
f16 std float tests: special-case Miri in feature detection 2024-08-08 12:17:50 +02:00
f32 these tests seem to work fine on i586 these days 2024-09-10 15:57:40 -07:00
f64 these tests seem to work fine on i586 these days 2024-09-10 15:57:40 -07:00
f128 Separate f128 % operation to deal with missing fmodl symbol 2024-11-07 11:33:10 +01:00
ffi replace placeholder version 2024-11-27 12:10:21 +00:00
fs Fix compilation error on Solaris due to flock usage 2024-11-13 06:53:19 -08:00
hash remove const_hash feature leftovers 2024-11-02 11:27:14 +01:00
io add isatty alias for is_terminal 2024-12-01 13:54:04 -06:00
net std: update internal uses of io::const_error! 2024-11-26 18:38:24 +01:00
num removed nonfunctioning benchmark 2024-01-11 11:30:12 -05:00
os Rollup merge of #133515 - SteveLauC:fix/hurd, r=ChrisDenton 2024-12-01 08:15:22 +01:00
panic
path Make CloneToUninit dyn-compatible 2024-11-12 15:08:41 -06:00
pipe Cleanup sys module to match house style 2024-07-30 19:22:54 +00:00
prelude Add AsyncFn* to to the prelude in all editions 2024-11-04 17:50:29 +00:00
process [musl] use posix_spawn if a directory change was requested 2024-10-23 22:11:55 -07:00
sync Rollup merge of #133435 - RalfJung:test_downgrade_observe, r=tgross35 2024-11-26 12:03:45 -05:00
sys Rollup merge of #133882 - jyn514:doc-backtraces, r=saethlin 2024-12-05 05:50:53 -05:00
sys_common std: update internal uses of io::const_error! 2024-11-26 18:38:24 +01:00
thread Rollup merge of #132937 - xmh0511:master, r=m-ou-se 2024-12-03 21:55:26 +01:00
time Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
alloc.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
ascii.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
backtrace.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
env.rs Rollup merge of #132515 - kornelski:home_fix, r=jhpratt 2024-11-30 12:57:33 +08:00
error.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
f16.rs float types: move copysign, abs, signum to libcore 2024-11-01 16:47:18 +01:00
f32.rs float types: move copysign, abs, signum to libcore 2024-11-01 16:47:18 +01:00
f64.rs float types: move copysign, abs, signum to libcore 2024-11-01 16:47:18 +01:00
f128.rs float types: move copysign, abs, signum to libcore 2024-11-01 16:47:18 +01:00
fs.rs std: update internal uses of io::const_error! 2024-11-26 18:38:24 +01:00
keyword_docs.rs Document alternatives to static mut 2024-11-18 00:34:06 +00:00
lib.miri.rs add 'x.py miri', and make it work for 'library/{core,alloc,std}' 2024-04-03 20:27:20 +02:00
lib.rs Rename core_pattern_type and core_pattern_types lib feature gates to pattern_type_macro 2024-12-04 16:16:24 +00:00
macros.rs Add math functions for f16 and f128 2024-08-01 15:38:51 -04:00
num.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
panic.rs Auto merge of #128321 - BatmanAoD:catch-unwind-doc-update, r=Mark-Simulacrum 2024-09-29 05:54:47 +00:00
panicking.rs Share inline(never) generics across crates 2024-11-28 13:43:05 -05:00
pat.rs Add pattern types to parser 2024-04-08 11:57:17 +00:00
path.rs Rollup merge of #133602 - SanchithHegde:fix-pathbuf-example-codeblocks, r=cuviper 2024-12-01 08:15:23 +01:00
pipe.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
process.rs library: consistently use American spelling for 'behavior' 2024-10-25 12:02:47 +02:00
random.rs AIX use /dev/urandom for impl 2024-10-22 20:18:11 -04:00
rt.rs Remove the Arc rt::init allocation for thread info 2024-10-19 14:39:20 +01:00
time.rs library: consistently use American spelling for 'behavior' 2024-10-25 12:02:47 +02:00