Ich habe ein Problem mit großen verschachtelten Datenstrukturen (von JSON Spirit). Beim Debuggen beginnt Eclipse, wenn diese Struktur mit Daten gefüllt ist, sehr langsam zu arbeiten, nach jedem Schritt wartet es auf gedruckte Daten von GDB. Die Sache ist, dass Eclipse viele Informationen über lokale Variablen sammelt, auch wenn ich diese Datenstruktur nicht erweitere. Wenn der hübsche Ausdruck aus ist, funktioniert es, aber ich kann natürlich nichts in STL-Containern sehen.Eclipse CDT (4.5.1) arbeitet langsam mit hübschen Drucken
Ich bin mit Druckern von GDB SVN
hier ein kleines Stück Code, die ähnliche Probleme machen kann:
#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;
}
Nur eine Bremse bei ‚Rückkehr‘ machen, und Sie werden sehen, dass es dauert, viel Zeit, um etwas im 'Variablen' Fenster zu bekommen. Während dieser Zeit können Sie nicht debuggen.
Es gibt ein Flag in GDB set print elements number-of-elements
, das die Anzahl der Elemente in den zu druckenden Containern begrenzen kann. Obwohl diese verschachtelten Strukturen mich nicht interessieren, wirkt sich diese Einstellung auf andere Container aus, die ich untersuchen möchte.
Irgendwelche Ideen, wie man es repariert?
Danke.
Dies sieht sehr ähnlich zu https://bugs.eclipse.org/bugs/show_bug.cgi?id=519561 und ich schätze die Analyse, die Sie getan haben. Können Sie dem Fehler bitte die gleichen Details hinzufügen, besonders wenn Sie glauben, dass es derselbe ist. Vielen Dank! –