Re: [PATCH v4 25/39] unwind_user/sframe: Show file name in debug output
Jens Remus <[email protected]>
| Newsgroups | org.kernel.vger.linux-toolchains,org.kernel.vger.linux-kernel,org.kernel.vger.linux-perf-users,org.kernel.vger.linux-trace-kernel |
|---|---|
| Organization | IBM Deutschland Research & Development GmbH |
| Message-ID | <[email protected]> |
On 22.01.2025 03:31, Josh Poimboeuf wrote: > When debugging sframe issues, the error messages aren't all that helpful > without knowing what file a corresponding .sframe section belongs to. > Prefix debug output strings with the file name. > > Signed-off-by: Josh Poimboeuf <[email protected]> > diff --git a/kernel/unwind/sframe_debug.h b/kernel/unwind/sframe_debug.h > +static inline void dbg_init(struct sframe_section *sec) > +{ > + struct mm_struct *mm = current->mm; > + struct vm_area_struct *vma; > + > + guard(mmap_read_lock)(mm); > + vma = vma_lookup(mm, sec->sframe_start); > + if (!vma) > + sec->filename = kstrdup("(vma gone???)", GFP_KERNEL); > + else if (vma->vm_file) > + sec->filename = kstrdup_quotable_file(vma->vm_file, GFP_KERNEL); > + else if (!vma->vm_mm) This condition does not appear to work for vdso on s390. The following does: else if (in_range(sec->sframe_start, current->mm->context.vdso_base, vdso_text_size())) > + sec->filename = kstrdup("(vdso)", GFP_KERNEL); > + else > + sec->filename = kstrdup("(anonymous)", GFP_KERNEL); > +} Regards, Jens -- Jens Remus Linux on Z Development (D3303) +49-7031-16-1128 Office [email protected] IBM IBM Deutschland Research & Development GmbH; Vorsitzender des Aufsichtsrats: Wolfgang Wendt; Geschäftsführung: David Faller; Sitz der Gesellschaft: Böblingen; Registergericht: Amtsgericht Stuttgart, HRB 243294 IBM Data Privacy Statement: https://www.ibm.com/privacy/