9
votes

Application Windows de débogage croisée sur la boîte Linux dans Eclipse CDT

Je suis transféré de Windows à Ubuntu Linux et je souhaite maintenant mettre en place un environnement de développement ici. Le problème est que j'ai besoin

  1. C / C ++ IDE comparable à Visual Studio
  2. moyen de générer des fichiers binaires Windows PE
  3. WAY DO DÉBING Windows PE Binaires

    À la première fois, j'ai essayé du code :: Blocks. ici Je trouve le guide pour la configurer pour le développement croisé, donc j'ai géré Pour obtenir "Hello World", compilé et courir sous du vin. De plus, le débogage a également fonctionné.

    Mais puis j'ai trouvé que l'Eclipse + CDT Plugin est beaucoup plus avancé. IDE. J'ai passé du temps et j'ai enfin compilé de projet et lié.

    Maintenant, j'essaie d'obtenir la version Mingw Insight de GDB travaillant dans Eclipse CDT. Un moyen simple d'utiliser le débogueur décrit dans le code :: Le guide des blocs ne fonctionnera plus. Je continue à recevoir des messages "Erreur lors de la création de session".

    Donc, ma question est, comment je peux utiliser Mingw GDB sous le vin en tant que débogueur en arrière dans Eclipse? Ou, quelle est la meilleure IDE pour le développement croisé de Linux-> Windows?


0 commentaires

3 Réponses :


0
votes

Vous pouvez essayer Netbeans . C'est une bonne source ouverte et cross plateforme support IDE.


0 commentaires

3
votes

Je me demande que personne n'a répondu à ce sujet.

  1. qtcreator. Ne soyez pas confus par son nom, QTCreator Works est plutôt bien avec n'importe quel type de code C ++, vous n'avez pas besoin de coder dans qt pour l'utiliser. C'est juste comme FOSS Visual Studio: il a même une vérification de la syntaxe "à la volée".

  2. mingw. Voici pas grand chose à dire, cela crée simplement des exécutables Gagnez PE et cela fonctionne. Il est disponible dans des référentiels. Remarque, que des applications GUI GUI ont un bit spécial dans son ensemble d'en-tête PE; Ainsi, afin de créer une application GUI avec Mingw, vous devez passer une option -mwindows pour définir ce bit.

  3. C'est un problème. Vraiment: J'essaie simplement de déboguer une application Windows et n'a pas encore trouvé un moyen de le faire. Je me souviendrai bientôt ici ce que j'ai essayé jusqu'à présent, juste pour que vous ne soyez pas sur mes râteaux:

    • winedbg . Cela devrait probablement fonctionner, mais pour moi, ça ne l'a pas fait. Quand j'ai défini un point d'arrêt, c'est-à-dire comme ce br 43 , il est indiqué Impossible d'ajouter un point d'arrêt (adresse inconnue 7B860807) .

    • winedbg . Ouais, encore une fois, mais cette fois, nous l'utiliserons comme ce Winedbg --gbd pour le faire proxyer une commande à gdb . C'est probablement le seul moyen de déboguer une demande, mais il a un inconvénient: premièrement, afin de redémarrer une demande, vous devez quitter le débogueur; Si vous entrez exécuter il est indiqué que la cible distante ne prend pas en charge cela. Deuxièmement, je n'ai même pas l'idée de déboguer une application multithreadée; Quand j'ai commencé cela pour la première fois, je suis tombé sur une erreur sans arrêt demandé, mais la télécommande ne prend pas en charge la non-stop , et après avoir défini un point d'arrêt et le démarrage dit: Impossible d'insérer un point d'arrêt 1. et Impossible d'accéder à la mémoire à l'adresse 0x401654 . Ainsi, afin de faire ce travail, j'étais nécessaire pour renommer mon .gdbinit fichier (i.e. Mode non-stop est défini là-bas) .

    • gdb.exe . J'étais sûr que j'ai trouvé un moyen: une simple utilisation d'une version Windows de gdb devrait résoudre des problèmes; Plus de plus, pour moi, comme je suis un gars d'emacs, il serait absolument identique au débogage avec GDB autochtone. Mais hélas, le Windows GDB n'a tout simplement pas fonctionné. Si je l'exécute, et entrez une commande, cela ne fait que rien. Il ne réagit que sur CTRL-C et commandes CTRL-Z . Je vais probablement essayer mon temps libre pour poser une question à ce sujet sur la liste de diffusion. Eh bien, maintenant, nous ne pouvons pas l'utiliser ...

      Alors qu'est-ce que nous avons avec le débogage? Très probablement rechercher un autre débogueur Windows qui fonctionne sous vin . Si je me souviens bien, Ollydbg a travaillé, mais je ne sais pas au moment de savoir comment le faire montrer un code source.


4 commentaires

+1 pour qtcreator. Cela fonctionne très bien avec la chaîne d'outils du GCC.


Je ne mettrai pas encore à jour le poste, laissez plutôt les informations dans le commentaire: j'ai trouvé comment exécuter gdb.exe avec le vin pour le faire fonctionner correctement, il devrait ressembler à wineconsole --backend = Curse GDB.EXE .


Vient d'essayer dans emacs le gdb.exe , il est juste inutilisable :(


J'utilise EDB et définit l'exécutable que je veux déboguer pour courir automatiquement avec du vin. L'application semble se comporter différemment tout en courant dans le vin sur EDB qu'il ne le fait lorsqu'il est exécuté sur une machine virtuelle Windows dans OLLYDB. Je pense que le vin est la limitation ici, on dirait que vous devez exécuter les fenêtres exécutables sur des fenêtres réelles d'une machine virtuelle ou de manière native afin d'obtenir le même comportement que s'il s'agissait de Windows.



-2
votes

Exécuter des fenêtres dans un VM?

Sérieusement, votre question est bonne, mais cela ne vaut probablement pas la peine de passer le temps de comprendre la réponse (en particulier: puisque personne ne semble avoir une réponse prête). Si vous avez des travaux réels à faire, des fenêtres natales ou des fenêtres dans une machine virtuelle sont la réponse.


1 commentaires

Je suis géré sur une fenêtre dans la machine virtuelle, et ce n'est pas une bonne idée du tout, je dis, car mon PC n'a que 2 Go de RAM. Je suis sûr que cela vaut la peine de passer du temps comme une fois que je l'ai trouvé, je peux l'utiliser à tout moment et n'importe où.