Je développe des applications C ++ dans un environnement Linux. Les outils que j'utilise au quotidien incluent Eclipse avec le plugin CDT, gdb et valgrind.
Quels outils les autres utilisent-ils? Existe-t-il quelque chose pour Linux qui rivalise avec la fluidité de Microsoft Visual Studio?
Réponses
Trop de publicités?Je utiliser un tas de terminal windows. J'ai vim en cours d'exécution sur source intéressante fichiers, et g++ sortie sur un autre pour les erreurs de compilation ou d'une session gdb pour des erreurs d'exécution. Si j'ai besoin d'aide pour trouver des définitions I run cscope et l'utilisation de vim est cscope soutien à sauter partout.
Eclipse CDT est mon deuxième choix. Il est joli, mais énorme, maladroits et lents par rapport à vim.
En utilisant le terminal de windows et vim est très flexible, car je n'ai pas besoin de transporter 400 MO de Java autour de moi, je peux utiliser les sessions SSH depuis n'importe où.
Je utiliser valgrind quand j'ai besoin de trouver un problème de mémoire.
J'utilise strace
d'attention à ce que mon logiciel est en train de faire sur un système de niveau d'appel. Cela me permet de nettoyer vraiment stupide code qui l'appelle, time(0)
quatre fois dans une rangée ou fait trop d'appels d' poll()
ou non bloquant read()
ou des choses comme appelant read()
sur un socket de lire 1 octet à la fois. (C'est super inefficace et paresseux!)
J'utilise objdump -d
d'inspecter le code de l'ordinateur, en particulier pour les performances sensibles à l'intérieur des boucles. Voilà comment j'ai trouver des choses comme la lenteur de l'index du tableau de l'opérateur sur les chaînes de caractères par rapport à l'utilisation des itérateurs.
J'utilise oprofile pour essayer de trouver les points chauds dans le code optimisé, je trouve que ça fonctionne un peu mieux que gprof, et il peut faire des choses comme look pour les données et le cache d'instructions de justesse. Que pouvez-vous dire où vous pouvez déposer quelques prefetch conseils à l'aide de GCC __builtin_prefetch
. J'ai essayé de l'utiliser pour trouver chaude mal prédit branches, mais ne pouvait pas obtenir que cela fonctionne pour moi.
Mise à jour: j'ai trouvé que la perf fonctionne bien mieux que oprofile. Au moins sur Linux. Apprendre à utiliser les perf et l'aimer comme je le fais.
g++ bien sûr, mais aussi Code::Blocks qui est absolument fantastique de la croix-plate-forme de l'IDE (Win32, unix, Mac).
J'utilise tous les soirs (ou hebdomadaire, ces derniers temps) construit à partir du SVN. Il a presque toutes les cloches et de sifflets que vous attendez d'un IDE moderne. C'est vraiment une fantastique projet Open Source.
Aussi, sur Linux, vous obtenez la joie de l'utilisation de Valgrind qui est probablement le meilleur souvenir tracker (il fait d'autres choses aussi), outil que l'argent peut acheter. Et c'est gratuit :) traquer les fuites de mémoire et plus à l'aise.
Et il y a tellement beaucoup plus! Linux est une grande plate-forme de dev :)
(edit) vient de réaliser que vous avez mentionné Valgrind dans votre question, idiot moi pour le lire trop vite.