[DTrace-devel] [PATCH 03/17] pid: drop dpp_stret

Eugene Loh eugene.loh at oracle.com
Wed Aug 31 19:56:48 UTC 2022


Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
(but it's unfamiliar territory for me)

On 8/10/22 18:06, Nick Alcock via DTrace-devel wrote:
> These structure-return thunks in the Solaris libc have never existed on
> Linux, nor anything like them, so these calls will always fail.
>
> Signed-off-by: Nick Alcock <nick.alcock at oracle.com>
> ---
>   libdtrace/dt_pid.c | 33 +--------------------------------
>   1 file changed, 1 insertion(+), 32 deletions(-)
>
> diff --git a/libdtrace/dt_pid.c b/libdtrace/dt_pid.c
> index fc338e0fd173..4b143966ff3c 100644
> --- a/libdtrace/dt_pid.c
> +++ b/libdtrace/dt_pid.c
> @@ -41,7 +41,6 @@ typedef struct dt_pid_probe {
>   	size_t dpp_size;
>   	Lmid_t dpp_lmid;
>   	uint_t dpp_nmatches;
> -	uint64_t dpp_stret[4];
>   	GElf_Sym dpp_last;
>   	uint_t dpp_last_taken;
>   } dt_pid_probe_t;
> @@ -313,7 +312,7 @@ dt_pid_per_mod(void *arg, const prmap_t *pmp, const char *obj)
>   	/*
>   	 * Note: if an execve() happens in the victim after this point, the
>   	 * following lookups will (unavoidably) fail if the lmid in the previous
> -	 * executable is not valid iun the new one.
> +	 * executable is not valid in the new one.
>   	 */
>   
>   	if ((pp->dpp_obj = strrchr(obj, '/')) == NULL)
> @@ -321,36 +320,6 @@ dt_pid_per_mod(void *arg, const prmap_t *pmp, const char *obj)
>   	else
>   		pp->dpp_obj++;
>   
> -	if (dt_Pxlookup_by_name(pp->dpp_dtp, pid, pp->dpp_lmid, obj, ".stret1",
> -				&sym, NULL) == 0)
> -		pp->dpp_stret[0] = sym.st_value;
> -	else
> -		pp->dpp_stret[0] = 0;
> -
> -	if (dt_Pxlookup_by_name(pp->dpp_dtp, pid, pp->dpp_lmid, obj, ".stret2",
> -				&sym, NULL) == 0)
> -		pp->dpp_stret[1] = sym.st_value;
> -	else
> -		pp->dpp_stret[1] = 0;
> -
> -	if (dt_Pxlookup_by_name(pp->dpp_dtp, pid, pp->dpp_lmid, obj, ".stret4",
> -					&sym, NULL) == 0)
> -		pp->dpp_stret[2] = sym.st_value;
> -	else
> -		pp->dpp_stret[2] = 0;
> -
> -	if (dt_Pxlookup_by_name(pp->dpp_dtp, pid, pp->dpp_lmid, obj, ".stret8",
> -				&sym, NULL) == 0)
> -		pp->dpp_stret[3] = sym.st_value;
> -	else
> -		pp->dpp_stret[3] = 0;
> -
> -	dt_dprintf("%s stret %llx %llx %llx %llx\n", obj,
> -		   (unsigned long long)pp->dpp_stret[0],
> -		   (unsigned long long)pp->dpp_stret[1],
> -		   (unsigned long long)pp->dpp_stret[2],
> -		   (unsigned long long)pp->dpp_stret[3]);
> -
>   	/*
>   	 * If pp->dpp_func contains any globbing meta-characters, we need
>   	 * to iterate over the symbol table and compare each function name



More information about the DTrace-devel mailing list