----- Original Message ----- > > I see what you are concerning about... > Attach the new format patch, which would just error out when it detect > datatype failed. > > Thanks, > Lei I'm going to NAK this patch for three reasons. First, there are literally hundreds of text symbols that do not have any debuginfo data for one reason or another, i.e., they may be in .S assembly language files, or perhaps are crafted with a macro, etc. Without your patch, gdb at least informs you that they are a text symbol: crash> whatis sk_load_word <text variable, no debug info> sk_load_word; crash> But your patch falsely proclaims that gdb failed to recognize it: crash> whatis sk_load_word whatis: gdb request failed: whatis sk_load_word crash> Secondly, there can be strange/invalid output on certain functions. For example, without your patch: crash> whatis alloc_iommu int alloc_iommu(struct dmar_drhd_unit *); crash> But with your patch applied, it shows this: crash> whatis alloc_iommu int alloc_iommu(struct dmar_drhd_unit * dev size align_mask); crash> And that seems to be because there are two functions with the same name: crash> sym alloc_iommu ffffffff81045950 (t) alloc_iommu /usr/src/debug/kernel-3.7.fc17/linux-3.7.9-104.fc17.x86_64/arch/x86/kernel/amd_gart_64.c: 96 ffffffff814fe920 (T) alloc_iommu /usr/src/debug/kernel-3.7.fc17/linux-3.7.9-104.fc17.x86_64/drivers/iommu/dmar.c: 644 crash> And your command is mixing the prototype info of the two functions: static unsigned long alloc_iommu(struct device *dev, int size, unsigned long align_mask) int alloc_iommu(struct dmar_drhd_unit *drhd) And third, there is still the issue with module text symbols not working all of the time. I don't know why that happens, but it's bothersome. However, I will apply the simple changes that you requested for gdb_get_datatype() so that you can keep a private branch with your full patch in place. Dave -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility