From: Tim C. <tim...@ya...> - 2004-01-26 19:47:19
|
Does anybody know how to get the symbol information correct when debugging modules in a 2.6.x uml kernel? The instructions in the "debugging modules" section of the uml website are no longer relevant because the size_of_struct field of the module structure no longer exists. any help would be appreciated. tim __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free web site building tool. Try it! http://webhosting.yahoo.com/ps/sb/ |
From: Tim C. <tim...@ya...> - 2004-01-27 05:37:49
|
Does anybody know how to get the symbol information correct when debugging modules in a 2.6.x uml kernel? The instructions in the "debugging modules" section of the uml website are no longer relevant because the size_of_struct field of the module structure no longer exists. any help would be appreciated. tim __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free web site building tool. Try it! http://webhosting.yahoo.com/ps/sb/ |
From: Jeff D. <jd...@ad...> - 2004-01-28 04:15:37
|
tim...@ya... said: > Does anybody know how to get the symbol information correct when > debugging modules in a 2.6.x uml kernel? Modules don't currently work in 2.6 UML AFAIK, so it's kind of moot right now. Jeff |
From: Gerd K. <kr...@by...> - 2004-01-28 11:00:24
|
Jeff Dike <jd...@ad...> writes: > > Does anybody know how to get the symbol information correct when > > debugging modules in a 2.6.x uml kernel? > > Modules don't currently work in 2.6 UML AFAIK, so it's kind of moot right now. They *do* work with the patch below applied (pulled out of blaisorblades uml patch set), MODVERSIONS must be disabled through. Gerd --- linux-2.6.0/arch/um/kernel/um_arch.c.~1~ 2003-12-31 16:40:09.000000000 +0100 +++ linux-2.6.0/arch/um/kernel/um_arch.c 2003-12-31 16:43:35.000000000 +0100 @@ -422,6 +422,10 @@ check_devanon(); } +void apply_alternatives(void *start, void *end) +{ +} + /* * Overrides for Emacs so that we follow Linus's tabbing style. * Emacs will notice this stuff at the end of the file and automatically --- linux-2.6.0/arch/um/kernel/user_syms.c.~1~ 2003-12-31 16:40:09.000000000 +0100 +++ linux-2.6.0/arch/um/kernel/user_syms.c 2003-12-31 16:43:41.000000000 +0100 @@ -16,6 +16,62 @@ * since this includes various user-level headers. */ +/* Had to update this: this changed in late 2.5 to add CRC and other beasts + * and was never updated here- 13 Dec 2003-Blaisorblade*/ + +/* v850 toolchain uses a `_' prefix for all user symbols */ +#ifndef MODULE_SYMBOL_PREFIX +#define MODULE_SYMBOL_PREFIX "" +#endif + +struct kernel_symbol +{ + unsigned long value; + const char *name; +}; + +#if !defined(UML_CONFIG_MODULES) +#define EXPORT_SYMBOL(sym) +#define EXPORT_SYMBOL_GPL(sym) +#define EXPORT_SYMBOL_NOVERS(sym) + +#else /*UML_CONFIG_MODULES*/ +#ifndef __GENKSYMS__ +#ifdef UML_CONFIG_MODVERSIONS +/* Mark the CRC weak since genksyms apparently decides not to + * generate a checksums for some symbols */ +#define __CRC_SYMBOL(sym, sec) \ + extern void *__crc_##sym __attribute__((weak)); \ + static const unsigned long __kcrctab_##sym \ + __attribute__((section("__kcrctab" sec), unused)) \ + = (unsigned long) &__crc_##sym; +#else +#define __CRC_SYMBOL(sym, sec) +#endif + +/* For every exported symbol, place a struct in the __ksymtab section */ +#define __EXPORT_SYMBOL(sym, sec) \ + __CRC_SYMBOL(sym, sec) \ + static const char __kstrtab_##sym[] \ + __attribute__((section("__ksymtab_strings"))) \ + = MODULE_SYMBOL_PREFIX #sym; \ + static const struct kernel_symbol __ksymtab_##sym \ + __attribute__((section("__ksymtab" sec), unused)) \ + = { (unsigned long)&sym, __kstrtab_##sym } + +#define EXPORT_SYMBOL(sym) \ + __EXPORT_SYMBOL(sym, "") + +#define EXPORT_SYMBOL_GPL(sym) \ + __EXPORT_SYMBOL(sym, "_gpl") + +#endif + +/* We don't mangle the actual symbol anymore, so no need for + * special casing EXPORT_SYMBOL_NOVERS. FIXME: Deprecated */ +#define EXPORT_SYMBOL_NOVERS(sym) EXPORT_SYMBOL(sym) +#endif +#if 0 struct module_symbol { unsigned long value; @@ -57,6 +113,7 @@ #define EXPORT_SYMBOL_NOVERS(var) __EXPORT_SYMBOL(var, __MODULE_STRING(var)) #endif +#endif EXPORT_SYMBOL(__errno_location); @@ -109,5 +166,7 @@ EXPORT_SYMBOL(memset); EXPORT_SYMBOL(strstr); +EXPORT_SYMBOL(printf); +EXPORT_SYMBOL(strlen); EXPORT_SYMBOL(find_iomem); --- linux-2.6.0/include/asm-um/elf.h.~1~ 2003-12-31 11:55:32.000000000 +0100 +++ linux-2.6.0/include/asm-um/elf.h 2003-12-31 16:49:11.000000000 +0100 @@ -15,4 +15,17 @@ #define USE_ELF_CORE_DUMP +#define R_386_NONE 0 +#define R_386_32 1 +#define R_386_PC32 2 +#define R_386_GOT32 3 +#define R_386_PLT32 4 +#define R_386_COPY 5 +#define R_386_GLOB_DAT 6 +#define R_386_JMP_SLOT 7 +#define R_386_RELATIVE 8 +#define R_386_GOTOFF 9 +#define R_386_GOTPC 10 +#define R_386_NUM 11 + #endif --- linux-2.6.1/include/asm-um/common.lds.S.lds 2004-01-19 18:06:14.000000000 +0100 +++ linux-2.6.1/include/asm-um/common.lds.S 2004-01-19 18:07:02.000000000 +0100 @@ -15,18 +15,6 @@ RODATA - __start___ksymtab = .; /* Kernel symbol table */ - __ksymtab : { *(__ksymtab) } - __stop___ksymtab = .; - - __start___gpl_ksymtab = .; /* Kernel symbol table: GPL-only symbols */ - __gpl_ksymtab : { *(__gpl_ksymtab) } - __stop___gpl_ksymtab = .; - - __start___kallsyms = .; /* All kernel symbols */ - __kallsyms : { *(__kallsyms) } - __stop___kallsyms = .; - .unprotected : { *(.unprotected) } . = ALIGN(4096); PROVIDE (_unprotected_end = .); |
From: Jeff D. <jd...@ad...> - 2004-01-30 17:17:57
|
On Wed, Jan 28, 2004 at 11:37:55AM +0100, Gerd Knorr wrote: > They *do* work with the patch below applied (pulled out of > blaisorblades uml patch set), MODVERSIONS must be disabled through. Cool, most of his stuff is in my 2.6 tree now. I'm not a heavy user of modules, so I didn't realize that he had gotten them working. Jeff |
From: Guilherme D. <gd...@he...> - 2004-03-24 17:22:52
|
On Fri, 2004-01-23 at 20:34, Tim Cullen wrote: > Does anybody know how to get the symbol information > correct when debugging modules in a 2.6.x uml kernel? Using dummy net driver as a test, I found that cat /proc/modules return something like this: sh-2.05# cat /proc/modules dummy 2660 0 - Live 0xa286c000 then (gdb) add-symbol-file INSTALL_MOD_PATH/lib/modules/2.6.4-1um/kernel/drivers/net/dummy.ko 0xa286c000 do the trick. the breakpoint on dummy_get_stats has stopped on the right place, so I think that it worked out. good luck. ps1.: Who is responsable to update the webpage? ps2.: I'm trying to figure out how to get the address whithout allowing the kernel to run with the module to be debugger, since the module that I'm testing is being faster segfaulting uml than I can read proc/modules... ;) > The instructions in the "debugging modules" section of > the uml website are no longer relevant because the > size_of_struct field of the module structure no longer > exists. Yes, and umlgdb also is outdated also. > > any help would be appreciated. > tim > > > __________________________________ > Do you Yahoo!? > Yahoo! SiteBuilder - Free web site building tool. Try it! > http://webhosting.yahoo.com/ps/sb/ > > > ------------------------------------------------------- > The SF.Net email is sponsored by EclipseCon 2004 > Premiere Conference on Open Tools Development and Integration > See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. > http://www.eclipsecon.org/osdn > _______________________________________________ > User-mode-linux-user mailing list > Use...@li... > https://lists.sourceforge.net/lists/listinfo/user-mode-linux-user -- Guilherme Destefani Computer Engineer Helix S.A. gd _at_ helixbrasil _dot_ com _dot_ br Brazil - Parana - Curitiba (+5541) 362-1313 |
From: Guilherme D. <gd...@he...> - 2004-03-26 13:07:04
|
On Wed, 2004-03-24 at 14:17, Guilherme Destefani wrote: > On Fri, 2004-01-23 at 20:34, Tim Cullen wrote: > > Does anybody know how to get the symbol information > > correct when debugging modules in a 2.6.x uml kernel? > Using dummy net driver as a test, I found that >=20 > cat /proc/modules return something like this: > sh-2.05# cat /proc/modules Forget this, this doesn't work! > dummy 2660 0 - Live 0xa286c000 >=20 > then >=20 > (gdb) add-symbol-file > INSTALL_MOD_PATH/lib/modules/2.6.4-1um/kernel/drivers/net/dummy.ko > 0xa286c000 >=20 > do the trick. > the breakpoint on dummy_get_stats has stopped on the right place, so I > think that it worked out. >=20 > good luck. >=20 > ps1.: Who is responsable to update the webpage? >=20 > ps2.: I'm trying to figure out how to get the address whithout allowing > the kernel to run with the module to be debugger, since the module that > I'm testing is being faster segfaulting uml than I can read > proc/modules... ;) >=20 > > The instructions in the "debugging modules" section of > > the uml website are no longer relevant because the > > size_of_struct field of the module structure no longer > > exists. > Yes, and umlgdb also is outdated also. > >=20 > > any help would be appreciated. > > tim > >=20 > >=20 > > __________________________________ > > Do you Yahoo!? > > Yahoo! SiteBuilder - Free web site building tool. Try it! > > http://webhosting.yahoo.com/ps/sb/ > >=20 > >=20 > > ------------------------------------------------------- > > The SF.Net email is sponsored by EclipseCon 2004 > > Premiere Conference on Open Tools Development and Integration > > See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. > > http://www.eclipsecon.org/osdn > > _______________________________________________ > > User-mode-linux-user mailing list > > Use...@li... > > https://lists.sourceforge.net/lists/listinfo/user-mode-linux-user --=20 Guilherme Destefani Engenheiro de Computa=C3=A7=C3=A3o Helix S.A. - Desenvolvimento gd _arroba_ helixbrasil _ponto_ com _ponto_ br (41) 362-1313 Ramal 219 |