On Tue, Jul 10, 2018 at 12:00:54PM +0200, Mark Kettenis wrote:
> Here is a cleaned-up version of a diff that Dale made to support
> OpenBSD/arm64 in gdb.  Single-stepping doesn't work yet, which means
> that stepping through the code doesn't really work.  But setting
> breakpoints and inspecting state or looking at core files should work.
> 

Just to report the result of the lang/rust testsuite on aarch64 with
commited devel/gdb :

test result: FAILED. 75 passed; 1 failed; 33 ignored; 0 measured; 0 filtered out

only one test is failing on 76 tests (so gdb works relatively well on aarch64, 
thanks for that !).

        
rust-1.27.1/rustc-1.27.1-src/src/test/debuginfo/by-value-self-argument-in-trait-impl.rs

        it tries to print self value in a Trait (extract of code source):

                trait Trait {
                    fn method(self) -> Self;
                }

                impl Trait for (f64, isize, isize, f64) {
                    fn method(self) -> (f64, isize, isize, f64) {
                        zzz(); // #break
                        self
                    }
                }
                
                fn main() {
                        // ... others tests
                        let _ = (4444.5, 5555, 6666, 7777.5).method();
                }

        in gdb, in a break at zzz():
                (gdb) print self
        expected output:
                $3 = (4444.5, 5555, 6666, 7777.5)
        effective output:
                $3 = (1.3580760565083671e-312, 3333, 274877654288,
                1.3580760579708014e-312)


Below full output of the debuginfo-gdb run.

