Liu

Thanks your new patch.
I think the patche is better than before. So I ack this patch.

As you pointed out, if exists Rust modules then processing for
dwarf occur infinite loop. This will add the function to the
stack and cause an error. I also have resarch this bug, but
cannot find the root cause.

Therefore, I think it would be better not to support Rust now.
However, the cause should eventually be revealed.

Acked-by: YAMAZAKI Masamitsu <[email protected]>

Thanks,
Masa

On 2025/10/22 15:38, HAGIO KAZUHITO(萩尾 一仁) wrote:
> On 2025/10/21 7:24, Tao Liu wrote:
>> There is an infinite recursion bug noticed in rust symbols. The root cause is
>> unclear to me. This patch will avoid the bug by skip the rust
>> CompileUnits, since currently we don't need to deal with rust symbols.
>>
>> Signed-off-by: Tao Liu <[email protected]>
>> Suggested-by: Kazuhito Hagio <[email protected]>
> For applying this 04/14 patch separately before the 1.7.8 release, with
> adding the following note to the man page:
>
> --- a/makedumpfile.8.in
> +++ b/makedumpfile.8.in
> @@ -80,6 +80,7 @@ nested loops to traverse and erase kernel data. --eppic 
> requires
>    can be built from makedumpfile source. Refer to
>    \fBhttp://code.google.com/p/eppic/\fR to build eppic library 
> \fBlibeppic.a\fR
>    and for more information on writing eppic macros.
> +NOTE: currently Rust is not supported in this function.
>    .PP
>    To analyze the first kernel's memory usage, makedumpfile can refer to
>    \fIVMCOREINFO\fR instead of \fIVMLINUX\fR. \fIVMCOREINFO\fR contains the 
> first
>
>
> Acked-by: Kazuhito Hagio <[email protected]>
>
> Thanks,
> Kazu
>
>> ---
>>    dwarf_info.c | 7 +++++++
>>    1 file changed, 7 insertions(+)
>>
>> diff --git a/dwarf_info.c b/dwarf_info.c
>> index a3a2fd6..14cf7ca 100644
>> --- a/dwarf_info.c
>> +++ b/dwarf_info.c
>> @@ -1007,6 +1007,13 @@ get_debug_info(void)
>>                      ERRMSG("Can't get CU die.\n");
>>                      goto out;
>>              }
>> +
>> +            /* NOTE: currently Rust is not supported. */
>> +            if (dwarf_srclang(&cu_die) == DW_LANG_Rust) {
>> +                    off = next_off;
>> +                    continue;
>> +            }
>> +
>>              search_die_tree(&cu_die, &found);
>>              if (found)
>>                      break;

Reply via email to