2016-12-12 68 views
3

我需要在CLion中以十六進制格式添加手錶。如何在CLion中添加十六進制手錶?

ltoa(variable, 16)至少在我的系統上不起作用。

在Java/Python中,我可以有一個解決方法:爲我的課寫一個自定義的toString()/__str__,並按照我的需要顯示它。 gdbp/x。我如何在CLion中做到這一點?

編輯ltoa(variable, 16)如果我在我的代碼中定義了ltoa,它並不總是出現在標準庫中。

回答

0

......在完善配方後,我看到了它。

我寫了我自己的char *lltoa(long long value, int radix)函數。我現在可以在手錶中使用它。

更新:在respective feature request,克里斯·懷特發現OS X中的解決方法與LLDB:

我決定做更多的挖掘,發現了一種設置在OS X LLDB給力HEX輸出無符號的字符數據類型:

​type format add –format hex "unsigned char" 

如果你想使這個設置永久性您還可以創建一個 .lldbinit文件,並添加此命令它。一旦你這樣做,CLion 將以十六進制格式顯示這種數據類型。

這使得所有這種類型的變量以十六進制顯示。

更新2:我的第一個解決方法非常骯髒,這裏更好。

您可以將格式分配給更具體的類型。調試器會跟蹤類型繼承。因此,將hex格式添加到uint8_t將不會影響unsigned char。您可以微調顯示。

您也可以將格式分配給結構。下面是從我.lldbinit一個例子:

type format add --format dec int32_t 

# https://lldb.llvm.org/varformats.html 
type summary add --summary-string "addr=${var.address} depth=${var.depth}" Position 
+1

以下是CLion/AppCode追蹤器中的相應功能請求:https://youtrack.jetbrains.com/issue/OC-2305請隨時投票。 –

+0

謝謝。我還在那裏找到了解決方法。有了這兩個,每個變量和一個全局變量,我們都可以生存。 –

3
set output-radix 16 

您可以將此作爲所謂.gdbinit在文件中的默認選項,你可以把你的主目錄,或從中啓動GDB的工作目錄(項目根,例如)。