2016-04-14 3 views
9

J'ai téléchargé la version MSVC ABI de Rust 1.7.0 et j'ai suivi la section devinettes du jeu. Je remarque que les builds utilisent la chaîne d'outils native (Visual Studio 2015 Update 2 dans mon cas) et donc génèrent des PDB natifs (symboles de débogage) consommables par les débogueurs natifs, tels que WinDBG, CDB ou le débogueur Visual Studio. Je peux facilement définir des points d'arrêt, entrer dans la source de bibliothèque standard et ainsi de suite.Comment puis-je inspecter les valeurs de variables lors du débogage des programmes MSVC ABI Rust?

Ce que je ne peux pas faire est d'inspecter des valeurs variables. Quel que soit le débogueur utilisé, l'affichage 'Locals' est vide. D'après ce que je peux comprendre, les EDI Visual Rust/RustDT affichent les locals lors de l'utilisation de GDB ou LLDB en tant que backend, et non du moteur de débogage Windows natif. Je ne suis pas entièrement sûr si je peux les employer pour déboguer des programmes de rouille compilés pour MSVC ABI (avec des PDBs et ainsi de suite).

Si je veux avoir l'expérience de débogage nécessaire, est ma seule option pour passer à l'ABI GNU? Sauf cela, existe-t-il un moyen facile de mapper des symboles Rust (valeurs variables) à partir des outils de débogage bruts (registres, carte mémoire)?

Répondre

3

Les fonctionnalités n'existent pas tant qu'elles ne sont pas implémentées. La rouille est construite sur LLVM et full PDB support has only recently been considered for LLVM. Pour l'instant, LLVM n'a qu'un support PDB limité, avec les limitations les mieux décrites sur le Clang project's MSVC compatibility page. À mon avis, il est préférable d'attendre que le support soit là, bien que pour les autres langages de programmation interesting workarounds ont été implémentés.