diff options
author | Jan Vrany <jan.vrany@labware.com> | 2022-04-07 10:06:52 +0200 |
---|---|---|
committer | Jan Vrany <jan.vrany@labware.com> | 2023-04-21 16:30:11 +0100 |
commit | fe9dd76b752c981679cb0d330585e19cffd13e0d (patch) | |
tree | ae2c2ce67d5fbc1c1a8f159f869bf5ad71232fc2 /gdb/testsuite/gdb.python/py-jit.py | |
parent | d25a69ad17d48913cdf13363403450086f72c7bf (diff) | |
download | binutils-gdb-users/jv/wip/feature-py-jit-api.tar.gz |
gdb/python: add py-jit.expusers/jv/wip/feature-py-jit-api
Diffstat (limited to 'gdb/testsuite/gdb.python/py-jit.py')
-rw-r--r-- | gdb/testsuite/gdb.python/py-jit.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.python/py-jit.py b/gdb/testsuite/gdb.python/py-jit.py new file mode 100644 index 00000000000..c894c4a5f68 --- /dev/null +++ b/gdb/testsuite/gdb.python/py-jit.py @@ -0,0 +1,46 @@ +# Copyright (C) 2022-2022 Free Software Foundation, Inc. +# +# This file is part of GDB. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +import gdb + +objfile = None +symtab = None + +class JITRegisterCode(gdb.Breakpoint): + def stop(self): + + global objfile + global symtab + + frame = gdb.newest_frame() + name = frame.read_var('name').string() + code = int(frame.read_var('code')) + size = int(frame.read_var('size')) + + objfile = gdb.Objfile(name) + symtab = gdb.Symtab(objfile, "py-jit.c") + symtab.add_block(name, code, code + size) + symtab.set_linetable([ + gdb.LineTableEntry(29, code, True), + gdb.LineTableEntry(30, code+3, True), + gdb.LineTableEntry(31, code+6, True) + ]) + + return False # Continue execution + + +JITRegisterCode("jit_register_code", internal=True) |