| Index: tools/telemetry/telemetry/core/backends/chrome/desktop_browser_backend.py
|
| diff --git a/tools/telemetry/telemetry/core/backends/chrome/desktop_browser_backend.py b/tools/telemetry/telemetry/core/backends/chrome/desktop_browser_backend.py
|
| index 4982261b16f051bc8a6e316f59e982df56fbaa06..154ae102a07c7b78b764e648cafc610e7a6d5921 100644
|
| --- a/tools/telemetry/telemetry/core/backends/chrome/desktop_browser_backend.py
|
| +++ b/tools/telemetry/telemetry/core/backends/chrome/desktop_browser_backend.py
|
| @@ -8,6 +8,7 @@ import heapq
|
| import logging
|
| import os
|
| import os.path
|
| +import re
|
| import shutil
|
| import subprocess as subprocess
|
| import sys
|
| @@ -264,7 +265,13 @@ class DesktopBrowserBackend(chrome_browser_backend.ChromeBrowserBackend):
|
| return None
|
| output = subprocess.check_output([cdb, '-y', self._browser_directory,
|
| '-c', '.ecxr;k30;q', '-z', minidump])
|
| - stack_start = output.find('ChildEBP')
|
| + # cdb output can start the stack with "ChildEBP", "Child-SP", and possibly
|
| + # other things we haven't seen yet. If we can't find the start of the
|
| + # stack, include output from the beginning.
|
| + stack_start = 0
|
| + stack_start_match = re.search("^Child(?:EBP|-SP)", output, re.MULTILINE)
|
| + if stack_start_match:
|
| + stack_start = stack_start_match.start()
|
| stack_end = output.find('quit:')
|
| return output[stack_start:stack_end]
|
|
|
|
|