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 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel