[PATCH v4] Add support for the readnever concept

Pedro Alves palves@redhat.com
Fri Dec 1 20:00:00 GMT 2017


On 12/01/2017 05:21 PM, Sergio Durigan Junior wrote:
> On Friday, December 01 2017, Tom Tromey wrote:
> 
>>>>>>> "Pedro" == Pedro Alves <palves@redhat.com> writes:
>>
>> Pedro> On 12/01/2017 04:35 AM, Sergio Durigan Junior wrote:
>>>>> If readnever_symbol_files is set, then it'll have been propagated to
>> objfile-> flags before we get here, no?
>>>>
>>>> Hm, I think so, yes.  I mean, assuming that objfile != NULL when we call
>>>> the readers, then yes; 
>>
>> Pedro> Certainly you can assume that.  A reader's job is to read
>> Pedro> in the passed in objfile.  The very first line of elf_symfile_read
>> Pedro> would immediately crash otherwise, for example.
>>
>> Perhaps an ATTRIBUTE_NONNULL is in order somewhere.
> 
> I thought about a gdb_assert, actually.  But yeah, I agree.  I'll push
> what Pedro has approved, and if he's OK with it, I'll prepare a patch
> with a gdb_assert.
> 

gdb_assert (objfile != NULL) sprinkled around in the readers would be
pointless IMO.  It's not like there's any real risk that you'd
be sometimes passing a NULL pointer down to the readers in some
corner cases.  That'd be pretty gross mistake.  The objfile is kind of
like a "this" pointer here:

static void
read_symbols (struct objfile *objfile, symfile_add_flags add_flags)
{
  (*objfile->sf->sym_read) (objfile, add_flags);
...

(obviously the above crashes with a NULL objfile.  And up the
call stack, there are many other places that'd crash first
before you even get here.)

Thanks,
Pedro Alves



More information about the Gdb-patches mailing list