running 109 tests
test [debuginfo-gdb] debuginfo/associated-types.rs ... ok
test [debuginfo-gdb] debuginfo/basic-types-globals-metadata.rs ... ignored
test [debuginfo-gdb] debuginfo/basic-types-globals.rs ... ignored
test [debuginfo-gdb] debuginfo/basic-types-metadata.rs ... ignored
test [debuginfo-gdb] debuginfo/basic-types-mut-globals.rs ... ignored
test [debuginfo-gdb] debuginfo/basic-types.rs ... ok
test [debuginfo-gdb] debuginfo/borrowed-basic.rs ... ok
test [debuginfo-gdb] debuginfo/borrowed-c-style-enum.rs ... ok
test [debuginfo-gdb] debuginfo/borrowed-enum.rs ... ignored
test [debuginfo-gdb] debuginfo/borrowed-struct.rs ... ok
test [debuginfo-gdb] debuginfo/borrowed-tuple.rs ... ok
test [debuginfo-gdb] debuginfo/borrowed-unique-basic.rs ... ok
test [debuginfo-gdb] debuginfo/box.rs ... ok
test [debuginfo-gdb] debuginfo/boxed-struct.rs ... ok
test [debuginfo-gdb] debuginfo/by-value-non-immediate-argument.rs ... ignored
test [debuginfo-gdb] debuginfo/by-value-self-argument-in-trait-impl.rs ... 
FAILED
test [debuginfo-gdb] debuginfo/c-style-enum-in-composite.rs ... ok
test [debuginfo-gdb] debuginfo/c-style-enum.rs ... ignored
test [debuginfo-gdb] debuginfo/closure-in-generic-function.rs ... ok
test [debuginfo-gdb] debuginfo/constant-debug-locs.rs ... ok
test [debuginfo-gdb] debuginfo/constant-in-match-pattern.rs ... ok
test [debuginfo-gdb] debuginfo/cross-crate-spans.rs ... ok
test [debuginfo-gdb] debuginfo/cross-crate-type-uniquing.rs ... ok
test [debuginfo-gdb] debuginfo/destructured-fn-argument.rs ... ok
test [debuginfo-gdb] debuginfo/destructured-for-loop-variable.rs ... ok
test [debuginfo-gdb] debuginfo/destructured-local.rs ... ok
test [debuginfo-gdb] debuginfo/drop-locations.rs ... ignored
test [debuginfo-gdb] debuginfo/evec-in-struct.rs ... ok
test [debuginfo-gdb] debuginfo/extern-c-fn.rs ... ok
test [debuginfo-gdb] debuginfo/function-arg-initialization.rs ... ignored
test [debuginfo-gdb] debuginfo/function-arguments.rs ... ok
test [debuginfo-gdb] debuginfo/function-prologue-stepping-regular.rs ... ignored
test [debuginfo-gdb] debuginfo/gdb-pretty-struct-and-enums-pre-gdb-7-7.rs ... ok
test [debuginfo-gdb] debuginfo/generic-enum-with-different-disr-sizes.rs ... ok
test [debuginfo-gdb] debuginfo/generic-function.rs ... ok
test [debuginfo-gdb] debuginfo/generic-functions-nested.rs ... ok
test [debuginfo-gdb] debuginfo/generic-method-on-generic-struct.rs ... ok
test [debuginfo-gdb] debuginfo/generic-static-method-on-struct-and-enum.rs ... 
ok
test [debuginfo-gdb] debuginfo/generic-struct-style-enum.rs ... ignored
test [debuginfo-gdb] debuginfo/generic-struct.rs ... ok
test [debuginfo-gdb] debuginfo/generic-tuple-style-enum.rs ... ignored
test [debuginfo-gdb] debuginfo/include_string.rs ... ok
test [debuginfo-gdb] debuginfo/issue-12886.rs ... ignored
test [debuginfo-gdb] debuginfo/issue-13213.rs ... ok
test [debuginfo-gdb] debuginfo/issue-14411.rs ... ok
test [debuginfo-gdb] debuginfo/issue-22656.rs ... ignored
test [debuginfo-gdb] debuginfo/issue-7712.rs ... ok
test [debuginfo-gdb] debuginfo/lexical-scope-in-for-loop.rs ... ok
test [debuginfo-gdb] debuginfo/lexical-scope-in-if.rs ... ok
test [debuginfo-gdb] debuginfo/lexical-scope-in-match.rs ... ok
test [debuginfo-gdb] debuginfo/lexical-scope-in-parameterless-closure.rs ... ok
test [debuginfo-gdb] debuginfo/lexical-scope-in-stack-closure.rs ... ok
test [debuginfo-gdb] debuginfo/lexical-scope-in-unconditional-loop.rs ... ok
test [debuginfo-gdb] debuginfo/lexical-scope-in-unique-closure.rs ... ok
test [debuginfo-gdb] debuginfo/lexical-scope-in-while.rs ... ok
test [debuginfo-gdb] debuginfo/lexical-scope-with-macro.rs ... ok
test [debuginfo-gdb] debuginfo/lexical-scopes-in-block-expression.rs ... ignored
test [debuginfo-gdb] debuginfo/limited-debuginfo.rs ... ignored
test [debuginfo-gdb] debuginfo/macro-stepping.rs ... ignored
test [debuginfo-gdb] debuginfo/method-on-enum.rs ... ignored
test [debuginfo-gdb] debuginfo/method-on-generic-struct.rs ... ok
test [debuginfo-gdb] debuginfo/method-on-struct.rs ... ok
test [debuginfo-gdb] debuginfo/method-on-trait.rs ... ok
test [debuginfo-gdb] debuginfo/method-on-tuple-struct.rs ... ok
test [debuginfo-gdb] debuginfo/multi-byte-chars.rs ... ok
test [debuginfo-gdb] debuginfo/multi-cgu.rs ... ok
test [debuginfo-gdb] debuginfo/multiple-functions-equal-var-names.rs ... ok
test [debuginfo-gdb] debuginfo/multiple-functions.rs ... ok
test [debuginfo-gdb] debuginfo/name-shadowing-and-scope-nesting.rs ... ok
test [debuginfo-gdb] debuginfo/nil-enum.rs ... ok
test [debuginfo-gdb] debuginfo/no-debug-attribute.rs ... ok
test [debuginfo-gdb] debuginfo/option-like-enum.rs ... ignored
test [debuginfo-gdb] debuginfo/packed-struct-with-destructor.rs ... ok
test [debuginfo-gdb] debuginfo/packed-struct.rs ... ignored
test [debuginfo-gdb] debuginfo/pretty-huge-vec.rs ... ok
test [debuginfo-gdb] debuginfo/pretty-std.rs ... ignored
test [debuginfo-gdb] debuginfo/pretty-uninitialized-vec.rs ... ok
test [debuginfo-gdb] debuginfo/recursive-enum.rs ... ok
test [debuginfo-gdb] debuginfo/recursive-struct.rs ... ignored
test [debuginfo-gdb] debuginfo/self-in-default-method.rs ... ok
test [debuginfo-gdb] debuginfo/self-in-generic-default-method.rs ... ok
test [debuginfo-gdb] debuginfo/shadowed-argument.rs ... ok
test [debuginfo-gdb] debuginfo/shadowed-variable.rs ... ok
test [debuginfo-gdb] debuginfo/should-fail.rs ... ok
test [debuginfo-gdb] debuginfo/simd.rs ... ok
test [debuginfo-gdb] debuginfo/simple-lexical-scope.rs ... ok
test [debuginfo-gdb] debuginfo/simple-struct.rs ... ignored
test [debuginfo-gdb] debuginfo/simple-tuple.rs ... ignored
test [debuginfo-gdb] debuginfo/static-method-on-struct-and-enum.rs ... ok
test [debuginfo-gdb] debuginfo/struct-in-enum.rs ... ignored
test [debuginfo-gdb] debuginfo/struct-in-struct.rs ... ok
test [debuginfo-gdb] debuginfo/struct-namespace.rs ... ignored
test [debuginfo-gdb] debuginfo/struct-style-enum.rs ... ignored
test [debuginfo-gdb] debuginfo/struct-with-destructor.rs ... ok
test [debuginfo-gdb] debuginfo/trait-pointers.rs ... ok
test [debuginfo-gdb] debuginfo/tuple-in-struct.rs ... ok
test [debuginfo-gdb] debuginfo/tuple-in-tuple.rs ... ok
test [debuginfo-gdb] debuginfo/tuple-struct.rs ... ok
test [debuginfo-gdb] debuginfo/tuple-style-enum.rs ... ignored
test [debuginfo-gdb] debuginfo/type-names.rs ... ignored
test [debuginfo-gdb] debuginfo/union-smoke.rs ... ignored
test [debuginfo-gdb] debuginfo/unique-enum.rs ... ignored
test [debuginfo-gdb] debuginfo/unreachable-locals.rs ... ok
test [debuginfo-gdb] debuginfo/unsized.rs ... ok
test [debuginfo-gdb] debuginfo/var-captured-in-nested-closure.rs ... ok
test [debuginfo-gdb] debuginfo/var-captured-in-sendable-closure.rs ... ok
test [debuginfo-gdb] debuginfo/var-captured-in-stack-closure.rs ... ok
test [debuginfo-gdb] debuginfo/vec-slices.rs ... ignored
test [debuginfo-gdb] debuginfo/vec.rs ... ignored

