Loading...
/* * BK Id: SCCS/s.find_name.c 1.5 05/17/01 18:14:21 cort */ #include <stdio.h> #include <asm/page.h> #include <sys/mman.h> #include <strings.h> /* * Finds a given address in the System.map and prints it out * with its neighbors. -- Cort */ int main(int argc, char **argv) { unsigned long addr, cmp, i; FILE *f; char s[256], last[256]; if ( argc < 2 ) { fprintf(stderr, "Usage: %s <address>\n", argv[0]); return -1; } for ( i = 1 ; argv[i] ; i++ ) { sscanf( argv[i], "%0lx", &addr ); /* adjust if addr is relative to kernelbase */ if ( addr < PAGE_OFFSET ) addr += PAGE_OFFSET; if ( (f = fopen( "System.map", "r" )) == NULL ) { perror("fopen()\n"); exit(-1); } while ( !feof(f) ) { fgets(s, 255 , f); sscanf( s, "%0lx", &cmp ); if ( addr < cmp ) break; strcpy( last, s); } printf( "%s%s", last, s ); } fclose(f); return 0; } |