lldb - Как отобразить число с плавающей запятой с десятичными знаками, используя формат типа добавить

У меня есть переменная типа float. Xcode отображает его в экспоненциальном представлении (например, 3.37626e+07). Я пытаюсь заставить его отображаться с использованием записи через точку (например, 33762616,00).
Я пробовал все форматы, предоставляемые lldb, но ни один из них не отображает число с плавающей запятой с использованием десятичных знаков. Я читал другие сообщения и смотрел сеанс 415 WWDC2012 (как предложено здесь), но я должен быть слишком близко к лесу, чтобы видеть деревья. Любая помощь будет принята с благодарностью!

введите здесь описание изображения


person MikeyE    schedule 12.03.2013    source источник


Ответы (1)


Попробуйте добавить пользовательский форматтер данных в файл ~/.lldbinit для типа float. например

Process 13204 stopped
* thread #1: tid = 0xb6f8d, 0x0000000100000f33 a.out`main + 35 at a.c:5, stop reason = step over
    #0: 0x0000000100000f33 a.out`main + 35 at a.c:5
   2    int main ()
   3    {
   4        float f = 33762616.0;
-> 5        printf ("%f\n", f);
   6    }
(lldb) p f
(float) $0 = 3.37626e+07
(lldb) type summ add -v -o "return '%f' % valobj.GetData().GetFloat(lldb.SBError(), 0)" float
(lldb) p f
(float) $1 = 33762616.000000
(lldb) 

Набор средств форматирования по умолчанию, предоставляемый lldb, не может этого сделать, но переход на Python дает вам большую гибкость.

person Jason Molenda    schedule 13.03.2013
comment
Спасибо, я не знал, что вы можете так использовать Python. Хорошая вещь! - person MikeyE; 18.11.2014