----- Original Message -----
strings ./vmlinux | grep "Linux version"
Linux version 3.0.15+ (oza@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@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