failures:

---- [debuginfo-gdb] debuginfo/by-value-self-argument-in-trait-impl.rs stdout 
----
        

NOTE: compiletest thinks it is using GDB with native rust support
executing 
"/home/semarie/repos/openbsd/ports/pobj/rust-1.27.1/build-aarch64/build/aarch64-unknown-openbsd/stage2/bin/rustc"
 
"/home/semarie/ports/pobj/rust-1.27.1/rustc-1.27.1-src/src/test/debuginfo/by-value-self-argument-in-trait-impl.rs"
 "-L" 
"/home/semarie/repos/openbsd/ports/pobj/rust-1.27.1/build-aarch64/build/aarch64-unknown-openbsd/test/debuginfo"
 "--target=aarch64-unknown-openbsd" "-C" "prefer-dynamic" "-o" 
"/home/semarie/repos/openbsd/ports/pobj/rust-1.27.1/build-aarch64/build/aarch64-unknown-openbsd/test/debuginfo/by-value-self-argument-in-trait-impl.stage2-aarch64-unknown-openbsd"
 "-Crpath" "-Zunstable-options" 
"-Lnative=/home/semarie/repos/openbsd/ports/pobj/rust-1.27.1/build-aarch64/build/aarch64-unknown-openbsd/native/rust-test-helpers"
 "-g" "-L" 
