generic-array icon indicating copy to clipboard operation
generic-array copied to clipboard

Debugging using gdb is unergonomic

Open teythoon opened this issue 1 year ago • 4 comments

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.

teythoon avatar May 16 '23 13:05 teythoon