2016-12-12 2 views
3

Мне нужно добавить часы в шестнадцатеричном формате в CLion.Как добавить шестнадцатеричные часы в CLion?

ltoa(variable, 16) не работает, по крайней мере, в моей системе.

В Java/Python у меня может быть обходное решение: напишите произвольный toString()/__str__ для моего класса и отобразите его так, как мне нужно. gdb имеет p/x. Как мне это сделать в CLion?

Edit: ltoa(variable, 16) работает, если я определить ltoa в моем коде, так как это не всегда присутствует в стандартной библиотеке.

ответ

0

... после уточнения формулировки, я вижу.

Я написал (а) свой собственный char *lltoa(long long value, int radix) функция. Теперь я могу использовать его в часах.

Update: в respective feature request, Крис Уайт нашел обходной путь на OS X с lldb:

я решил сделать немного больше копать и нашел способ установить lldb на OS X , чтобы заставить выход HEX для типов данных без знака гольцов:

​type format add –format hex "unsigned char" 

Если вы хотите, чтобы сделать эту настройку настойчивыми вы также можете создать .lldbinit файл и добавить эту команду к нему. После этого CLION отобразит этот тип данных в формате HEX.

Это делает ВСЕ переменные этого типа в шестнадцатеричном виде.

Обновление 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 (например, root проекта).