J'ai un problème avec d'énormes structures de données imbriquées (à partir de JSON Spirit). Lors du débogage, lorsque cette structure est remplie de données, Eclipse commence à fonctionner très lentement, après chaque étape d'attente de données imprimées de GDB. Le fait est que Eclipse rassemble beaucoup d'informations sur les variables locales même si je n'élargis pas cette structure de données. Quand la jolie impression est désactivée, cela fonctionne, mais bien sûr, je ne vois rien à l'intérieur des conteneurs STL.Eclipse CDT (4.5.1) fonctionne lentement avec une jolie impression
J'utilise les imprimantes de GDB SVN
Voici un petit morceau de code qui peut faire des problèmes similaires:
#include <iostream>
#include <string>
#include <map>
int main() {
std::map<std::string, std::map<std::string, std::map<std::string, std::string>>> mega_map;
const int factor = 50;
for (int c = 0; c < factor; ++c){
std::map<std::string, std::map<std::string, std::string>> b_map;
for (int b = 0; b < factor; ++b){
std::map<std::string, std::string> a_map;
for (int a = 0; a < factor; ++a){
std::string a_str = "a";
a_str += (std::to_string(a));
auto a_pair = std::make_pair("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + a_str, "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz");
a_map.insert(a_pair);
}
std::string b_str = "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb";
b_str += (std::to_string(b));
b_map[b_str] = a_map;
}
std::string c_str = "cccccccccccccccccccccccccccccccccccccccc";
c_str += (std::to_string(c));
mega_map[c_str] = b_map;
}
return 0;
}
Il suffit de faire un frein à « retour », et vous verrez qu'il faut beaucoup de temps pour obtenir quelque chose dans la fenêtre 'Variables'. Pendant ce temps, vous ne pouvez pas déboguer.
Il existe un indicateur dans GDB set print elements number-of-elements
qui peut limiter le nombre d'éléments dans les conteneurs à imprimer, cela fonctionne mais si ces structures imbriquées ne m'intéressent pas, ces paramètres affectent d'autres conteneurs que je voudrais inspecter.
Des idées pour y remédier?
Merci.
Cela ressemble beaucoup à https://bugs.eclipse.org/bugs/show_bug.cgi?id=519561 et j'apprécie l'analyse que vous avez faite. Pouvez-vous ajouter les mêmes détails au bug s'il vous plaît, surtout si vous croyez que c'est la même chose. Merci! –