Skip to content

printing std::path::Path's inner has strange message #36

@m4b

Description

@m4b

GDB log:

Breakpoint 2, dryad::dryad_init (raw_args=0x7fffffffe580) at src/lib.rs:60
60              let elf = binary::elf::Elf::from_path(::std::path::Path::new(binary)).expect(&format!("<dryad> Cannot load binary {}", binary));
(gdb) s
dryad::path::{{impl}}::new<str> (s=...) at ../src/libstd/path.rs:1349
1349            unsafe { mem::transmute(s.as_ref()) }
(gdb) fin
Run till exit from #0  dryad::path::{{impl}}::new<str> (s=...) at ../src/libstd/path.rs:1349
0x000055555555b1aa in dryad::dryad_init (raw_args=0x7fffffffe580) at src/lib.rs:60
60              let elf = binary::elf::Elf::from_path(::std::path::Path::new(binary)).expect(&format!("<dryad> Cannot load binary {}", binary));
Value returned is $4 = (std::path::Path *) 0x7fffffffe8a6
(gdb) p $4
$5 = (std::path::Path *) 0x7fffffffe8a6
(gdb) p *$4
$6 = std::path::Path {inner: std::ffi::os_str::OsStr {inner: std::sys::os_str::Slice {inner: 0x7fffffffe888}}}
(gdb) p $6.inner
That operation is not available on integers of more than 8 bytes.
(gdb) p $6.inner.inner
That operation is not available on integers of more than 8 bytes.
(gdb) p $5
$7 = (std::path::Path *) 0x7fffffffe8a6
(gdb) p $6
$8 = std::path::Path {inner: std::ffi::os_str::OsStr {inner: std::sys::os_str::Slice {inner: 0x7fffffffe888}}}
(gdb) whatis $6
type = std::path::Path
(gdb) ptype $6
type = struct std::path::Path {
  inner: std::ffi::os_str::OsStr,
}
(gdb) p $6.inner 
That operation is not available on integers of more than 8 bytes.
(gdb) whatis $6.inner
That operation is not available on integers of more than 8 bytes.
(gdb) ptype $6.inner
That operation is not available on integers of more than 8 bytes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions