Changes in kernel/generic/src/debug/symtab.c [7e752b2:98000fb] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/debug/symtab.c
r7e752b2 r98000fb 38 38 #include <symtab.h> 39 39 #include <byteorder.h> 40 #include <str .h>40 #include <string.h> 41 41 #include <print.h> 42 #include < typedefs.h>42 #include <arch/types.h> 43 43 #include <typedefs.h> 44 44 #include <errno.h> … … 46 46 /** Get name of a symbol that seems most likely to correspond to address. 47 47 * 48 * @param addr Address. 49 * @param name Place to store pointer to the symbol name. 50 * @param offset Place to store offset from the symbol address. 48 * @param addr Address. 49 * @param name Place to store pointer to the symbol name. 51 50 * 52 51 * @return Zero on success or negative error code, ENOENT if not found, … … 54 53 * 55 54 */ 56 int symtab_name_lookup(u intptr_t addr, const char **name, uintptr_t *offset)55 int symtab_name_lookup(unative_t addr, char **name) 57 56 { 58 57 #ifdef CONFIG_SYMTAB … … 66 65 if (addr >= uint64_t_le2host(symbol_table[i - 1].address_le)) { 67 66 *name = symbol_table[i - 1].symbol_name; 68 if (offset)69 *offset = addr -70 uint64_t_le2host(symbol_table[i - 1].address_le);71 67 return EOK; 72 68 } … … 83 79 /** Lookup symbol by address and format for display. 84 80 * 85 * Returns name of closest corresponding symbol, 86 * "unknown" if none exists and "N/A" if no symbol 87 * information is available. 81 * Returns name of closest corresponding symbol, "Not found" if none exists 82 * or "N/A" if no symbol information is available. 88 83 * 89 84 * @param addr Address. … … 93 88 * 94 89 */ 95 c onst char *symtab_fmt_name_lookup(uintptr_t addr)96 { 97 c onst char *name;98 int rc = symtab_name_lookup(addr, &name , NULL);90 char *symtab_fmt_name_lookup(unative_t addr) 91 { 92 char *name; 93 int rc = symtab_name_lookup(addr, &name); 99 94 100 95 switch (rc) { … … 102 97 return name; 103 98 case ENOENT: 104 return " unknown";99 return "Not found"; 105 100 default: 106 101 return "N/A"; … … 192 187 uintptr_t addr = uint64_t_le2host(symbol_table[pos].address_le); 193 188 char *realname = symbol_table[pos].symbol_name; 194 printf("%p: %s\n", (void *)addr, realname);189 printf("%p: %s\n", addr, realname); 195 190 pos++; 196 191 } … … 240 235 printf("\n"); 241 236 pos = 0; 242 while ( symtab_search_one(name, &pos)) {237 while ((hint = symtab_search_one(name, &pos))) { 243 238 printf("%s\n", symbol_table[pos].symbol_name); 244 239 pos++;
Note:
See TracChangeset
for help on using the changeset viewer.