LLDB Debugger — определение пользовательских типов отображения

В нашей базе кода мы используем libfixmath, библиотеку, используемую для вычисления значений с плавающей запятой на основе ее. Следовательно, сами значения являются целыми числами снизу, но мы хотим, чтобы наш отладчик отображал их как числа с плавающей точкой при остановке на точке останова.

Мы используем AppCode в качестве IDE для OSX, делая приложения для iOS на C ++ и Objective-C, если это имеет значение.

Как мы можем этого достичь?

0

Решение

У lldb есть способ обеспечить пользовательское форматирование для определенных типов. Смотрите здесь для деталей:

http://lldb.llvm.org/varformats.html

Единственное ограничение заключается в том, что это средство отображает типы -> параметры форматирования. Таким образом, вы не можете делать такие вещи, как «Если я вижу int в каком-то контексте, относиться к нему как с плавающей точкой», вы можете делать это только для ВСЕХ целых. Но если у вас есть тип оболочки, который содержит рассматриваемые целые числа, вы можете довольно легко написать средство форматирования, которое интерпретирует содержимое типа оболочки.

API LLDB будут отображать значения, используя средства форматирования данных, описанные выше, как и все команды командной строки, которые представляют данные. AppCode может использовать реализацию lldb интерфейса gdb-MI, и я не думаю, что он поддерживает средства форматирования данных. Таким образом, вы можете или не сможете увидеть результаты в их представлении Местные жители.

1

Другие решения

Других решений пока нет …