Відлагоджувальна інформація
Ця сторінка описуєDebug Information, яку ви можете надіслати розробникам, коли надсилаєте звіт про помилку.
Зміст
Це просунута штука
Будь ласка, не почувайтеся зобов'язаними надавати цю інформацію, якщо ви не:
- Розробник/програміст і уявляєте, що цей матеріал означає;
- Розробник чи хтось із команди QA недвозначно попросив вас надати цю інформацію;
- Ви один із членів команди QA.
Налагоджувальна інформація в операційних системах
Ці інструкції є досить конкретними для кожної операційної системи. Тому вони зведені в розділи на цій сторінці.
Для того, щоб отримати журнали налагодження, ви повинні спочатку встановити пакети з символами налагодження. Пакет з налагоджувальними символами для Debian, Ubuntu або заснованих на них дистрибутивів зазвичай називається libreoffice-dbg . В інших дистрибутивах це libreoffice*-debuginfo. Пам'ятайте, що ці пакети можуть потребувати більше 2,5 Гб вільного місця для встановлення.
GNU/Linux: Як отримати журнал зворотного трасування
Зворотне трасування корисне для аналізу причин, коли програма зависає або аварійно завершується. Зворотне трасування може бути запущене без пакетів з символами налагодження, правда це не буде дуже корисним, але потенційно може забезпечити хоч якоюсь інформацією. Використовуйте такі кроки:
- запустіть емулятор терміналу;
- запустіть LibreOffice: soffice --backtrace;
- повторіть помилку, що призводить до зависання або аварійного завершення. Якщо це зависання, вам необхідно змусити програму аварійно закритися, для цього відкрийте іншу консоль і введіть pkill -15 soffice.bin або, як альтернатива, введіть xkill і клацнітьвікно, що зависло LibreOffice;
- У тій же директорії, звідки ви запустили LibreOffice, буде створено файл gdbtrace.log;
- архівуйте цей файл у.tar.gzі прикріпіть до звіту про помилку.
GNU/Linux: Як отримати журнал strace
straceвідслідковує системні виклики, які виконує процес. Якщо є деякі проблеми пов'язані з файловим введенням/виводом,straceможе бути чудовим способом виявити саме те, що відбувається на рівні операційної системи. Це також швидкий спосіб побачити завдання, які продовжують виконуватись та/або зависли, та знаходити інформацію про систему, на якій виконується LibreOffice.
- запустіть термінал;
- виконайте команду soffice --strace;
- відтворіть проблему;
- архівуйте файл журналу вstrace.log.tar.gzі прикріпіть до звіту про помилку
- та прикріпіть до звіту про помилку.
GNU/Linux: Як отримати журнал Valgrind
Журнал Valgrind має неоціненну ціну для відстеження незрозумілих помилок пошкодження пам'яті, які надзвичайно важко знайти іншими методами. Це досягається шляхом емуляції процесора. Невеликий недолік цього способу є те, що код працює приблизно у вісімдесят (80x) разів повільніше, і вам це буде помітно. Плюсом є те, що він показує нам проблеми, які не доступні для пошуку у будь-якій іншій формі. Зроблений трек часто показує проблему таким чином, що її досить легко виправити розробнику: ваше терпіння цінується. Valgrind може давати помилкові спрацьовування.
- встановіть пакетvalgrind;
- запустіть термінал;
- soffice --valgrind >& /tmp/valgrind.log;
- Будьте терплячі. відтворіть проблему;
- архівуйте та прикріпітьvalgrind.logдо звіту про помилку.
Якщо ви хочете передати Valgrind додаткові параметри, ви можете скористатися змінною оточення VALGRIND_OPTS .
GNU/Linux: Як отримати журнал кеш-пам'яті процесора
Емулятор кеш-пам'яті процесора може швидко вказати на проблеми з продуктивністю. Для цього використовуєтьсяcallgrind, який дозволяє моделювати процесор, і що більш важливо, здатний знаходити неефективні шматки коду, а також забезпечити візуалізацію (за допомогоюKcachegrind) ієрархічної структури у вигляді гістограми, що показує, де витрачається час у коді.
- встановіть пакет valgrind
- запустіть термінал
- unset MALLOC_CHECK_
- unset MALLOC_PERTURB_
- unset G_SLICE # ці три кроки дають нам низьку продуктивність через незвичайні розподіли пам'яті
- export SAL_DISABLE_FLOATGRAB=1 # якщо ми зробимо, наскільки я маю на увазі, коли схоплюйте myš
- export OOO_DISABLE_RECOVERY=1 # turns off recovery dialog which can be a pain
- valgrind --tool=callgrind --simulate-cache=yes --dump-instr=yes ./soffice.bin --splash-pipe=0
Це працюватиме приблизно у 150 разів повільніше, ніж нормальний запуск. Якщо ви хочете припинити виконання за допомогою комбінації Ctrl+C з консолі, натисніть лише один раз. На виході ви отримаєте великий файл, який називатиметься callgrind.out.12345 (де 12345 - це PID процесу). Архівуйте цей файл і завантажте кудись для розробників. Або, якщо ви цікавитеся незвичайними картинками, завантажте його вKcachegrindі насолоджуйтесь. :)
Windows: Як зробити зворотне трасування
macOS: Як отримати налагоджувальну інформацію
Відлагоджувальна інформаціякорисна для аналізу причини, чому програма аварійно завершує роботу або зависає. На macOS можна отримати налагоджувальну інформацію дуже просто, без встановлення додаткового програмного забезпечення. Ця інформація включає просте трасування стека, яке пропускає повні символи, але все одно може бути дуже корисним.
Точні дії залежать від вашої версії macOS та установки, але загалом ви зможете отримати налагоджувальну інформацію таким чином:
Примітка: Залежно від конфігурації системи та налаштувань користувача, ви можете не отримати запит на надсилання звіту до Apple. Ви, можливо, повинні бути зареєстровані як користувач з правами адміністратора, щоб побачити ці діалоги.