From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 49396 invoked by alias); 20 Jan 2020 04:28:17 -0000 Mailing-List: contact gdb-testers-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-testers-owner@sourceware.org Received: (qmail 49387 invoked by uid 89); 20 Jan 2020 04:28:17 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-15.1 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy= X-HELO: kwanyin.sergiodj.net Received: from kwanyin.sergiodj.net (HELO kwanyin.sergiodj.net) (158.69.185.54) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 20 Jan 2020 04:28:15 +0000 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [binutils-gdb] Call disassemble_free_target in gdb From: gdb-buildbot@sergiodj.net To: gdb-testers@sourceware.org Message-Id: <4d89c1c79fa53ff2c4e9574148b59d83c21db6d2@gdb-build> Date: Mon, 20 Jan 2020 04:56:00 -0000 X-SW-Source: 2020-q1/txt/msg01960.txt *** TEST RESULTS FOR COMMIT 4d89c1c79fa53ff2c4e9574148b59d83c21db6d2 *** commit 4d89c1c79fa53ff2c4e9574148b59d83c21db6d2 Author: Tom Tromey AuthorDate: Sat Jan 11 11:40:45 2020 -0700 Commit: Tom Tromey CommitDate: Sun Jan 19 13:24:32 2020 -0700 Call disassemble_free_target in gdb Commit 20135676fc4c3912297c313b3e0d3cbd6cc402e3 ("PR24960, Memory leak from disassembler") added "disassemble_free_target" to opcodes. This is used to free target-specific data when finished with a disassembler. This patch changes gdb to call this function where needed. gdb/ChangeLog 2020-01-19 Tom Tromey * disasm.c (~gdb_disassembler): New destructor. (gdb_buffered_insn_length): Call disassemble_free_target. * disasm.h (class gdb_disassembler): Declare destructor. Use DISABLE_COPY_AND_ASSIGN. Change-Id: I245ba5b7dec5e5d9f29cd21832c6e2b4fecef047 diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0fd5dffc82..93a125b3e7 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2020-01-19 Tom Tromey + + * disasm.c (~gdb_disassembler): New destructor. + (gdb_buffered_insn_length): Call disassemble_free_target. + * disasm.h (class gdb_disassembler): Declare destructor. Use + DISABLE_COPY_AND_ASSIGN. + 2020-01-19 Tom Tromey * dwarf2read.c (abbrev_table_up): Move typedef earlier. diff --git a/gdb/disasm.c b/gdb/disasm.c index 7dfbd2fb47..e45c840068 100644 --- a/gdb/disasm.c +++ b/gdb/disasm.c @@ -781,6 +781,11 @@ gdb_disassembler::gdb_disassembler (struct gdbarch *gdbarch, disassemble_init_for_target (&m_di); } +gdb_disassembler::~gdb_disassembler () +{ + disassemble_free_target (&m_di); +} + int gdb_disassembler::print_insn (CORE_ADDR memaddr, int *branch_delay_insns) @@ -908,7 +913,9 @@ gdb_buffered_insn_length (struct gdbarch *gdbarch, gdb_buffered_insn_length_init_dis (gdbarch, &di, insn, max_len, addr, &disassembler_options_holder); - return gdbarch_print_insn (gdbarch, addr, &di); + int result = gdbarch_print_insn (gdbarch, addr, &di); + disassemble_free_target (&di); + return result; } char * diff --git a/gdb/disasm.h b/gdb/disasm.h index 0bda4df58c..b0f535eaa2 100644 --- a/gdb/disasm.h +++ b/gdb/disasm.h @@ -47,6 +47,10 @@ public: : gdb_disassembler (gdbarch, file, dis_asm_read_memory) {} + ~gdb_disassembler (); + + DISABLE_COPY_AND_ASSIGN (gdb_disassembler); + int print_insn (CORE_ADDR memaddr, int *branch_delay_insns = NULL); /* Return the gdbarch of gdb_disassembler. */