[Crash-utility] [RFC PATCH 16/16] Fix compare_syms() not to put a text symbol out of range
lijiang
lijiang at redhat.com
Tue May 30 06:15:24 UTC 2023
On Thu, May 25, 2023 at 4:02 PM HAGIO KAZUHITO(萩尾 一仁) <k-hagio-ab at nec.com>
wrote:
> From: Kazuhito Hagio <k-hagio-ab at nec.com>
>
> Without the patch, a __pfx symbol having the same address as its module
> text pseudo symbol is located at before the pseudo symbol and it is not
> displayed by "sym" command, after loading module symbols. For example,
>
> crash> sym -m dm_mod | head -n 3
> ffffffffc07e8000 MODULE TEXT START: dm_mod
> ffffffffc07e8000 (T) __pfx_dm_send_uevents
> ffffffffc07e8010 (T) dm_send_uevents
> crash> mod -s dm_mod
> crash> sym -m dm_mod | head -n 3
> ffffffffc07e8000 MODULE TEXT START: dm_mod
> ffffffffc07e8010 (T) dm_send_uevents
> ffffffffc07e81a0 (T) __pfx_dm_path_uevent
> crash> set debug 1
> crash> help -s
> ...
> loaded_objfile: 54dd800
> ffffffffc07e8000 __pfx_dm_send_uevents << out of MOD_TEXT range
> ffffffffc07e8000 _MODULE_TEXT_START_dm_mod
> ffffffffc07e8010 dm_send_uevents
> ffffffffc07e81a0 __pfx_dm_path_uevent
>
> Signed-off-by: Kazuhito Hagio <k-hagio-ab at nec.com>
> ---
> symbols.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/symbols.c b/symbols.c
> index a1e54c6f9f98..7153bf9a2dc1 100644
> --- a/symbols.c
> +++ b/symbols.c
> @@ -3433,7 +3433,8 @@ compare_syms(const void *v1, const void *v2)
> return -1;
> if (STRNEQ(s2->name, "__insmod"))
> return 1;
> - if (STRNEQ(s2->name, "_MODULE_START_"))
> + if (MODULE_MEM_START(s2, MOD_TEXT) ||
> + STRNEQ(s2->name, "_MODULE_START_"))
>
You are right. They have different *PSEUDO* symbol names:
_MODULE_TEXT_START_xxx and _MODULE_START_xxx.
And we also need to check for similar cases in all patches.
Thanks.
Lianbo
return 1;
> /* Get pseudo section name. */
> if (MODULE_SECTION_START(s1))
> --
> 2.31.1
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/crash-utility/attachments/20230530/fcc80149/attachment.htm>
More information about the Crash-utility
mailing list