xref issue #968 capturing stderr and looking for callstacks there has some issues:
buffering, app output interfering, impossible to use on Windows services,
etc.
so we're leaning toward a file-driven approach, using forensic files since
we already have support for those (on Windows).
we'll do it incrementally: get data somewhere (for now forensic files I
guess: so should -diagnostics be on by default in debug build? or it will
just clutter things up?), add priv lib data to forensics file ( issue #972 ), add
forensic files to linux ( issue #971 ), add a script to symbolize a callstack in a
forensics file (this issue), and maybe or maybe not have it automatically
invoked.
prob best is to just have a tool that symbolizes a callstack in a forensics
file, and have chrome scripts run it on all files in logdir post-run.
the hard part is making it automated for general DR users.
to automate: drrun looks for forensic file w/ proper pid and timestamp (to
rule out stale files) and symbolizes at end? but what about child
processes (think about browsers_tests).
for symbolizing: create a separate DR tools/symquery that duplicates
drmem's, or have drrun link w/ drsyms?
From bruen...@google.com on November 08, 2012 12:54:28
xref issue #968 capturing stderr and looking for callstacks there has some issues: buffering, app output interfering, impossible to use on Windows services, etc.
so we're leaning toward a file-driven approach, using forensic files since we already have support for those (on Windows).
we'll do it incrementally: get data somewhere (for now forensic files I guess: so should -diagnostics be on by default in debug build? or it will just clutter things up?), add priv lib data to forensics file ( issue #972 ), add forensic files to linux ( issue #971 ), add a script to symbolize a callstack in a forensics file (this issue), and maybe or maybe not have it automatically invoked.
prob best is to just have a tool that symbolizes a callstack in a forensics file, and have chrome scripts run it on all files in logdir post-run. the hard part is making it automated for general DR users.
to automate: drrun looks for forensic file w/ proper pid and timestamp (to rule out stale files) and symbolizes at end? but what about child processes (think about browsers_tests).
for symbolizing: create a separate DR tools/symquery that duplicates drmem's, or have drrun link w/ drsyms?
Original issue: http://code.google.com/p/dynamorio/issues/detail?id=973