This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Sanitize gdbarch access on probe/SDT API


> I tried to use get_selected_frame whenever I could, and when I couldn't,
> I used get_current_regcache.

But what does "couldn't" mean?

Looking at the function that uses get_current_regcache:

On 12/05/2013 10:12 PM, Sergio Durigan Junior wrote:
> @@ -1461,6 +1466,8 @@ stap_get_probes (VEC (probe_p) **probesp, struct objfile *objfile)
>    bfd_vma base;
>    struct sdt_note *iter;
>    unsigned save_probesp_len = VEC_length (probe_p, *probesp);
> +  struct regcache *regcache = get_current_regcache ();
> +  struct gdbarch *gdbarch = get_regcache_arch (regcache);

AFAICS, stap_get_probes isn't called when evaluating a probe,
but instead when getting the list of probes out of an objfile.
Seems to me like this function is reachable even if the inferior
is not running yet.  Is that why you couldn't use
get_selected_frame here? (because there's no frame?)  If so,
using get_current_regcache is wrong.  If there's no thread at
all, then what does the regcache of the current thread mean?
It sounds like you just managed to use it becauese
get_current_regcache doesn't error out when inferior_ptid
is pointing nowhere.  As this is listing the probes in
the objfile, and not using the target's registers (afaics),
can you use the objfile's arch here?  With that out of the way,
would it work to pass the frame pointer down instead of the
gdbarch?

>    if (objfile->separate_debug_objfile_backlink != NULL)
>      {
> @@ -1486,7 +1493,7 @@ stap_get_probes (VEC (probe_p) **probesp, struct objfile *objfile)
>      {
>        /* We first have to handle all the information about the
>  	 probe which is present in the section.  */
> -      handle_stap_probe (objfile, iter, probesp, base);
> +      handle_stap_probe (objfile, iter, probesp, base, gdbarch);
>      }

-- 
Pedro Alves


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]