J'écris un logiciel de rendu en g ++ sous mingw32 dans Windows 7, en utilisant NetBeans 7 comme mon IDE.
J'ai eu besoin de le profiler récemment, et ce besoin a atteint une masse critique maintenant que j'ai fini de poser la structure. J'ai regardé autour de moi, et pour moi cette réponse montre la plus grande promesse d'être simultanément multiplateforme et de garder les choses simples.
L'essentiel de cette approche est que la façon la plus simple (et à bien des égards, la plus précise) de profiler/optimiser est simplement d'échantillonner la pile de temps en temps en interrompant l'exécution ... Malheureusement, NetBeans ne fera pas pause. J'essaie donc de savoir comment faire cet échantillonnage directement avec gdb.
Je ne connais pas grand-chose à propos de gdb. Ce que je peux dire des pages de manuel cependant, c'est que vous définissez des points d'arrêt avant d'exécuter votre exécutable. Ça ne m'aide pas.
Quelqu'un connaît-il une approche simple pour obtenir gdb (ou d'autres outils gnu) pour:
... donne ma configuration indiquée?
Avez-vous essayé d'exécuter simplement votre exécutable dans gdb, puis d'appuyer sur ^ C (Ctrl+C) quand tu veux l'interrompre? Cela devrait vous amener à l'invite de gdb, où vous pouvez simplement exécuter la commande where
pour voir où vous êtes, puis poursuivre l'exécution avec continue
.
Si vous vous trouvez dans un thread non pertinent (par exemple un thread d'interface utilisateur en boucle), utilisez thread
, info threads
et thread n
pour aller à la bonne, puis exécutez where
.