"/home/semarie/repos/openbsd/ports/pobj/rust-1.27.1/build-aarch64/build/aarch64-unknown-openbsd/test/debuginfo/by-value-self-argument-in-trait-impl.stage2-aarch64-unknown-openbsd.gdb.aux"
------stdout------------------------------

------stderr------------------------------
warning: field is never used: `x`
  --> 
/home/semarie/ports/pobj/rust-1.27.1/rustc-1.27.1-src/src/test/debuginfo/by-value-self-argument-in-trait-impl.rs:65:5
   |
65 |     x: usize,
   |     ^^^^^^^^
   |
   = note: #[warn(dead_code)] on by default

warning: field is never used: `y`
  --> 
/home/semarie/ports/pobj/rust-1.27.1/rustc-1.27.1-src/src/test/debuginfo/by-value-self-argument-in-trait-impl.rs:66:5
   |
66 |     y: usize,
   |     ^^^^^^^^


------------------------------------------
NOTE: compiletest thinks it is using GDB version 7012001
executing "/usr/local/bin/egdb" "-quiet" "-batch" "-nx" 
"-command=/home/semarie/repos/openbsd/ports/pobj/rust-1.27.1/build-aarch64/build/aarch64-unknown-openbsd/test/debuginfo/by-value-self-argument-in-trait-impl.debugger.script"
------stdout------------------------------
GNU gdb (GDB) 7.12.1
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "aarch64-unknown-openbsd6.3".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
Breakpoint 1 at 0x102d4: file 
/home/semarie/ports/pobj/rust-1.27.1/rustc-1.27.1-src/src/test/debuginfo/by-value-self-argument-in-trait-impl.rs,
 line 59.
Breakpoint 2 at 0x10300: file 
/home/semarie/ports/pobj/rust-1.27.1/rustc-1.27.1-src/src/test/debuginfo/by-value-self-argument-in-trait-impl.rs,
 line 71.
Breakpoint 3 at 0x10330: file 
/home/semarie/ports/pobj/rust-1.27.1/rustc-1.27.1-src/src/test/debuginfo/by-value-self-argument-in-trait-impl.rs,
 line 78.

Breakpoint 1, 
_$LT$isize$u20$as$u20$by_value_self_argument_in_trait_impl..Trait$GT$::method::h301182dfaa0d14da
 (self=1111) at 
/home/semarie/ports/pobj/rust-1.27.1/rustc-1.27.1-src/src/test/debuginfo/by-value-self-argument-in-trait-impl.rs:59
59              zzz(); // #break
$1 = 1111

Breakpoint 2, 
_$LT$by_value_self_argument_in_trait_impl..Struct$u20$as$u20$by_value_self_argument_in_trait_impl..Trait$GT$::method::h4a9e5070dccd20d1
 (self=...) at 
/home/semarie/ports/pobj/rust-1.27.1/rustc-1.27.1-src/src/test/debuginfo/by-value-self-argument-in-trait-impl.rs:71
71              zzz(); // #break
$2 = by_value_self_argument_in_trait_impl::Struct {x: 2222, y: 3333}

Breakpoint 3, 
_$LT$$LP$f64$C$$u20$isize$C$$u20$isize$C$$u20$f64$RP$$u20$as$u20$by_value_self_argument_in_trait_impl..Trait$GT$::method::hfc905ce4eef80791
 (self=...) at 
