[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