Skip to content

Debugging using gdb is unergonomic #142

@teythoon

Description

@teythoon

I'm trying to debug an issue involving GenericArray:

(gdb) print expected_tag
$11 = generic_array::GenericArray<u8, typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UInt<typenum::uint::UTerm, typenum::bit::B1>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>, typenum::bit::B0>> {data: generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplOdd<u8, [u8; 0]>>>>> {parent1: generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplOdd<u8, [u8; 0]>>>> {parent1: generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplOdd<u8, [u8; 0]>>> {parent1: generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplOdd<u8, [u8; 0]>> {parent1: generic_array::GenericArrayImplOdd<u8, [u8; 0]> {parent1: [], parent2: [], data: 210}, parent2: generic_array::GenericArrayImplOdd<u8, [u8; 0]> {parent1: [], parent2: [], data: 70}, _marker: core::marker::PhantomData<u8>}, parent2: generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplOdd<u8, [u8; 0]>> {parent1: generic_array::GenericArrayImplOdd<u8, [u8; 0]> {parent1: [], parent2: [], data: 244}, parent2: generic_array::GenericArrayImplOdd<u8, [u8; 0]> {parent1: [], parent2: [], data: 123}, _marker: core::marker::PhantomData<u8>}, _marker: core::marker::PhantomData<u8>}, parent2: generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplOdd<u8, [u8; 0]>>> {parent1: generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplOdd<u8, [u8; 0]>> {parent1: generic_array::GenericArrayImplOdd<u8, [u8; 0]> {parent1: [], parent2: [], data: 31}, parent2: generic_array::GenericArrayImplOdd<u8, [u8; 0]> {parent1: [], parent2: [], data: 91}, _marker: core::marker::PhantomData<u8>}, parent2: generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplOdd<u8, [u8; 0]>> {parent1: generic_array::GenericArrayImplOdd<u8, [u8; 0]> {parent1: [], parent2: [], data: 78}, parent2: generic_array::GenericArrayImplOdd<u8, [u8; 0]> {parent1: [], parent2: [], data: 216}, _marker: core::marker::PhantomData<u8>}, _marker: core::marker::PhantomData<u8>}, _marker: core::marker::PhantomData<u8>}, parent2: generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplOdd<u8, [u8; 0]>>>> {parent1: generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplOdd<u8, [u8; 0]>>> {parent1: generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplOdd<u8, [u8; 0]>> {parent1: generic_array::GenericArrayImplOdd<u8, [u8; 0]> {parent1: [], parent2: [], data: 195}, parent2: generic_array::GenericArrayImplOdd<u8, [u8; 0]> {parent1: [], parent2: [], data: 10}, _marker: core::marker::PhantomData<u8>}, parent2: generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplOdd<u8, [u8; 0]>> {parent1: generic_array::GenericArrayImplOdd<u8, [u8; 0]> {parent1: [], parent2: [], data: 108}, parent2: generic_array::GenericArrayImplOdd<u8, [u8; 0]> {parent1: [], parent2: [], data: 190}, _marker: core::marker::PhantomData<u8>}, _marker: core::marker::PhantomData<u8>}, parent2: generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplOdd<u8, [u8; 0]>>> {parent1: generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplOdd<u8, [u8; 0]>> {parent1: generic_array::GenericArrayImplOdd<u8, [u8; 0]> {parent1: [], parent2: [], data: 80}, parent2: generic_array::GenericArrayImplOdd<u8, [u8; 0]> {parent1: [], parent2: [], data: 128}, _marker: core::marker::PhantomData<u8>}, parent2: generic_array::GenericArrayImplEven<u8, generic_array::GenericArrayImplOdd<u8, [u8; 0]>> {parent1: generic_array::GenericArrayImplOdd<u8, [u8; 0]> {parent1: [], parent2: [], data: 180}, parent2: generic_array::GenericArrayImplOdd<u8, [u8; 0]> {parent1: [], parent2: [], data: 126}, _marker: core::marker::PhantomData<u8>}, _marker: core::marker::PhantomData<u8>}, _marker: core::marker::PhantomData<u8>}, _marker: core::marker::PhantomData<u8>}}

That is not helpful at all :( It'd be great to have a gdb pretty-printer that understands GenericArray.

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