[Crash-utility] using crash for ARM

Dave Anderson anderson at redhat.com
Tue Aug 14 14:16:30 UTC 2012



----- Original Message -----
> 
> 
> strings ./vmlinux | grep "Linux version"
> Linux version 3.0.15+ (oza at lc-blr-291) (gcc version 4.4.3 (GCC) ) #4 PREEMPT Mon Aug 13 12:02:58 IST 2012
> 
> cat /proc/version
> Linux version 3.0.15+ (oza at lc-blr-291) (gcc version 4.4.3 (GCC) ) #4 PREEMPT Mon Aug 13 12:02:58 IST 2012

Looks OK -- so you'll have to debug verify_namelist().  It does a 
popen("/usr/bin/strings ./vmlinux") and searches for the linux_banner
string here:  

        while (fgets(buffer, BUFSIZE-1, pipe)) {
                if (!strstr(buffer, "Linux version 2.") &&
                    !strstr(buffer, "Linux version 3."))
                        continue;

and when it finds it, it picks out the gcc version number.  I don't
know why it's not working in your case.

Also, since your vmlinux file is identical to /proc/version, why are
you using a System.map argument again?

> 
> crash> ptype struct kmem_cache
> type = struct kmem_cache {
> struct array_cache *array[1];
> unsigned int batchcount;
> unsigned int limit;
> unsigned int shared;
> unsigned int buffer_size;
> u32 reciprocal_buffer_size;
> unsigned int flags;
> unsigned int num;
> unsigned int gfporder;
> gfp_t gfpflags;
> size_t colour;
> unsigned int colour_off;
> struct kmem_cache *slabp_cache;
> unsigned int slab_size;
> unsigned int dflags;
> void (*ctor)(void *);
> const char *name;
> struct list_head next;
> struct kmem_list3 *nodelists[1];
> }

OK, in this case you'll have to debug get_array_length(), and figure
out why it's not finding the lookfor2 string -- which should be set
to "*array[" -- in the ptype command output.  Again, I don't know
why it's not finding it.

Dave




More information about the Crash-utility mailing list