2016-12-12 5 views
3

CLionに16進数形式の時計を追加する必要があります。CLionで16進時計を追加するには?

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で、Chris WhiteがlldbとOS X上の回避策を見つけました:

が、私はもう少し掘りを行うことを決めたと強制的にOS上lldb X を設定する方法を発見unsigned char型データ型のHEX出力:

​type format add –format hex "unsigned char" 

この設定を永続化する場合は、また .lldbinitファイルを作成して、このコマンドを追加することができます。これを行うと、 はこのデータタイプをHEX形式で表示します。

これにより、このタイプのすべての変数が16進数で表示されます。

更新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

ありがとうございます。私もそこに回避策を見つけました。これらの2つでは、変数ごとに1つ、グローバルに1つ、生きることができます。 –

3
set output-radix 16 

あなたは(あなたがあなたのホームディレクトリに置くことができます.gdbinitと呼ばれるファイル内のデフォルトオプション、またはあなたがGDBを起動し、そこから作業ディレクトリとしてこれを設定することができますプロジェクトルートなど)。

関連する問題