[DTrace-devel] [PATCH 3/8] rawfbt: perform lookup on true symbol names

Eugene Loh eugene.loh at oracle.com
Mon Mar 10 22:03:03 UTC 2025


Reviewed-by: Eugene Loh <eugene.loh at oracle.com>

On 3/7/25 16:34, Kris Van Hees wrote:
> When encountering a <sym>.<suffix> symbol, a symbol lookup was done for
> <sym> instead of <sym>.<suffix> under the assumption that names with .
> in them were not listed in kallsyms.  But that is not true.
>
> Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
> ---
>   libdtrace/dt_prov_rawfbt.c | 18 ------------------
>   1 file changed, 18 deletions(-)
>
> diff --git a/libdtrace/dt_prov_rawfbt.c b/libdtrace/dt_prov_rawfbt.c
> index 4c8e8130..62f2f4f0 100644
> --- a/libdtrace/dt_prov_rawfbt.c
> +++ b/libdtrace/dt_prov_rawfbt.c
> @@ -122,27 +122,9 @@ static int populate(dtrace_hdl_t *dtp)
>   		 * try to determine the module name.
>   		 */
>   		if (!p) {
> -			char	*q;
> -
> -			/*
> -			 * For synthetic symbol names (those containing '.'),
> -			 * we need to use the base name (before the '.') for
> -			 * module name lookup, because the synthetic forms are
> -			 * not recorded in kallsyms information.
> -			 *
> -			 * We replace the first '.' with a 0 to terminate the
> -			 * string, and after the lookup, we put it back.
> -			 */
> -			q = strchr(buf, '.');
> -			if (q != NULL)
> -				*q = '\0';
> -
>   			if (dtrace_lookup_by_name(dtp, DTRACE_OBJ_KMODS, buf,
>   						  NULL, &sip) == 0)
>   				mod = sip.object;
> -
> -			if (q != NULL)
> -				*q = '.';
>   		} else
>   			mod = p;
>   



More information about the DTrace-devel mailing list