[Crash-utility] Identifying structures related to memory , semaphores using crash utility

ram ba ahobalram at yahoo.com
Tue Dec 12 04:19:32 UTC 2006


Hi Dave,
             I am thankful to you for your immediate response. Since we know that symbols can be either structures, arrays, ordinary variables or functions, I want to fetch the values of only those symbols that are structures. Well when we execute sym -l  command, we get the second field as symbol type as shown below.
   
  ffffffff80107000 (T) level3_physmem_pgt
ffffffff80108000 (t) rest_init
  .....
ffffffff80333000 (D) cpu_gdt_table
ffffffff80333080 (d) gdt_end
  .....
ffffffff802d93a0 (A) __stop___ex_table
ffffffff802da000 (A) __start_rodata
ffffffff802da000 (R) linux_banner
ffffffff802da0c0 (r) p.13105
ffffffff802da100 (r) border

   I wanted to ensure whether we can use this information to identify whether a given symbol is a structure or a function or an ordinary variable.( can i assume that all symbols present in text segment are functions?)
   
           Also I wanted to know if there is any command wherein I can get a listing of all symbols that are related to memory, semaphores and tasks. 
  Thanks,
  Ramya

Dave Anderson <anderson at redhat.com> wrote:
  ram ba wrote:   Hi all,I was running crash to analyse a vmcore generated by a  2.6.16.21-0.8.uis.1-smp kernel ( on x86_64 architecture). During this I came to know that we get a list of all kernel symbols with the help of "sym -l" command. With the help of "whatis" command we can know the symbol definition.But applying "whatis" command to each symbol and checking its definition appears to be tedious. Is there any other way to identify as to which symbols represent structures?        Also I wanted to isolate the structures related to memory, semaphores, tasks. Since I am new to crash utility, I couldn't get much information. Could you please provide some suggestions as to how to go about it.Thanks,Ramya   
---------------------------------
  Need a quick answer? Get one in minutes from people who know. Ask your question on Yahoo! Answers.  
Ask "Yahoo! Answers"?    ;-)   Anyway, it's not clear to me what you're asking for?   If a symbol-name is an instance of a data structure, or an array of data 
structures, you can simply enter:     crash> p symbol-name   If the symbol refers to an array of structures, you can pick 
an individual structure by its index:     crash> p symbol-name[index]   Or if the symbol is a pointer to a data strucutre, you display 
what it points to with:     crash> p *symbol-name   The above simply take advantage of the embedded gdb module 
pre-determining what the data type of a symbol is, and then printing it.   When you ask that you want to "isolate the structures related to 
memory, semaphores, tasks", again, I don't understand what you 
are asking for.   I'm probably missing your point, but, in any case, there's certainly no 
existing command that walks the symbol list and tells you what kind of 
data structure each one is -- if that's what you're expecting.   Depending upon what you want, you could probably (1) cobble together 
an input script that you can in turn feed to crash, or (2) write an "extend" 
module that gathers the data that you specifically need.   Dave 
  
  --
Crash-utility mailing list
Crash-utility at redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility



 __________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/crash-utility/attachments/20061211/4417fdb0/attachment.htm>


More information about the Crash-utility mailing list