0

问题

我正在尝试诊断在 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 操作。

4

0 回答 0