Comments (23)
PS - thanks for this project, much better than the original cargo asm.
from cargo-show-asm.
index out of bounds: the len is 0 but the index is 715
I think this means it fails to find the sources. Can you run it with -vvv
and see where exactly it tries to find them?
from cargo-show-asm.
I dont understand all this output so here is a complete capture of it
asm_crash.txt
from cargo-show-asm.
At the end, just before crash it tried to read file 56, line 716
Directive(Loc(Loc { file: 56, line: 716, column: 0, extra: None }))
file 56 is defined a bit higher:
Directive(File(File { index: 56, path: FullPath("/rustc/cc66ad468955717ab92600c770da8c1601a4ff33\\library\\core\\src\\convert\\mod.rs"), md5: None }))
also printed at the beginning
Reading file #56 /rustc/cc66ad468955717ab92600c770da8c1601a4ff33\library\core\src\convert\mod.rs
This mix of forward and backward slashes looks odd :) Do you have rustc sources component installed?
from cargo-show-asm.
This mix of forward and backward slashes looks odd :)
its pretty normal on windows nowadays. Almost everything on windows accepts / or \ as a dir delimiter. It just depends on how the path was assembled. Like this
PS C:\work\tui-textarea> ls ./asm_crash.txt
Directory: C:\work\tui-textarea
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 11/8/2023 4:38 PM 134604 asm_crash.txt
PS C:\work\tui-textarea>
see that the command used forward slash, the response has backslash
Do you have rustc sources component installed?
I dont know what that is so probably not
from cargo-show-asm.
You install them with something like that
rustup component add rust-src
from cargo-show-asm.
I pushed a branch called windows
, can you try to install cargo-show-asm
from it and run with -vvv
one more time? When reading files it should print a bit more diagnostic about each file - it's actual name and how many bytes it is. You can attach the whole output or just the bit around "reading file 56".
from cargo-show-asm.
Note that it works for other functions, just doesnt seem to like this one.
here is the console output
Found sysroot: C:\Users\paulm\.rustup\toolchains\stable-x86_64-pc-windows-msvc
Fresh cfg-if v1.0.0
Fresh autocfg v1.1.0
Fresh version_check v0.9.4
Fresh unicode-ident v1.0.12
Fresh proc-macro2 v1.0.69
Fresh once_cell v1.18.0
Fresh windows_x86_64_msvc v0.48.5
Fresh quote v1.0.33
Fresh smallvec v1.11.1
Fresh scopeguard v1.2.0
Fresh zerocopy v0.7.23
Fresh windows-targets v0.48.5
Fresh lock_api v0.4.11
Fresh syn v2.0.38
Fresh winapi v0.3.9
Fresh ahash v0.8.6
Fresh rustversion v1.0.14
Fresh heck v0.4.1
Fresh parking_lot_core v0.9.9
Fresh allocator-api2 v0.2.16
Fresh crossterm_winapi v0.9.1
Fresh strum_macros v0.25.3
Fresh bitflags v2.4.1
Fresh either v1.9.0
Fresh cassowary v0.3.0
Fresh parking_lot v0.12.1
Fresh hashbrown v0.14.2
Fresh strum v0.25.0
Fresh paste v1.0.14
Fresh itertools v0.11.0
Fresh indoc v2.0.4
Fresh unicode-segmentation v1.10.1
Fresh unicode-width v0.1.11
Fresh crossterm v0.27.0
Fresh lru v0.12.0
Fresh ratatui v0.24.0
Fresh tui-textarea v0.3.0 (C:\work\tui-textarea)
Artifact files: [ "C: Finished release [optimized] target(s) in 0.10s\
\work\\tui-textarea\\target\\release\\libtui_textarea.rlib", "C:\\work\\tui-textarea\\target\\release\\deps\\libtui_textarea-08fc92aa894971d8.rmeta"]
Asm file: C:\work\tui-textarea\target\release\deps\tui_textarea-08fc92aa894971d8.s
thread 'main' panicked at src\asm.rs:168:42:
index out of bounds: the len is 0 but the index is 715
stack backtrace:
0: 0x7ff6cbbb2f2a - std::sys_common::backtrace::_print::impl$0::fmt
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\sys_common\backtrace.rs:44
1: 0x7ff6cbbd22ab - core::fmt::rt::Argument::fmt
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\core\src\fmt\rt.rs:138
2: 0x7ff6cbbd22ab - core::fmt::write
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\core\src\fmt\mod.rs:1094
3: 0x7ff6cbbae851 - std::io::Write::write_fmt<std::sys::windows::stdio::Stderr>
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\io\mod.rs:1714
4: 0x7ff6cbbb2caa - std::sys_common::backtrace::_print
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\sys_common\backtrace.rs:47
5: 0x7ff6cbbb2caa - std::sys_common::backtrace::print
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\sys_common\backtrace.rs:34
6: 0x7ff6cbbb58ca - std::panicking::default_hook::closure$1
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\panicking.rs:270
7: 0x7ff6cbbb5538 - std::panicking::default_hook
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\panicking.rs:290
8: 0x7ff6cbbb5f7e - std::panicking::rust_panic_with_hook
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\panicking.rs:707
9: 0x7ff6cbbb5e6d - std::panicking::begin_panic_handler::closure$0
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\panicking.rs:599
10: 0x7ff6cbbb3be9 - std::sys_common::backtrace::__rust_end_short_backtrace<std::panicking::begin_panic_handler::closure_env$0,never$>
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\sys_common\backtrace.rs:170
11: 0x7ff6cbbb5b70 - std::panicking::begin_panic_handler
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\panicking.rs:595
12: 0x7ff6cbbda315 - core::panicking::panic_fmt
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\core\src\panicking.rs:67
13: 0x7ff6cbbda48e - core::panicking::panic_bounds_check
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\core\src\panicking.rs:162
14: 0x7ff6cb82f0ed - core::slice::index::impl$2::index<core::ops::range::Range<usize> >
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33\library\core\src\slice\index.rs:261
15: 0x7ff6cb7db7a6 - alloc::vec::impl$12::index<core::ops::range::Range<usize>,usize,alloc::alloc::Global>
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33\library\alloc\src\vec\mod.rs:2675
16: 0x7ff6cb81f5b1 - cargo_show_asm::cached_lines::impl$1::index
at C:\work\cargo-show-asm\src\cached_lines.rs:34
17: 0x7ff6cb7bd3b5 - cargo_show_asm::asm::dump_range
at C:\work\cargo-show-asm\src\asm.rs:168
18: 0x7ff6cb7bf01f - cargo_show_asm::asm::dump_function
at C:\work\cargo-show-asm\src\asm.rs:365
19: 0x7ff6cb753431 - cargo_asm::main
at C:\work\cargo-show-asm\src\main.rs:238
20: 0x7ff6cb79e1cb - core::ops::function::FnOnce::call_once<enum2$<core::result::Result<tuple$<>,anyhow::Error> > (*)(),tuple$<> >
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33\library\core\src\ops\function.rs:250
21: 0x7ff6cb76bcce - std::sys_common::backtrace::__rust_begin_short_backtrace<enum2$<core::result::Result<tuple$<>,anyhow::Error> > (*)(),enum2$<core::result::Result<tuple$<>,anyhow::Error> > >
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33\library\std\src\sys_common\backtrace.rs:154
22: 0x7ff6cb7571e1 - std::rt::lang_start::closure$0<enum2$<core::result::Result<tuple$<>,anyhow::Error> > >
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33\library\std\src\rt.rs:166
23: 0x7ff6cbba8bc8 - std::rt::lang_start_internal::closure$2
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\rt.rs:148
24: 0x7ff6cbba8bc8 - std::panicking::try::do_call
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\panicking.rs:502
25: 0x7ff6cbba8bc8 - std::panicking::try
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\panicking.rs:466
26: 0x7ff6cbba8bc8 - std::panic::catch_unwind
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\panic.rs:142
27: 0x7ff6cbba8bc8 - std::rt::lang_start_internal
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library\std\src\rt.rs:148
28: 0x7ff6cb7571ba - std::rt::lang_start<enum2$<core::result::Result<tuple$<>,anyhow::Error> > >
at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33\library\std\src\rt.rs:165
29: 0x7ff6cb755889 - main
30: 0x7ff6cbbd8540 - invoke_main
at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78
31: 0x7ff6cbbd8540 - __scrt_common_main_seh
at D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
32: 0x7ffc56d826ad - BaseThreadInitThunk
33: 0x7ffc58aaaa68 - RtlUserThreadStart
here is the stdout
from cargo-show-asm.
Hmm... This is strange. This file seem to work, it is resolved and read successfully
Reading file #53 /rustc/cc66ad468955717ab92600c770da8c1601a4ff33\library\alloc\src\boxed.rs
Resolved name is "C:\\Users\\paulm\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library\\alloc\\src\\boxed.rs"
Got 78860 bytes
This file fails to resolve and causes a crash...
Reading file #56 /rustc/cc66ad468955717ab92600c770da8c1601a4ff33\library\core\src\convert\mod.rs
Resolved name is "/rustc/cc66ad468955717ab92600c770da8c1601a4ff33\\library\\core\\src\\convert\\mod.rs"
Got 0 bytes
Can you check if this file is present: C:\\Users\\paulm\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library\\core\\src\\convert\\mod.rs
?
from cargo-show-asm.
its there
PS C:\work\git3\gitui> ls C:\Users\paulm\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\convert
Directory: C:\Users\paulm\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\convert
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 10/10/2023 11:31 AM 31635 mod.rs
-a---- 10/10/2023 11:31 AM 26407 num.rs
from cargo-show-asm.
Hmm..... I'm slowly running out of ideas :) Can you try adding your own debug printing around the file resolving place (it's in src/asm.rs
, line 313 and possibly inside locate_sources
method) to try to understand what's going on? I can add something to stop it from crashing, but ideally it should be able to load files if they are there...
from cargo-show-asm.
ok, it was a different file Resolved name is "/rustc/cc66ad468955717ab92600c770da8c1601a4ff33\\library\\core\\src\\convert\\mod.rs"
somehow this file is empty, and is the only one in that directory. But now I see all files in that sparsely populated dir tree are empty.
I dont know enough about the layout of rust files or what it is you are looking for. Seems to be to do with the --rust option
from cargo-show-asm.
Those files are just regular sources used to compile that specific version of the stdlib. debug info contains references to specific lines of info and cargo-show-asm
decodes this info, tries to read those files, gets corresponding line and renders it when --rust
option is used. So the file is there but it is empty? Not sure what's going on... Anyway, I'll try to make something that prints an error instead of panic soon-ish so you'll be able to see at least the files that are okay.
from cargo-show-asm.
not only empty but there are like on 3 or 4 files in the entire tree of /rustc/cc...........ff33/ and they are all empty
from cargo-show-asm.
Seems like a bug with your installed rust sources then. 🤔
from cargo-show-asm.
As far as I know I never installed them - I dont know why I would do it, nor how to do it
this is what is there
pm100@paul-think:/mnt/c/work/tui-textarea$ ls -lR /mnt/c/rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src
/mnt/c/rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src:
total 0
drwxrwxrwx 1 pm100 pm100 4096 Nov 3 14:36 convert
/mnt/c/rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src/convert:
total 0
-rwxrwxrwx 1 pm100 pm100 0 Nov 3 14:36 mod.rs
pm100@paul-think:/mnt/c/work/tui-textarea$ ls -lR /mnt/c/rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library
/mnt/c/rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library:
total 0
drwxrwxrwx 1 pm100 pm100 4096 Nov 3 14:36 core
drwxrwxrwx 1 pm100 pm100 4096 Oct 16 21:37 test
/mnt/c/rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core:
total 0
drwxrwxrwx 1 pm100 pm100 4096 Nov 3 14:36 src
/mnt/c/rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src:
total 0
drwxrwxrwx 1 pm100 pm100 4096 Nov 3 14:36 convert
/mnt/c/rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src/convert:
total 0
-rwxrwxrwx 1 pm100 pm100 0 Nov 3 14:36 mod.rs
/mnt/c/rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/test:
total 0
drwxrwxrwx 1 pm100 pm100 4096 Oct 16 21:37 src
/mnt/c/rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/test/src:
total 0
-rwxrwxrwx 1 pm100 pm100 0 Oct 16 21:37 lib.rs
from cargo-show-asm.
I have a secons /rustc/{guid} tree with only one empty file in it
from cargo-show-asm.
As far as I know I never installed them - I dont know why I would do it, nor how to do it
rustup component add rust-src
Installed sources help to rust-analyzer
or tools like cargo-show-asm
. They don't take much space compared to a typical target
folder so not much harm having it installed. Can you try installing and check if it helps?
from cargo-show-asm.
nope
PS C:\work\tui-textarea> rustup component add rust-src
info: component 'rust-src' is up to date
PS C:\work\tui-textarea> rustup component remove rust-src
info: removing component 'rust-src'
PS C:\work\tui-textarea> rustup component add rust-src
info: downloading component 'rust-src'
info: installing component 'rust-src'
same crash. Maybe the file layout is different on windows
from cargo-show-asm.
if i remove that 0 length file all works fine, it because that locate file fn says 'if the file exists then thats the one'. I have no idea how that file got there. Maybe some other tool did something
from cargo-show-asm.
Pushed a change to windows
branch to skip those empty files. Can you check if it fixes your crashes?
from cargo-show-asm.
that works
from cargo-show-asm.
I released 0.2.22 (#218)
from cargo-show-asm.
Related Issues (20)
- Compare / Diff between two version of Compilation HOT 4
- Fails when LTO is enabled HOT 17
- Fails with lines-tables-only HOT 4
- Fails with -Z asm-comments HOT 11
- How to dump disassembly of PGO optimized builds? HOT 3
- thread 'main' panicked at 'No cdylib?' HOT 9
- Support multiple codegen units?
- Missing license files HOT 5
- Support inlining info in asm files
- `--print KIND=PATH` is stable
- Remove extraneous blank lines HOT 5
- `sample` test case is broken with 1.75 HOT 12
- Add use a separate library to implement syntax highlight for llvm/mir/asm
- Wrong path used for rustc sources HOT 10
- Automate release process
- --rust flag shows code from libstd HOT 4
- Function selection via index broken on v0.2.24 to v0.2.28 HOT 6
- Option to include called functions (to some depth) HOT 6
- Install fails with rustc 1.74.0 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cargo-show-asm.