Au lieu de gdbtui
ou ctrl+x
sous gdb
lequel affiche le code source en haut de l'écran, j'aimerais voir ceci dans mon éditeur Vim qui sauterait entre les onglets et les tampons en conséquence.
Comment puis-je faire ceci?
Au lieu de gdbtui
ou ctrl+x
sous gdb
lequel affiche le code source en haut de l'écran, j'aimerais voir ceci dans mon éditeur Vim qui sauterait entre les onglets et les tampons en conséquence.
Comment puis-je faire ceci?
Réponses:
Parmi tous les plugins que j'ai essayés, j'ai trouvé que ConqueGDB était la meilleure approche. ConqueGDB utilise Conque Shell pour incorporer un shell interactif dans vim, utilisé par GDB.
Le flux de travail avec ConqueGDB consiste à ne pas entrer de commandes GDB sur le terminal GDB, vous utilisez des raccourcis sur le code source vim. Mais vous pouvez continuer à utiliser l'invite GDB si vous le souhaitez, pour des commandes plus avancées, ou faire défiler pour voir la totalité de la session de débogage.
Certains mappages par défaut de ConqueGDB, par exemple:
Remarquez comment la ligne du curseur vim a été utilisée pour émettre une 'ligne d'impression' dans la base de données, l'exécution du code en cours est dans une autre ligne (14) et un point d'arrêt est indiqué à la ligne 10.
Pour installer avec Vundle par exemple:
J'utilise ces options de plugin:
la source
leader
dire<leader>r
signifie <kbd> \ </ kbd> + <kbd> r </ kbd> sur mes ordinateurs. Le manuel de Vim a une entrée pour cela::help leader
<Leader>b
. Il définit un point d'arrêt à la position du curseur. Cependant, ce n'est PAS une bascule, vous ne pouvez donc pas l'utiliser pour la supprimer. Au lieu de cela, vous devrez écrire "clear" sur l'invite de la base de données.Vous avez plusieurs plugins qui intègrent gdb.
Et il y a aussi un plugin qui intègre lldb (du projet LLVM)
Il semble que Bram travaille actuellement (septembre 2017) sur l'intégration de gdb à l'intérieur de vim grâce à la nouvelle
:terminal
fonctionnalité. Pour l'utiliser, nous devons chargertermdebug
packet (avec:packadd termdebug
), puis nous pourrons démarrer une console gdb dans une fenêtre vim avec:TermDebug (+options)
. OMI, on peut considérer que c'est l'avenir de l'intégration de la GDB sous Vim.la source
edit
Commande GDBOuvre un éditeur sur la ligne en cours en utilisant la commande:
La valeur par défaut
editor
estex
, maisvim
comprend également le+<current-line>
format.Lorsque vous quittez l'éditeur, vous revenez dans
gdb
.Cela vous permet de parcourir la source librement et est particulièrement puissant si vous avez une
ctags
intégration.Il s'agit d'une intégration gdb à vim à sens unique pour un homme pauvre: la principale chose qui manque est la définition de points d'arrêt à partir de Vim.
edit
et centreedit
ne centre pas Vim par défaut autour de la source, j'ai donc créé un script Python qui le fait: https://stackoverflow.com/questions/43557405/how-to-open-the-current-file-at-the- current-line-in-a-text-editor-from-gdb / 43557406 # 43557406Commande de point d'arrêt à l'aide du presse-papier
Cette commande vim copie un spécificateur de point d'arrêt de type:
dans le presse-papier:
Ensuite, vous pouvez simplement coller cela dans
gdb
.Il s’agit d’une intégration vim à gdb d’un pauvre pour faciliter l’établissement de points de rupture.
Voir aussi: https://stackoverflow.com/questions/3536600/do-you-debug-c-code-in-vim-how
la source
Bien que pas techniquement vim. cgdb est une version maléfique de gdb avec des liaisons de clé similaires à vim. C'est mon débogueur de goto depuis des années:
https://cgdb.github.io/
la source