"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como imprimir elementos vetoriais em C++ usando GDB?

Como imprimir elementos vetoriais em C++ usando GDB?

Publicado em 2024-11-07
Navegar:240

How to Print Vector Elements in C   Using GDB?

Impressão de elementos vetoriais em C via GDB

Ao depurar código C no GDB, examinar o conteúdo de um std::vector pode ser um desafio . Por exemplo, considere um std::vector chamado myVector. Como imprimimos efetivamente seus elementos?

No GCC 4.1.2, a solução envolve acessar o ponteiro interno do vetor, myVector._M_impl._M_start, que aponta para o array que contém os elementos do vetor.

Para imprimir o vetor inteiro, use:

print *(myVector._M_impl._M_start)@myVector.size()

Para imprimir apenas os primeiros N elementos, modifique-o para:

print *(myVector._M_impl._M_start)@N

Raciocínio

Esta abordagem aproveita o comando GDB para imprimir N elementos de uma matriz começando em um dado ponteiro. Neste caso, o ponteiro é myVector._M_impl._M_start e especificamos o número de elementos a serem impressos usando myVector.size() ou a contagem desejada N.

Embora esta abordagem seja aplicável ao GCC 4.1.2 , pode variar dependendo da versão do seu compilador. Assim, para outras versões, recomenda-se a consulta da documentação pertinente.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3