/home/semarie/ports/pobj/rust-1.27.1/rustc-1.27.1-src/src/test/debuginfo/by-value-self-argument-in-trait-impl.rs:78
78              zzz(); // #break
$3 = (1.3580758699491792e-312, 3333, 274877616528, 1.3580758714116135e-312)
[Inferior 1 (process 58045) exited normally]

------stderr------------------------------

------------------------------------------

error: line not found in debugger output: $3 = (4444.5, 5555, 6666, 7777.5)
status: exit code: 0
command: "/usr/local/bin/egdb" "-quiet" "-batch" "-nx" 
"-command=/home/semarie/repos/openbsd/ports/pobj/rust-1.27.1/build-aarch64/build/aarch64-unknown-openbsd/test/debuginfo/by-value-self-argument-in-trait-impl.debugger.script"
stdout:
------------------------------------------
GNU gdb (GDB) 7.12.1
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "aarch64-unknown-openbsd6.3".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
Breakpoint 1 at 0x102d4: file 
/home/semarie/ports/pobj/rust-1.27.1/rustc-1.27.1-src/src/test/debuginfo/by-value-self-argument-in-trait-impl.rs,
 line 59.
Breakpoint 2 at 0x10300: file 
/home/semarie/ports/pobj/rust-1.27.1/rustc-1.27.1-src/src/test/debuginfo/by-value-self-argument-in-trait-impl.rs,
 line 71.
Breakpoint 3 at 0x10330: file 
/home/semarie/ports/pobj/rust-1.27.1/rustc-1.27.1-src/src/test/debuginfo/by-value-self-argument-in-trait-impl.rs,
 line 78.

Breakpoint 1, 
_$LT$isize$u20$as$u20$by_value_self_argument_in_trait_impl..Trait$GT$::method::h301182dfaa0d14da
 (self=1111) at 
/home/semarie/ports/pobj/rust-1.27.1/rustc-1.27.1-src/src/test/debuginfo/by-value-self-argument-in-trait-impl.rs:59
59              zzz(); // #break
$1 = 1111

Breakpoint 2, 
_$LT$by_value_self_argument_in_trait_impl..Struct$u20$as$u20$by_value_self_argument_in_trait_impl..Trait$GT$::method::h4a9e5070dccd20d1
 (self=...) at 
/home/semarie/ports/pobj/rust-1.27.1/rustc-1.27.1-src/src/test/debuginfo/by-value-self-argument-in-trait-impl.rs:71
71              zzz(); // #break
$2 = by_value_self_argument_in_trait_impl::Struct {x: 2222, y: 3333}

Breakpoint 3, 
_$LT$$LP$f64$C$$u20$isize$C$$u20$isize$C$$u20$f64$RP$$u20$as$u20$by_value_self_argument_in_trait_impl..Trait$GT$::method::hfc905ce4eef80791
 (self=...) at 
/home/semarie/ports/pobj/rust-1.27.1/rustc-1.27.1-src/src/test/debuginfo/by-value-self-argument-in-trait-impl.rs:78
78              zzz(); // #break
$3 = (1.3580758699491792e-312, 3333, 274877616528, 1.3580758714116135e-312)
[Inferior 1 (process 58045) exited normally]

------------------------------------------
stderr:
------------------------------------------

------------------------------------------

thread '[debuginfo-gdb] debuginfo/by-value-self-argument-in-trait-impl.rs' 
panicked at 'explicit panic', tools/compiletest/src/runtest.rs:3033:9
note: Run with `RUST_BACKTRACE=1` for a backtrace.


failures:
    [debuginfo-gdb] debuginfo/by-value-self-argument-in-trait-impl.rs

test result: FAILED. 75 passed; 1 failed; 33 ignored; 0 measured; 0 filtered out


-- 
Sebastien Marie

Reply via email to