Is dtruss missing calls?

345 Views Asked by At

Problem

I'm trying to diagnose a problem starting up an application using JCEF on Mac and it seems like dtruss is missing system calls from its trace. For example the program always quits after failing to look up 'icudtl.dat', and prints out a log message like this:

[0309/151839:ERROR:icu_util.cc(144)] icudtl.dat not found in bundle

However only occasically do I see the corresponding write call in the dtruss trace. And I have never managed to capture it actually looking for 'icudtl.dat'. Is it possible for dtruss to miss calls? And if so how can I fix that?

Details

Running dtruss like this:

sudo dtruss -f ./program.sh 2> /tmp/trace.txt

In the trace I see the following:

[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

Then much later the write is actually captured:

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

But there is no reference to it trying to look up 'icudtl.dat' at all. Lots of other file IO operations are captured though.

0

There are 0 best solutions below