2017-02-09 6 views
0

、Iはgdbの構造体値を読み取るには?例えば

のp-DESTのMSGを入力し、[カウント]

以下の値が表示されています。これらの価値の意義を理解するには?

p dest->msgs[count] 
$9 = {hdr = {ver = 5 '\005', magic = 18 '\022', evt_len = 588}, evt = {hdr = {ver = 3 '\003', magic = 18 '\022', evt_len = 552}, service_id = 1, instance = 0, comp_id = -2136604671, 
    comp_name = "tsd", '\0' <repeats 14 times>, flags = 0, objid = 0, file = "ts.c", '\0' <repeats 11 times>, func = "tsTimeMcast_h\000\000", line = 1667, local_time_sec = 1483252020, 
    local_time_usec = 28575, time_sec = 1483252020, time_usec = 28675, global_seq = 4014, external_seq = 2146, iq_drop = 0, rq_drop = 0, 
    arg_offset = "\000\002\005\006", '\0' <repeats 11 times>, arg = "LOCL\000\000\000\000External\000\000\000\000EXT\000LOCL", '\0' <repeats 227 times>, msgdef = {msg_id = 0, 
     attributes = 0, class = 0, severity = 0, msg_value = "\000\000\000\000\000\000\000\000\000", message = '\0' <repeats 128 times>, arg_type = 0, arg_num = 0, 
     cat_name = "\000\000\000\000\000\000\000"}}, name = '\0' <repeats 31 times>} 
+0

'set print pretty on'ははるかに読みやすく、デフォルトのコンパクトなフォーマットです。 – ks1322

答えて

1

のは、私たちがここに持っているか見てみましょう:

P dest-> MSGの[回数]

だから、あなたは、配列から一つの特定の要素を印刷し、それはそうです。 GDBが応答します。

を$ 9 = {

この$9はあなたこの結果を参照するために、後で使用できるだけで人工的な名前です。結果は、開きブレースから始まります。これは構造体であることを意味します。それは続く:

HDR = {版= 5 '\ 005'、マジック= 18 '\ 022'、evt_len = 588}、

構造の最初のメンバーは、名前hdrを有しますその値は、次の開きブレースを参照してください。これも構造体です。このネストされた構造体には、3つのメンバーがあります(閉じるブレースは、カウントを停止する必要がある場所を示します)。vermagic、およびevt_lenという名前です。あなたはそれぞれの価値観を見ることができます。次いで、evtは再び部材hdrを有する構造であり、外側の構造の第二の部材である

EVT = {HDR = {版= ...

に続きます再び構造体です。その他。

関連する問題