Comment puis-je déboguer Rust l'application étape par étape de manière interactive comme je suis capable de le faire avec "pry" en Ruby?
Je veux pouvoir voir et modifier de préférence les variables en temps réel lorsque j'atteins un point de rupture. Existe-t-il un projet prêt à la production?
Je trouve un bon niveau de convivialité avec VS Code et l'extension CodeLLDB :
launch.json
Sera ouvert, sinon ouvrez-le, il se trouve sous le dossier .vscode
Votre launch.json
Devrait ressembler à ceci:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.Microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug",
"program": "${workspaceRoot}/target/debug/hello_world",
"args": [],
"cwd": "${workspaceRoot}/target/debug/",
"sourceLanguages": ["Rust"]
}
]
}
Si vous souhaitez conserver les éléments génériques et ne compiler qu'un fichier binaire correspondant au nom du dossier cargo, vous pouvez utiliser la substitution de variable $ {workspaceRootFolderName} pour la clé "programme":
{
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug",
"program": "${workspaceRoot}/target/debug/${workspaceRootFolderName}",
"args": [],
"cwd": "${workspaceRoot}/target/debug/",
"sourceLanguages": ["Rust"]
}
]
}
Voici quelques articles de blog sur Rust et VS Code:
Le compilateur Rust génère des binaires natifs avec des informations de débogage natives, comme le fera tout débogueur natif. Cela signifie que gdb
et lldb
, ou Windows Si vous utilisez la version MSVC ABI de Rust, si vous voulez une expérience intégrée, RustDT est le chemin à parcourir (configuration sous Windows: Comment configurer GDB pour le débogage Rust programmes sous Windows? ) .Veuillez noter que vous risquez de vous heurter à Comment puis-je inspecter les valeurs de variables lors du débogage de MSVC ABI = Rust programmes? sous Windows et https://github.com/Rust-lang/Rust/issues/33062 sur un Mac.
Pour un débogueur graphique, il existe gdbgui . Il est disponible pour Linux, Windows et MacOS. Il utilise le navigateur comme écran et pour interagir avec le débogueur.
J'ai gdb 7.11 et la commande Rust-gdb semble donner plus d'informations pertinentes à Rust = Rust). Par exemple, Rust-gdb affiche Rust objets correctement Les noms, et gdb ne les montrent tout simplement pas.
Dans l'exemple suivant, gdb afficherait maintenant toutes les parties en gras.
$ 1 = Args = {intérieure = ArgsOs = {intérieure = Args = {iter = IntoIter = {buf = Non null = = {pointeur = non nul <* const std :: ffi :: os_str :: OsString> = {0x7ffff6c20060}}, fantôme = PhantomData, cap = 1, ptr = 0x7ffff6c20060, end = 0x7ffff6c20078}, _dont_send_or_sync_me = PhantomData <* mut ()>}}}