2017-12-10 19 views
0

大きなマップを使用するアルゴリズムを作成しています。私はそれがどこに間違っているかを見るために紙の上でそれをしながらGDBと共にアルゴリズムに従おうとしています。 しかしマップは大きなにつれて、GDBはそれを略して、私は必要な次の値を、表示を停止:GDBでデバッグ中に大きなstd :: mapが完全に出力される

(gdb) p R 
$1 = std::map with 140 elements = {[0] = "", [1] = "e", [2] = "", [3] = "", [4] = "", [5] = "", [6] = "", [7] = "", [8] = "a", [9] = "a", [10] = "", [11] = "", [12] = "", [13] = "", [14] = "", 
    [15] = "", [16] = "a", [17] = "b", [18] = "", [19] = "", [20] = "", [21] = "", [22] = "b", [23] = "", [24] = "", [25] = "a", [26] = "", [27] = "", [28] = "", [29] = "", [30] = "", [31] = "b", 
    [32] = "", [33] = "a", [34] = "", [35] = "", [36] = "", [37] = "", [38] = "", [39] = "", [40] = "(b|a)", [41] = "e", [42] = "", [43] = "", [44] = "", [45] = "", [46] = "", [47] = "", [48] = "", 
    [49] = "", [50] = "", [51] = "a*.a", [52] = "", [53] = "", [54] = "", [55] = "", [56] = "", [57] = "", [58] = "", [59] = "", [60] = "", [61] = "", [62] = "", [63] = "", [64] = "", [65] = "a", 
    [66] = "b", [67] = "", [68] = "", [69] = "", [70] = "", [71] = "", [72] = "b.a*.a", [73] = "", [74] = "a", [75] = "", [76] = "", [77] = "", [78] = "", [79] = "", [80] = "b", [81] = "", [82] = "a", 
    [83] = "", [84] = "", [85] = "", [86] = "", [87] = "", [88] = "", [89] = "(b|a)", [90] = "e", [91] = "", [92] = "", [93] = "", [94] = "", [95] = "", [96] = "", [97] = "", [98] = "", [99] = ""...} 

Iは、P R [100]で要素にアクセスしようとしたが、GDBはこの構文を理解していません:

(gdb) p R[100] 
Attempt to take address of value not located in memory. 

私は、GDBがコマンド印刷できれいな表示を行うためのPythonスクリプトですプリティプリンタを使用していることを聞いたが、私は私のstdを印刷したプリティプリンタを正確にわからない::マップを変更する方法がわかりません。 また、STLコンテナでメモリをどのように処理するのか(私はアロケータやものはまだ研究していませんでした)はわかりませんので、私はそのコードに行きたいとは思っていません。

すべてを簡単に印刷できますか?それとも、きれいなプリンタを変更する必要がありますか? (もしそうなら、あなたは私にどのファイルを変更するのか、変更を登録するコマンドを教えてください)?

答えて

0

すべてを簡単に印刷できますか?

(gdb) set print elements 0 

Documentation

+0

ああ、単純です...私は記事でそれを見ましたが、何らかの理由で配列、文字列などでしか作業していないと思っていました。 – Harkan

+0

@ハルカン答えがあなたの問題を解決すれば、それを受け入れるべきです。 Re:配列、文字列など - pretty-printersはその設定を尊重することができます。 –

関連する問題