Commit 3ab7c353 authored by Christian Biesinger's avatar Christian Biesinger Committed by Commit Bot

Only run git once in gdbinit

Running git is fairly slow. Removing this call improves gdb attach
time from 34 sec to 27 sec (20.5%). It is also completely
unnecessary, because we only need to load pretty printers once.

R=thomasanderson@chromium.org

Change-Id: I47de8cf198040d46dfdcaa22cc6c3f7d661d28ae
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1863069
Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
Auto-Submit: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: default avatarThomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#705967}
parent af74d157
...@@ -9,7 +9,7 @@ import subprocess ...@@ -9,7 +9,7 @@ import subprocess
import sys import sys
compile_dirs = set() compile_dirs = set()
src_dir = None
def get_current_debug_file_directories(): def get_current_debug_file_directories():
dir = gdb.execute("show debug-file-directory", to_string=True) dir = gdb.execute("show debug-file-directory", to_string=True)
...@@ -47,6 +47,25 @@ def load_gdb_chrome(src_dir): ...@@ -47,6 +47,25 @@ def load_gdb_chrome(src_dir):
gdb.execute('source %s' % os.path.join(tools_gdb, 'viewg.gdb')) gdb.execute('source %s' % os.path.join(tools_gdb, 'viewg.gdb'))
def set_src_dir(compile_dir):
global src_dir
git = subprocess.Popen(
['git', '-C', compile_dir, 'rev-parse', '--show-toplevel'],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
src_dir, _ = git.communicate()
if git.returncode:
return
if isinstance(src_dir, str):
src_dir = src_dir.rstrip()
else:
src_dir = src_dir.decode('utf-8').rstrip()
load_libcxx_pretty_printers(src_dir)
load_gdb_chrome(src_dir)
def newobj_handler(event): def newobj_handler(event):
global compile_dirs global compile_dirs
compile_dir = os.path.dirname(event.new_objfile.filename) compile_dir = os.path.dirname(event.new_objfile.filename)
...@@ -64,21 +83,9 @@ def newobj_handler(event): ...@@ -64,21 +83,9 @@ def newobj_handler(event):
# https://crbug.com/603286#c35 # https://crbug.com/603286#c35
add_debug_file_directory(compile_dir) add_debug_file_directory(compile_dir)
git = subprocess.Popen( global src_dir
['git', '-C', compile_dir, 'rev-parse', '--show-toplevel'], if not src_dir:
stdout=subprocess.PIPE, set_src_dir(compile_dir)
stderr=subprocess.PIPE)
src_dir, _ = git.communicate()
if git.returncode:
return
if isinstance(src_dir, str):
src_dir = src_dir.rstrip()
else:
src_dir = src_dir.decode('utf-8').rstrip()
load_libcxx_pretty_printers(src_dir)
load_gdb_chrome(src_dir)
# Event hook for newly loaded objfiles. # Event hook for newly loaded objfiles.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment