https://bugs.webkit.org/show_bug.cgi?id=138564
Reviewed by Carlos Garcia Campos.
* Scripts/webkitpy/port/gtk.py:
(GtkPort._get_crash_log): Match the process name reported by the
driver with the GTK port WebProcess executable filename.
* Scripts/webkitpy/port/linux_get_crash_log.py:
(GDBCrashLogGenerator._get_gdb_output): Invoke gdb for the crashed
program.
(GDBCrashLogGenerator.generate_crash_log): Use %E in the core
pattern to workaround the 16 characters size limit of %e.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175867
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2014-11-10 Philippe Normand <pnormand@igalia.com>
+
+ [GTK] fix up the GDB backtrace report tool
+ https://bugs.webkit.org/show_bug.cgi?id=138564
+
+ Reviewed by Carlos Garcia Campos.
+
+ * Scripts/webkitpy/port/gtk.py:
+ (GtkPort._get_crash_log): Match the process name reported by the
+ driver with the GTK port WebProcess executable filename.
+ * Scripts/webkitpy/port/linux_get_crash_log.py:
+ (GDBCrashLogGenerator._get_gdb_output): Invoke gdb for the crashed
+ program.
+ (GDBCrashLogGenerator.generate_crash_log): Use %E in the core
+ pattern to workaround the 16 characters size limit of %e.
+
2014-11-10 Conrad Shultz <conrad_shultz@apple.com>
Unreviewed, moved myself to the list of committers.
return super(GtkPort, self).check_sys_deps(needs_http) and self._driver_class().check_driver(self)
def _get_crash_log(self, name, pid, stdout, stderr, newer_than):
+ name = "WebKitWebProcess" if name == "WebProcess" else name
return GDBCrashLogGenerator(name, pid, newer_than, self._filesystem, self._path_to_driver).generate_crash_log(stdout, stderr)
def test_expectations_file_position(self):
self._path_to_driver = path_to_driver
def _get_gdb_output(self, coredump_path):
- cmd = ['gdb', '-ex', 'thread apply all bt 1024', '--batch', str(self._path_to_driver()), coredump_path]
+ process_name = os.path.join(os.path.dirname(str(self._path_to_driver())), self.name)
+ cmd = ['gdb', '-ex', 'thread apply all bt 1024', '--batch', process_name, coredump_path]
proc = subprocess.Popen(cmd, stdin=None, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = proc.communicate()
errors = [stderr_line.strip().decode('utf8', 'ignore') for stderr_line in stderr.splitlines()]
if not crash_log:
if not log_directory:
log_directory = "/path/to/coredumps"
- core_pattern = os.path.join(log_directory, "core-pid_%p-_-process_%e")
+ core_pattern = os.path.join(log_directory, "core-pid_%p-_-process_%E")
crash_log = """\
Coredump %(expected_crash_dump_filename)s not found. To enable crash logs: