* Re: grub_machine_set_prefix, --enable-mm-debug [not found] <E1FYTpn-0003L4-RP@savannah.gnu.org> @ 2006-04-25 23:22 ` Hollis Blanchard 2006-04-26 8:49 ` Yoshinori K. Okuji 2006-04-26 0:10 ` --enable-mm-debug breakage Hollis Blanchard 1 sibling, 1 reply; 10+ messages in thread From: Hollis Blanchard @ 2006-04-25 23:22 UTC (permalink / raw) To: Yoshinori K. Okuji; +Cc: The development of GRUB 2 On Apr 25, 2006, at 3:08 PM, Yoshinori K. Okuji wrote: > > A new machine-specific function "grub_machine_set_prefix" is > defined. This is called after loading modules, so that a prefix > initialization can use modules. I think you broke grub-emu with this change, because grub-emu uses kern/main.c, but nothing provides grub_machine_set_prefix() there. > Also, this change adds an > intensive debugging feature for the memory manager via the > configure option "--enable-mm-debug". Is there a reason not to use the runtime debugging infrastructure we have? Most of that is "intensive" as well... -Hollis ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: grub_machine_set_prefix, --enable-mm-debug 2006-04-25 23:22 ` grub_machine_set_prefix, --enable-mm-debug Hollis Blanchard @ 2006-04-26 8:49 ` Yoshinori K. Okuji 2006-04-26 8:57 ` Marco Gerards 0 siblings, 1 reply; 10+ messages in thread From: Yoshinori K. Okuji @ 2006-04-26 8:49 UTC (permalink / raw) To: Hollis Blanchard; +Cc: The development of GRUB 2 On Wednesday 26 April 2006 01:22, Hollis Blanchard wrote: > Is there a reason not to use the runtime debugging infrastructure we > have? Most of that is "intensive" as well... What do you mean by "the runtime debugging infrastructure"? If you mean grub_dprintf, it is not enough, since you cannot embed file names and line numbers where the functions are called. Okuji ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: grub_machine_set_prefix, --enable-mm-debug 2006-04-26 8:49 ` Yoshinori K. Okuji @ 2006-04-26 8:57 ` Marco Gerards 2006-04-26 9:22 ` Yoshinori K. Okuji 0 siblings, 1 reply; 10+ messages in thread From: Marco Gerards @ 2006-04-26 8:57 UTC (permalink / raw) To: The development of GRUB 2 "Yoshinori K. Okuji" <okuji@gnu.org> writes: > On Wednesday 26 April 2006 01:22, Hollis Blanchard wrote: >> Is there a reason not to use the runtime debugging infrastructure we >> have? Most of that is "intensive" as well... > > What do you mean by "the runtime debugging infrastructure"? If you mean > grub_dprintf, it is not enough, since you cannot embed file names and line > numbers where the functions are called. IIRC this is being done automatically. Or do I misunderstand something? -- Marco ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: grub_machine_set_prefix, --enable-mm-debug 2006-04-26 8:57 ` Marco Gerards @ 2006-04-26 9:22 ` Yoshinori K. Okuji 2006-04-26 10:00 ` Marco Gerards 0 siblings, 1 reply; 10+ messages in thread From: Yoshinori K. Okuji @ 2006-04-26 9:22 UTC (permalink / raw) To: The development of GRUB 2 On Wednesday 26 April 2006 10:57, Marco Gerards wrote: > "Yoshinori K. Okuji" <okuji@gnu.org> writes: > > On Wednesday 26 April 2006 01:22, Hollis Blanchard wrote: > >> Is there a reason not to use the runtime debugging infrastructure we > >> have? Most of that is "intensive" as well... > > > > What do you mean by "the runtime debugging infrastructure"? If you mean > > grub_dprintf, it is not enough, since you cannot embed file names and > > line numbers where the functions are called. > > IIRC this is being done automatically. Or do I misunderstand > something? Yes. My point is that I want to embed such information into where malloc/realloc/memalign/free is called, but not grub_dprintf is called. If you use grub_dprintf, you must embed grub_dprintf into so many places manually. My way does not require such rewriting. Okuji ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: grub_machine_set_prefix, --enable-mm-debug 2006-04-26 9:22 ` Yoshinori K. Okuji @ 2006-04-26 10:00 ` Marco Gerards 2006-04-26 10:45 ` Yoshinori K. Okuji 0 siblings, 1 reply; 10+ messages in thread From: Marco Gerards @ 2006-04-26 10:00 UTC (permalink / raw) To: The development of GRUB 2 "Yoshinori K. Okuji" <okuji@enbug.org> writes: > On Wednesday 26 April 2006 10:57, Marco Gerards wrote: >> "Yoshinori K. Okuji" <okuji@gnu.org> writes: >> > On Wednesday 26 April 2006 01:22, Hollis Blanchard wrote: >> >> Is there a reason not to use the runtime debugging infrastructure we >> >> have? Most of that is "intensive" as well... >> > >> > What do you mean by "the runtime debugging infrastructure"? If you mean >> > grub_dprintf, it is not enough, since you cannot embed file names and >> > line numbers where the functions are called. >> >> IIRC this is being done automatically. Or do I misunderstand >> something? > > Yes. My point is that I want to embed such information into where > malloc/realloc/memalign/free is called, but not grub_dprintf is called. If > you use grub_dprintf, you must embed grub_dprintf into so many places > manually. My way does not require such rewriting. How about using a macro as a wrapper. So something like: #define grub_malloc(x) \ { \ grub_dprintf (...); \ grub_malloc_int (...) \ } In that case you can use the existing debugging framework we are all used to. -- Marco ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: grub_machine_set_prefix, --enable-mm-debug 2006-04-26 10:00 ` Marco Gerards @ 2006-04-26 10:45 ` Yoshinori K. Okuji 0 siblings, 0 replies; 10+ messages in thread From: Yoshinori K. Okuji @ 2006-04-26 10:45 UTC (permalink / raw) To: The development of GRUB 2 On Wednesday 26 April 2006 12:00, Marco Gerards wrote: > How about using a macro as a wrapper. So something like: > > #define grub_malloc(x) \ > { \ > grub_dprintf (...); \ > grub_malloc_int (...) \ > } > > In that case you can use the existing debugging framework we are all > used to. Clearly, I don't want to use grub_dprintf for two reasons: - I need to print messages twice in some functions. If I use dprintf, it prefixes a filename and a line number every time. This is too annoying. - The use of grub_dprintf requires the modification of an environment variable. So this affects the memory manager and the user environment. When the memory manager is buggy, I don't want such a side effect. Frankly speaking, I tried grub_dprintf myself, and abandoned it, due to these problems. My problem was actually that I forgot to initialize a local variable before freeing it. When using grub_dprintf, by setting a variable, the stack was modified, then the fatal error disappeared as a side effect. This was extremely confusing. Compared with this, setting a global variable does not affect the memory status very much. So I will never go back to grub_dprintf for this purpose. The idea of code sharing is usually very good, but not always good. Okuji ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: --enable-mm-debug breakage [not found] <E1FYTpn-0003L4-RP@savannah.gnu.org> 2006-04-25 23:22 ` grub_machine_set_prefix, --enable-mm-debug Hollis Blanchard @ 2006-04-26 0:10 ` Hollis Blanchard 2006-04-26 2:06 ` Hollis Blanchard 2006-04-26 8:47 ` Yoshinori K. Okuji 1 sibling, 2 replies; 10+ messages in thread From: Hollis Blanchard @ 2006-04-26 0:10 UTC (permalink / raw) To: Yoshinori K. Okuji; +Cc: The development of GRUB 2 On Apr 25, 2006, at 3:08 PM, Yoshinori K. Okuji wrote: > Also, this change adds an > intensive debugging feature for the memory manager via the > configure option "--enable-mm-debug". I fixed the breakage from renaming "abort". However, the build is now broken when not using --enable-mm-debug: grubof_symlist.c: In function 'grub_register_exported_symbols': grubof_symlist.c:134: error: 'grub_debug_malloc' undeclared (first use in this function) Given gensymlist.sh, I can see two ways to solve this problem: 1) Provide empty stubs for those debug functions. 2) Use the regular debugging infrastructure, as I mentioned before. That is what is was designed for, so it seems to be the obvious solution. grub_mm_debug(), which has no callers, is the only function that won't fit. I will resist the urge to do this until you're able to comment. -Hollis ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: --enable-mm-debug breakage 2006-04-26 0:10 ` --enable-mm-debug breakage Hollis Blanchard @ 2006-04-26 2:06 ` Hollis Blanchard 2006-04-26 8:47 ` Yoshinori K. Okuji 1 sibling, 0 replies; 10+ messages in thread From: Hollis Blanchard @ 2006-04-26 2:06 UTC (permalink / raw) To: Yoshinori K. Okuji; +Cc: The development of GRUB 2 On Apr 25, 2006, at 3:08 PM, Yoshinori K. Okuji wrote: > Also, this change adds an > intensive debugging feature for the memory manager via the > configure option "--enable-mm-debug". ... and finally, the debug functions seem to introduce runtime breakage (out of memory errors). I have no idea how, and I've wasted too much time trying to figure that out. It's as easy as trying to load a vmlinux: out of memory. When I hack out the EXPORT stuff so I can build without --enable-mm-debug, everything runs fine. -Hollis ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: --enable-mm-debug breakage 2006-04-26 0:10 ` --enable-mm-debug breakage Hollis Blanchard 2006-04-26 2:06 ` Hollis Blanchard @ 2006-04-26 8:47 ` Yoshinori K. Okuji 2006-04-26 19:31 ` Yoshinori K. Okuji 1 sibling, 1 reply; 10+ messages in thread From: Yoshinori K. Okuji @ 2006-04-26 8:47 UTC (permalink / raw) To: Hollis Blanchard; +Cc: The development of GRUB 2 On Wednesday 26 April 2006 02:10, Hollis Blanchard wrote: > On Apr 25, 2006, at 3:08 PM, Yoshinori K. Okuji wrote: > > Also, this change adds an > > intensive debugging feature for the memory manager via the > > configure option "--enable-mm-debug". > > I fixed the breakage from renaming "abort". Thank you. > However, the build is now broken when not using --enable-mm-debug: > grubof_symlist.c: In function 'grub_register_exported_symbols': > grubof_symlist.c:134: error: 'grub_debug_malloc' undeclared (first use > in this function) > > Given gensymlist.sh, I can see two ways to solve this problem: > 1) Provide empty stubs for those debug functions. > 2) Use the regular debugging infrastructure, as I mentioned before. > That is what is was designed for, so it seems to be the obvious > solution. grub_mm_debug(), which has no callers, is the only function > that won't fit. > No, this problem happens only because grubof_symlist.c is not regenerated when you rerun configure. That is, this is a dependency problem in the Makefile. Okuji ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: --enable-mm-debug breakage 2006-04-26 8:47 ` Yoshinori K. Okuji @ 2006-04-26 19:31 ` Yoshinori K. Okuji 0 siblings, 0 replies; 10+ messages in thread From: Yoshinori K. Okuji @ 2006-04-26 19:31 UTC (permalink / raw) To: The development of GRUB 2 On Wednesday 26 April 2006 10:47, Yoshinori K. Okuji wrote: > No, this problem happens only because grubof_symlist.c is not regenerated > when you rerun configure. That is, this is a dependency problem in the > Makefile. Nope. I'm wrong. The problem is that the cpp conditionals are not evaluated when getting exported symbols. I will fix this. Okuji ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2006-04-26 19:31 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <E1FYTpn-0003L4-RP@savannah.gnu.org>
2006-04-25 23:22 ` grub_machine_set_prefix, --enable-mm-debug Hollis Blanchard
2006-04-26 8:49 ` Yoshinori K. Okuji
2006-04-26 8:57 ` Marco Gerards
2006-04-26 9:22 ` Yoshinori K. Okuji
2006-04-26 10:00 ` Marco Gerards
2006-04-26 10:45 ` Yoshinori K. Okuji
2006-04-26 0:10 ` --enable-mm-debug breakage Hollis Blanchard
2006-04-26 2:06 ` Hollis Blanchard
2006-04-26 8:47 ` Yoshinori K. Okuji
2006-04-26 19:31 ` Yoshinori K. Okuji
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.