Dtruss пропускает звонки?
проблема
Я пытаюсь диагностировать проблему при запуске приложения с использованием JCEF на Mac, и кажется, что dtruss
отсутствует системные вызовы от его следа. Например, программа всегда закрывается после сбоя при поиске 'icudtl.dat' и выводит сообщение журнала, например так:
[0309/151839:ERROR:icu_util.cc(144)] icudtl.dat not found in bundle
Однако только иногда я вижу соответствующий вызов записи в трассировке dtruss. И мне так и не удалось запечатлеть его в поисках icudtl.dat. Может ли dtruss пропустить звонки? И если так, как я могу это исправить?
подробности
Запуск dtruss как это:
sudo dtruss -f ./program.sh 2> /tmp/trace.txt
В следе я вижу следующее:
[0309/151839:ERROR:icu_util.cc(144)] icudtl.dat not found in bundle
[0309/151839:FATAL:content_main_runner.cc(721)] Check failed: base::i18n::InitializeICU().
dtrace: 1346 dynamic variable drops with non-empty dirty list
1403/0xd0ba6: psynch_cvwait(0x7FBB82435768, 0x14990100149A00, 0x149900) = 0 0
Тогда намного позже запись фактически захвачена:
1403/0xd0b93: write_nocancel(0x2, "[0309/151839:ERROR:icu_util.cc(144)] icudtl.dat not found in bundle\n\0", 0x44) = 68 0
1403/0xd0b93: open_nocancel("\0", 0x209, 0x1B6) = -1 Err#2
1403/0xd0b93: write_nocancel(0x2, "[0309/151839:FATAL:content_main_runner.cc(721)] Check failed: base::i18n::InitializeICU(). \n\0", 0x5C) = 9
Но нет никаких ссылок на то, что он пытается найти "icudtl.dat" вообще. Многие другие операции ввода-вывода файла фиксируются, хотя.