mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-06 12:09:26 +08:00
a13af434cf
We currently have one FAIL while running "make check-perf": PerfTest::assemble, run ... python Disassemble().run() Traceback (most recent call last): File "<string>", line 1, in <module> File "/home/pedro/rocm/gdb/src/gdb/testsuite/gdb.perf/lib/perftest/perftest.py", line 64, in run self.warm_up() File "<string>", line 25, in warm_up gdb.error: No symbol "ada_evaluate_subexp" in current context. Error while executing Python code. (gdb) FAIL: gdb.perf/disassemble.exp: python Disassemble().run() ... The gdb.perf/disassemble.exp testcase debugs GDB with itself, runs to main, and then disassembles a few GDB functions. The problem is that most(!) functions it is trying to disassemble are now gone... This commit fixes the issue by simply picking some other functions to disassemble. It would perhaps be better to come up with some test program to disassemble, one that would stay the same throughout the years, instead of disassembling GDB itself. I don't know why that wasn't done to begin with. I'll have to leave that for another rainy day, though. gdb/testsuite/ yyyy-mm-dd Pedro Alves <pedro@palves.net> * gdb.perf/disassemble.py (Disassemble::warm_up): Disassemble evaluate_subexp_do_call instead of ada_evaluate_subexp. (Disassemble::warm_up): Disassemble "captured_main", "run_inferior_call" and "update_global_location_list" instead of "evaluate_subexp_standard" and "c_parse_internal". Change-Id: I89d1cca89ce2e495dea5096e439685739cc0d3df
44 lines
1.6 KiB
Python
44 lines
1.6 KiB
Python
# Copyright (C) 2013-2021 Free Software Foundation, Inc.
|
|
|
|
# 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/>.
|
|
|
|
from perftest import perftest
|
|
|
|
|
|
class Disassemble(perftest.TestCaseWithBasicMeasurements):
|
|
def __init__(self):
|
|
super(Disassemble, self).__init__("disassemble")
|
|
|
|
def warm_up(self):
|
|
do_test_command = "disassemble evaluate_subexp_do_call"
|
|
gdb.execute(do_test_command, False, True)
|
|
|
|
def _do_test(self, c):
|
|
for func in [
|
|
"captured_main",
|
|
"handle_inferior_event",
|
|
"run_inferior_call",
|
|
"update_global_location_list",
|
|
]:
|
|
do_test_command = "disassemble %s" % func
|
|
for _ in range(c + 1):
|
|
gdb.execute(do_test_command, False, True)
|
|
|
|
def execute_test(self):
|
|
for i in range(3):
|
|
# Flush code cache.
|
|
gdb.execute("set code-cache off")
|
|
gdb.execute("set code-cache on")
|
|
self.measure.measure(lambda: self._do_test(i), i)
|