Chromium Code Reviews| Index: tools/testing/dart/test_runner.dart |
| diff --git a/tools/testing/dart/test_runner.dart b/tools/testing/dart/test_runner.dart |
| index 132d0c6d7f3d6ffc5d84b467a290b11ff8dcbc9d..0f55b0ad154ec116357302bfb856e28bf1958a22 100644 |
| --- a/tools/testing/dart/test_runner.dart |
| +++ b/tools/testing/dart/test_runner.dart |
| @@ -1854,9 +1854,19 @@ class RunningProcess { |
| void timeoutHandler() { |
| timedOut = true; |
| if (process != null) { |
| - if (!process.kill()) { |
| - DebugLogger.error("Unable to kill ${process.pid}"); |
| - } |
| + io.Process.run('gdb', |
|
rmacnak
2016/09/07 19:33:47
Only attempt to use gdb on Linux.
Florian Schneider
2016/09/07 21:02:58
Done.
|
| + ['--pid=${process.pid}', |
| + '--eval-command=thread apply all bt', |
| + '--eval-command=quit']) |
| + .then((result) { |
| + io.stdout.write(result.stdout); |
| + io.stderr.write(result.stderr); |
| + }) |
|
siva
2016/09/07 19:55:20
Do we also need a catchError handler here to print
Florian Schneider
2016/09/07 21:02:58
Yes. Added printing. Also, I should only invoke gd
Bill Hesse
2016/09/08 14:58:01
I would just run "which gdb" in a subprocess, and
|
| + .whenComplete(() { |
| + if (!process.kill()) { |
| + DebugLogger.error("Unable to kill ${process.pid}"); |
| + } |
| + }); |
| } |
| } |