diff options
Diffstat (limited to 'tools/gdb/gdb_chrome.py')
-rw-r--r-- | tools/gdb/gdb_chrome.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tools/gdb/gdb_chrome.py b/tools/gdb/gdb_chrome.py new file mode 100644 index 0000000..e548d08 --- /dev/null +++ b/tools/gdb/gdb_chrome.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# Copyright (c) 2011 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +"""GDB support for Chrome types. + +Add this to your gdb by amending your ~/.gdbinit as follows: + python + import sys + sys.path.insert(0, "/path/to/tools/gdb/") + import gdb_chrome + +This module relies on the WebKit gdb module already existing in +your Python path. +""" + +import gdb +import webkit + +class String16Printer(webkit.StringPrinter): + def to_string(self): + return webkit.ustring_to_string(self.val['_M_dataplus']['_M_p']) + + +def lookup_function(val): + if str(val.type) == 'string16': + return String16Printer(val) + return None + +gdb.pretty_printers.append(lookup_function) |