[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Hidden symbol when debugging hypervisor



On 30/04/14 14:16, Jan Beulich wrote:
>>>> On 30.04.14 at 13:28, <andrew.cooper3@xxxxxxxxxx> wrote:
>> On 30/04/14 11:21, Jan Beulich wrote:
>> I have encountered similar problems generating stack traces with the Xen
>> Crashdump Analyser, which only has System.map available.
>>
>> xen.git/xen$ cat System.map | cut -d ' ' -f 3 | sort | uniq -d | wc -l
>> 78
>>
>> Having duplicate symbol names for different symbols is confusing at the
>> very least, and trivial to avoid.  I reckon that most if not all of
>> those 78 duplicate symbols can, and should be, deduplicated.  Renaming
>> credit -> credit2 will amend about 1/4 of that list.
> For the crash dump analyzer, I can't see why it shouldn't be able to
> consume the symbol table from elf-syms or elf.efi instead of the
> (reduced) System.map.

Because it mostly runs on a systems without the debuginfo rpms installed.

Furthermore, it needs to fit in a 64MB crash region with the crash
kernel and initrd as well (although this is more flexible).

>
> And for Xen generated stack traces I think I already said that this has
> been on my todo list for quite some time, pending no more important
> things to deal with, yet not to follow what you suggest, but to make
> Xen consume its own ELF/COFF symbol table instead of the (again
> reduced) one generated by tools/symbols.
>
> My main rationale here is that within a source file having prefix-less
> names is not only fine, but preferable (less typing, less needless line
> wrapping), and hence only global symbols need to be fully
> disambiguated.
>
> Jan

From a coding point of view, certainly.

From a debugging point of view, I completely disagree.  From a stack
trace, you want to be able to identify the function absolutely. 
Currently, finding "csched_schedule()" in a stack trace still means that
I have to work out which scheduler is actually in use.  With a cpupool
using credit1 and a cpupool using credit2, this can be very difficult
after-the-fact.

When stack traces have access to static symbol names, the only concept
of 'non-global' which actually exists are inlined functions.

~Andrew

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.