From: Luis Machado <lgustavo@codesourcery.com>
To: Yao Qi <qiyaoltc@gmail.com>
Cc: <gdb-patches@sourceware.org>
Subject: Re: [PATCH 2/6] Refactor disassembly code
Date: Wed, 18 Jan 2017 16:53:00 -0000 [thread overview]
Message-ID: <eb1bd1c3-4308-e4fb-f3e1-423ffd9c01f0@codesourcery.com> (raw)
In-Reply-To: <20170118163358.GO28060@E107787-LIN>
On 01/18/2017 10:33 AM, Yao Qi wrote:
> On 17-01-17 08:14:27, Luis Machado wrote:
>>>
>>> /* Like target_read_memory, but slightly different parameters. */
>>
>> Should we update these comments to a more useful version? "slightly
>> different parameters" doesn't explain much, as it is obvious they
>> are slightly different. Other uses below have the same problem.
>
> How about this?
>
> /* Wrapper of target_read_code. */
>
I think that's better than the previous one.
>>> +int
>>> +gdb_disassembler::print_insn (CORE_ADDR memaddr,
>>> + int *branch_delay_insns)
>>> +{
>>> + int length = gdbarch_print_insn (arch (), memaddr, &m_di);
>>> +
>>> + if (branch_delay_insns != NULL)
>>> + {
>>> + if (m_di.insn_info_valid)
>>> + *branch_delay_insns = m_di.branch_delay_insns;
>>> + else
>>> + *branch_delay_insns = 0;
>>> + }
>>> + return length;
>>
>> length doesn't seem to have a purpose other than being returned. So
>> just return gdbarch_print_insn (arch (), memaddr, &m_di)?
>>
>
> branch_delay_insns needs update after gdbarch_print_insn call.
>
Indeed. Missed the m_di.
>>> +
>>> + /* Prints the instruction INSN into UIOUT and returns the length of
>>> + the printed instruction in bytes. */
>>> + int pretty_print_insn (struct ui_out *uiout,
>>> + const struct disasm_insn *insn, int flags);
>>
>> Can this function return negative? If not, use unsigned?
>>
>
> I don't think pretty_print_insn can return negative, and we can change
> it to size_t. However, this patch is a code refactor. I want to avoid
> change like this in this patch. I can change 'int' to 'size_t' later.
>
Sounds good.
>>> +
>>> + /* Return the gdbarch of gdb_disassembler. */
>>> + struct gdbarch *arch ()
>>> + { return m_gdbarch; }
>>> +
>>> +protected:
>>> + gdb_disassembler (struct gdbarch *gdbarch, struct ui_file *file,
>>> + di_read_memory_ftype func);
>>> +
>>> + struct ui_file *stream ()
>>> + { return (struct ui_file *) m_di.stream; }
>>> +
>>> +private:
>>> + struct gdbarch *m_gdbarch;
>>> + struct disassemble_info m_di;
>>
>> Add comments explaining what m_gdbarch and m_di are used for and/or how?
>
> I don't know what kind of comments I can add for m_gdbarch. Something
> like "gdbarch of gdb_disassembler" looks useless. We've already had
I can still see value in describing it as a "Pointer to the target's
gdbarch". But feel free not to document it if you don't think it's worth it.
The documentation is likely not for us (experienced gdb developers), but
for people getting started on gdb's code.
> method arch(with comments) which returns m_gdbarch.
>
> I can think of the comments to m_di
>
> /* Pass it to opcodes disassembler and collect some outputs
> from opcodes disassembler. */
>
> struct disassemble_info m_di;
>
> What do you think?
>
I think something along the lines of:
/* Stores disassembler data. */
or
/* Stores data required for disassembling instructions. */
... is good enough, as trivial as it may seem.
next prev parent reply other threads:[~2017-01-18 16:53 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-10 12:26 [PATCH 0/8] Handle memory error on disassemble Yao Qi
2017-01-10 12:26 ` [PATCH 4/8] Return -1 on memory error in print_insn_msp430 Yao Qi
2017-01-11 21:54 ` Alan Modra
2017-01-12 9:43 ` Yao Qi
2017-01-10 12:26 ` [PATCH 5/8] Remove magic numbers in m68k-dis.c:print_insn_arg Yao Qi
2017-01-11 22:14 ` Alan Modra
2017-01-13 12:23 ` Yao Qi
2017-01-10 12:26 ` [PATCH 7/8] Disassembly unit test: memory error Yao Qi
2017-01-10 12:26 ` [PATCH 6/8] Return -1 on memory error in print_insn_m68k Yao Qi
2017-01-11 22:15 ` Alan Modra
2017-01-12 11:50 ` Yao Qi
2017-01-12 14:38 ` Alan Modra
2017-01-12 14:52 ` Yao Qi
2017-01-13 1:54 ` Alan Modra
2017-01-13 12:29 ` Yao Qi
2017-01-10 12:26 ` [PATCH 3/8] Disassembly unit test: disassemble one instruction Yao Qi
2017-01-11 21:15 ` Simon Marchi
2017-01-12 13:06 ` Pedro Alves
2017-01-12 17:03 ` Yao Qi
2017-01-12 17:43 ` Pedro Alves
2017-01-12 21:04 ` Yao Qi
2017-01-12 14:35 ` Pedro Alves
2017-01-12 15:15 ` Pedro Alves
2017-01-12 15:35 ` Yao Qi
2017-01-12 15:44 ` Pedro Alves
2017-01-12 16:06 ` Pedro Alves
2017-01-10 12:27 ` [PATCH 2/8] Call print_insn_mep in mep_gdb_print_insn Yao Qi
2017-01-11 20:50 ` Simon Marchi
2017-01-12 12:21 ` Yao Qi
2017-01-10 12:27 ` [PATCH 8/8] Don't throw exception in dis_asm_memory_error Yao Qi
2017-01-12 16:40 ` Pedro Alves
2017-01-12 21:09 ` Yao Qi
2017-01-10 12:27 ` [PATCH 1/8] Refactor disassembly code Yao Qi
2017-01-11 20:43 ` Simon Marchi
2017-01-12 12:19 ` Yao Qi
2017-01-12 12:36 ` Pedro Alves
2017-01-12 15:29 ` Simon Marchi
2017-01-16 10:03 ` [PATCH 0/6 v2] Handle memory error on disassemble Yao Qi
2017-01-16 10:03 ` [PATCH 2/6] Refactor disassembly code Yao Qi
2017-01-17 14:14 ` Luis Machado
2017-01-18 16:34 ` Yao Qi
2017-01-18 16:53 ` Luis Machado [this message]
2017-01-16 10:03 ` [PATCH 3/6] Call print_insn_mep in mep_gdb_print_insn Yao Qi
2017-01-17 14:19 ` Luis Machado
2017-01-24 10:08 ` Yao Qi
2017-01-24 13:41 ` Luis Machado
2017-01-16 10:03 ` [PATCH 6/6] Don't throw exception in dis_asm_memory_error Yao Qi
2017-01-17 14:42 ` Luis Machado
2017-01-18 14:54 ` Yao Qi
2017-01-18 14:58 ` Luis Machado
2017-01-16 10:03 ` [PATCH 4/6] Disassembly unit test: disassemble one instruction Yao Qi
2017-01-20 0:04 ` Pedro Alves
2017-01-24 15:23 ` Yao Qi
2017-02-02 16:46 ` Pedro Alves
2017-02-02 22:12 ` Yao Qi
2017-02-02 23:39 ` [pushed] Fix "maintenance selftest" printing stray instructions (Re: [PATCH 4/6] Disassembly unit test: disassemble one instruction) Pedro Alves
2017-01-16 10:03 ` [PATCH 5/6] Disassembly unit test: memory error Yao Qi
2017-01-17 14:38 ` Luis Machado
2017-01-24 15:33 ` Yao Qi
2017-01-20 0:08 ` Pedro Alves
2017-01-16 10:03 ` [PATCH 1/6] New function null_stream Yao Qi
2017-01-17 13:49 ` Luis Machado
2017-01-18 14:45 ` Yao Qi
2017-01-18 14:53 ` Luis Machado
2017-01-18 14:57 ` Simon Marchi
2017-01-18 15:02 ` Luis Machado
2017-01-18 15:18 ` Simon Marchi
2017-01-18 15:29 ` Luis Machado
2017-01-18 15:54 ` Simon Marchi
2017-01-18 16:36 ` Luis Machado
2017-01-25 8:38 ` [PATCH 0/6 v3] Handle memory error on disassembly Yao Qi
2017-01-25 8:38 ` [PATCH 2/6] Refactor disassembly code Yao Qi
2017-01-25 8:38 ` [PATCH 5/6] Disassembly unit test: memory error Yao Qi
2017-01-25 8:38 ` [PATCH 1/6] New function null_stream Yao Qi
2017-01-25 8:38 ` [PATCH 6/6] Don't throw exception in dis_asm_memory_error Yao Qi
2017-01-25 8:38 ` [PATCH 3/6] Call print_insn_mep in mep_gdb_print_insn Yao Qi
2017-01-25 8:38 ` [PATCH 4/6] Disassembly unit test: disassemble one instruction Yao Qi
2017-01-26 11:34 ` [PATCH 0/6 v3] Handle memory error on disassembly Pedro Alves
2017-01-26 15:00 ` Yao Qi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=eb1bd1c3-4308-e4fb-f3e1-423ffd9c01f0@codesourcery.com \
--to=lgustavo@codesourcery.com \
--cc=gdb-patches@sourceware.org \
--cc=qiyaoltc@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox