我正在尝试诊断在Mac上使用JCEF启动应用程序的问题,似乎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'。但是捕获了许多其他文件IO操作。