我有一個巨大的嵌套數據結構(來自JSON精靈)的問題。在調試時,當這個結構充滿數據時,Eclipse在每一步都等待GDB打印數據後開始工作非常緩慢。問題是,即使我沒有擴展這個數據結構,Eclipse也收集了很多關於局部變量的信息。當漂亮的打印關閉時,它可以正常工作,但是當然我在STL容器內看不到任何東西。Eclipse CDT(4.5.1)與漂亮的打印工作緩慢
我使用打印機從GDB SVN
這裏是一個小的一段代碼,可以使類似的問題:
#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;
}
只是要在「迴歸」制動,你會看到,它需要很多時間在'變量'窗口中獲取某些內容。在那段時間你不能調試。
GDB set print elements number-of-elements
中有一個標誌,它可以限制要打印的容器中的元素的數量,它可以工作,但是當我對這些嵌套結構不感興趣時,這些設置會影響我想要檢查的其他容器。
任何想法如何解決它?
謝謝。
這看起來與https://bugs.eclipse.org/bugs/show_bug.cgi?id=519561非常相似,我很欣賞你所做的分析。你能否給bug添加相同的細節,特別是如果你相信它是相同的。謝謝! –