透過GDB 在C 中列印向量元素
在GDB 中調試C 程式碼時,檢查std::vector 的內容可能具有挑戰性。例如,考慮一個名為 myVector 的 std::vector
在 GCC 4.1.2 中,解決方案涉及存取向量的內部指標 myVector._M_impl._M_start,它指向保存向量元素的陣列。
要列印整個向量,請使用:
print *(myVector._M_impl._M_start)@myVector.size()
若要只列印前N 個元素,請將其修改為:
print *(myVector._M_impl._M_start)@N
推理
此方法利用GDB 指令列印從a 開始的陣列的N 個元素給定的指標。在本例中,指標是 myVector._M_impl._M_start,我們使用 myVector.size() 指定要列印的元素數量或所需的計數 N。
雖然此方法適用於 GCC 4.1.2 ,它可能會根據您的編譯器版本而有所不同。因此,對於其他版本,建議查閱相關文件。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3