From: Tom Tromey <tom@tromey.com>
To: Aaron Merey <amerey@redhat.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [RFC PATCH] Support debuginfo and source file fetching via debuginfo server
Date: Fri, 13 Sep 2019 21:03:00 -0000 [thread overview]
Message-ID: <8736gz3o3t.fsf@tromey.com> (raw)
In-Reply-To: <20190820202809.25367-1-amerey@redhat.com> (Aaron Merey's message of "Tue, 20 Aug 2019 16:28:09 -0400")
>>>>> "Aaron" == Aaron Merey <amerey@redhat.com> writes:
Aaron> Debuginfo server is a lightweight web service that indexes debuginfo
Aaron> and source files by build-id and serves them over HTTP.
Thank you for the patch.
I think the idea is fine for gdb, so all that's left is some nits in the
patch.
Aaron> +#if HAVE_LIBDBGSERVER
Aaron> + else
Aaron> + {
Aaron> + const struct bfd_build_id *build_id;
Aaron> + char *debugfile_path;
Aaron> +
Aaron> + build_id = build_id_bfd_get (objfile->obfd);
Aaron> + int fd = dbgserver_find_debuginfo (build_id->data,
Aaron> + build_id->size,
Aaron> + &debugfile_path);
I was wondering what the fd represents. If it's open on the file, can
we simply reuse it rather than trying to reopen the file?
Instead of "int", using scoped_fd would be better.
Aaron> + symbol_file_add_separate(debug_bfd.get (), debugfile_path,
GNU style is a space before parens - there are a few instances.
Aaron> + free(debugfile_path);
xfree instead of free.
Aaron> +#if HAVE_LIBDBGSERVER
Aaron> + if (fd.get() < 0)
Aaron> + {
Aaron> + if (SYMTAB_COMPUNIT(s) != NULL)
Aaron> + {
Aaron> + const struct bfd_build_id *build_id;
Aaron> + const objfile *ofp = COMPUNIT_OBJFILE (SYMTAB_COMPUNIT (s));
Aaron> +
Aaron> + /* prefix the comp_dir to relative file names */
Aaron> + const char* dirname = SYMTAB_DIRNAME (s);
Aaron> + int suffname_len = strlen(dirname) + strlen(s->filename) + 2;
Aaron> + char *suffname = (char *) alloca(suffname_len);
I think it's better to just use std::string for this kind of thing.
Probably this area will need some refactoring since other patches have
touched this.
Aaron> + char *name_in_cache;
Aaron> + int dbgsrv_rc = dbgserver_find_source (build_id->data,
Aaron> + build_id->size,
Aaron> + suffname,
Aaron> + &name_in_cache);
Aaron> + if (dbgsrv_rc >= 0)
Aaron> + {
Aaron> + fullname.reset (xstrdup(name_in_cache));
Aaron> + free (name_in_cache);
It seems like you could just use
fullname.reset (name_in_cache);
here.
Aaron> + }
Aaron> + else if (dbgsrv_rc == -ENOSYS)
Aaron> + {
Aaron> + /* -ENOSYS indicates that libdbgserver could not find
Aaron> + any dbgserver URLs to query due to $DBGSERVER_URLS
Aaron> + not being defined. Replace -ENOSYS with -ENOENT so
Aaron> + that users who have not configured dbgserver see the
Aaron> + usual error message when a source file cannot be found. */
Aaron> + dbgsrv_rc = -ENOENT;
This assignment doesn't seem useful here.
Tom
next prev parent reply other threads:[~2019-09-13 21:03 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-20 20:28 Aaron Merey
2019-09-13 21:03 ` Tom Tromey [this message]
2019-09-22 3:53 ` Christian Biesinger via gdb-patches
2019-10-09 14:55 ` Tom Tromey
2019-10-28 20:34 ` Aaron Merey
2019-11-01 19:31 ` Tom Tromey
2019-11-01 21:03 ` Aaron Merey
2019-11-02 14:05 ` Frank Ch. Eigler
2019-11-04 15:03 ` Frank Ch. Eigler
2019-11-04 15:46 ` Simon Marchi
2019-11-04 16:26 ` Frank Ch. Eigler
2019-11-05 1:59 ` Aaron Merey
2019-11-05 5:27 ` Simon Marchi
2019-11-05 10:25 ` Frank Ch. Eigler
2019-11-05 15:19 ` Simon Marchi
2019-11-05 15:50 ` Frank Ch. Eigler
2019-11-05 5:35 ` Simon Marchi
2019-11-07 23:24 ` Aaron Merey
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=8736gz3o3t.fsf@tromey.com \
--to=tom@tromey.com \
--cc=amerey@redhat.com \
--cc=gdb-patches@sourceware.org \
/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