From 06023f625eb03ad29d352ef212b9b5e88ebbbb28 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=B8ren=20Sandmann?= Date: Sat, 16 Apr 2005 05:58:40 +0000 Subject: [PATCH] Add backtrace for kernel oops. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Sat Apr 16 01:54:18 2005 Søren Sandmann * TODO: Add backtrace for kernel oops. --- ChangeLog | 4 ++++ TODO | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ sfile.c | 11 ++++------- 3 files changed, 61 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 48a5887..397d74a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sat Apr 16 01:54:18 2005 Søren Sandmann + + * TODO: Add backtrace for kernel oops. + Fri Apr 15 16:37:45 2005 Soeren Sandmann * TODO: updates diff --git a/TODO b/TODO index 8309def..6cac7bd 100644 --- a/TODO +++ b/TODO @@ -4,6 +4,56 @@ Before 1.0: - grep FIXME - When the module is unloaded, kill all processes blocking in read - or block unloading until all processes have exited + - Find out what happened here: + +[ Try and reproduce by having a ptraced process malloc/mmap a page of memory, then have the + ptracing process read a byte from it. +] + +Apr 11 15:42:08 great-sage-equal-to-heaven kernel: Unable to handle kernel NULL pointer dereference at virtual address 000001b8 +Apr 11 15:42:08 great-sage-equal-to-heaven kernel: printing eip: +Apr 11 15:42:08 great-sage-equal-to-heaven kernel: c017342c +Apr 11 15:42:08 great-sage-equal-to-heaven kernel: *pde = 00000000 +Apr 11 15:42:08 great-sage-equal-to-heaven kernel: Oops: 0000 [#1] +Apr 11 15:42:08 great-sage-equal-to-heaven kernel: Modules linked in: sysprof_module(U) i2c_algo_bit md5 ipv6 parport_pc lp parport autofs4 sunrpc video button battery ac ohci1394 ieee1394 uhci_hcd ehci_hcd hw_random tpm_atmel tpm i2c_i801 i2c_core snd_intel8x0 snd_ac97_codec snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd soundcore snd_page_alloc e1000 floppy dm_snapshot dm_zero dm_mirror ext3 jbd dm_mod ata_piix libata sd_mod scsi_mod +Apr 11 15:42:08 great-sage-equal-to-heaven kernel: CPU: 0 +Apr 11 15:42:08 great-sage-equal-to-heaven kernel: EIP: 0060:[] Not tainted VLI +Apr 11 15:42:08 great-sage-equal-to-heaven kernel: EFLAGS: 00010287 (2.6.11-1.1225_FC4) +Apr 11 15:42:08 great-sage-equal-to-heaven kernel: EIP is at grab_swap_token+0x35/0x21f +Apr 11 15:42:08 great-sage-equal-to-heaven kernel: eax: 0bd48023 ebx: d831d028 ecx: 00000282 edx: 00000000 +Apr 11 15:42:08 great-sage-equal-to-heaven kernel: esi: c1b72934 edi: c1045820 ebp: c1b703f0 esp: c18dbdd8 +Apr 11 15:42:08 great-sage-equal-to-heaven kernel: ds: 007b es: 007b ss: 0068 +Apr 11 15:42:08 great-sage-equal-to-heaven kernel: Process events/0 (pid: 3, threadinfo=c18db000 task=f7e62000) +Apr 11 15:42:09 great-sage-equal-to-heaven kernel: Stack: 000011a8 00000000 000011a8 c1b703f0 c0151731 c016f58f 000011a8 c1b72934 +Apr 11 15:42:09 great-sage-equal-to-heaven kernel: 000011a8 c0166415 c1b72934 c1b72934 c0163768 ee7ccc38 f459fbf8 bf92e7b8 +Apr 11 15:42:09 great-sage-equal-to-heaven kernel: f6c6a934 c0103b92 bfdaba18 c1b703f0 00000001 c1b81bfc c1b72934 bfdaba18 +Apr 11 15:42:09 great-sage-equal-to-heaven kernel: Call Trace: +Apr 11 15:42:09 great-sage-equal-to-heaven kernel: [] find_get_page+0x9/0x24 +Apr 11 15:42:09 great-sage-equal-to-heaven kernel: [] read_swap_cache_async+0x32/0x83Apr 11 15:42:09 great-sage-equal-to-heaven kernel: [] do_swap_page+0x262/0x600 +Apr 11 15:42:09 great-sage-equal-to-heaven kernel: [] pte_alloc_map+0xc6/0x1e6 +Apr 11 15:42:09 great-sage-equal-to-heaven kernel: [] common_interrupt+0x1a/0x20 +Apr 11 15:42:09 great-sage-equal-to-heaven kernel: [] handle_mm_fault+0x1da/0x31d +Apr 11 15:42:09 great-sage-equal-to-heaven kernel: [] __follow_page+0xa2/0x10d +Apr 11 15:42:09 great-sage-equal-to-heaven kernel: [] get_user_pages+0x145/0x6ee +Apr 11 15:42:09 great-sage-equal-to-heaven kernel: [] kmap_high+0x52/0x44e +Apr 11 15:42:09 great-sage-equal-to-heaven kernel: [] common_interrupt+0x1a/0x20 +Apr 11 15:42:09 great-sage-equal-to-heaven kernel: [] x_access_process_vm+0x111/0x1a5 [sysprof_module] +Apr 11 15:42:10 great-sage-equal-to-heaven kernel: [] read_user_space+0x19/0x1d [sysprof_module] +Apr 11 15:42:10 great-sage-equal-to-heaven kernel: [] read_frame+0x35/0x51 [sysprof_module] +Apr 11 15:42:10 great-sage-equal-to-heaven kernel: [] generate_stack_trace+0x8b/0xb4 +Apr 11 15:42:10 great-sage-equal-to-heaven kernel: [] do_generate+0x3f/0xa0 [sysprof_module] +Apr 11 15:42:10 great-sage-equal-to-heaven kernel: [] worker_thread+0x1b0/0x450 +Apr 11 15:42:10 great-sage-equal-to-heaven kernel: [] schedule+0x30d/0x780 +Apr 11 15:42:10 great-sage-equal-to-heaven kernel: [] __wake_up_common+0x39/0x59 +Apr 11 15:42:10 great-sage-equal-to-heaven kernel: [] do_generate+0x0/0xa0 [sysprof_module] +Apr 11 15:42:10 great-sage-equal-to-heaven kernel: [] default_wake_function+0x0/0xc +Apr 11 15:42:10 great-sage-equal-to-heaven kernel: [] worker_thread+0x0/0x450 +Apr 11 15:42:10 great-sage-equal-to-heaven kernel: [] kthread+0x87/0x8b +Apr 11 15:42:10 great-sage-equal-to-heaven kernel: [] kthread+0x0/0x8b +Apr 11 15:42:10 great-sage-equal-to-heaven kernel: [] kernel_thread_helper+0x5/0xb +Apr 11 15:42:10 great-sage-equal-to-heaven kernel: Code: e0 8b 00 8b 50 74 8b 1d c4 55 3d c0 39 +da 0f 84 9b 01 00 00 a1 60 fc 3c c0 39 05 30 ec 48 c0 78 05 83 c4 20 5b c3 a1 60 fc 3c c0 <3b> 82 b8 01 00 00 78 ee 81 3d ac 55 3d c0 3c 4b 24 1d 0f 85 78 + * Interface - If the current profile has a name, display it in the title bar @@ -98,6 +148,9 @@ Before 1.2: - hide internal stuff in ProfileDescendant +- possibly add dependency on glib 2.8 if it is released at that point. + (g_file_replace()) + Later: - Find out how to hack around gtk+ bug causing multiple double clicks diff --git a/sfile.c b/sfile.c index d91d5c6..67e3936 100644 --- a/sfile.c +++ b/sfile.c @@ -402,7 +402,9 @@ gpointer sformat_new_pointer (const char *name, SType *target_type) { - return sformat_new_value (name, TYPE_POINTER); + Fragment *fragment = sformat_new_value (name, TYPE_POINTER); + /* FIXME: store the target type in the fragment */ + return fragment; } gpointer @@ -1442,7 +1444,7 @@ disaster (int status) case BZ_OUTBUFF_FULL: error = "BZ_OUTBUFF_FULL"; break; - + default: error = "Unknown error"; break; @@ -1451,8 +1453,6 @@ disaster (int status) g_error ("Failed to compress file: %s\n", error); } -#include - static void bz2_compress (const guchar *input, int input_length, guchar **output, int *output_length) @@ -1565,9 +1565,6 @@ sfile_output_save (SFileOutput *sfile, g_free (compressed); - /* FIXME, cut-and-paste the g_file_write() implementation - * as long as it isn't in glib - */ retval = file_replace (filename, output->str, - 1, err); g_string_free (output, TRUE); -- 2.7.4