我需要在CLion中以十六進制格式添加手錶。如何在CLion中添加十六進制手錶?
ltoa(variable, 16)
至少在我的系統上不起作用。
在Java/Python中,我可以有一個解決方法:爲我的課寫一個自定義的toString()
/__str__
,並按照我的需要顯示它。 gdb
有p/x
。我如何在CLion中做到這一點?
編輯:ltoa(variable, 16)
如果我在我的代碼中定義了ltoa
,它並不總是出現在標準庫中。
我需要在CLion中以十六進制格式添加手錶。如何在CLion中添加十六進制手錶?
ltoa(variable, 16)
至少在我的系統上不起作用。
在Java/Python中,我可以有一個解決方法:爲我的課寫一個自定義的toString()
/__str__
,並按照我的需要顯示它。 gdb
有p/x
。我如何在CLion中做到這一點?
編輯:ltoa(variable, 16)
如果我在我的代碼中定義了ltoa
,它並不總是出現在標準庫中。
......在完善配方後,我看到了它。
我寫了我自己的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
set output-radix 16
您可以將此作爲所謂.gdbinit
在文件中的默認選項,你可以把你的主目錄,或從中啓動GDB的工作目錄(項目根,例如)。
以下是CLion/AppCode追蹤器中的相應功能請求:https://youtrack.jetbrains.com/issue/OC-2305請隨時投票。 –
謝謝。我還在那裏找到了解決方法。有了這兩個,每個變量和一個全局變量,我們都可以生存。 –