2010/2/1 Luiz Capitulino <lcapitul...@redhat.com>: > On Mon, 1 Feb 2010 20:36:22 +0800 > Roy Tam <roy...@gmail.com> wrote: > >> 2010/2/1 Luiz Capitulino <lcapitul...@redhat.com>: >> > On Sun, 31 Jan 2010 16:28:42 +0800 >> > Roy Tam <roy...@gmail.com> wrote: >> > >> >> Dear all, >> >> >> >> In latest git revision, when guest OS restarts or system_reset command >> >> issues from monitor console, it asserts failed: >> >> Assertion failed: obj != NULL, file C:/msys/home/User/qemu/monitor.c, >> >> line 338 >> > >> > Hm, I can't reproduce this on Linux. Can you, please provide a backtrace >> > and >> > your git HEAD? >> > >> >> my environment: >> Windows XP SP3 >> gcc version 3.4.5 (mingw-vista special r3) >> GNU Binutils 2.19.1 >> GNU Make 3.81 >> >> QEMU git rev 059bca46bbfd7f16cd2ccca631b91334e08d9abb >> config: ./configure --target-list="i386-softmmu x86_64-softmmu >> mips64el-softmmu" --audio-drv-list=sdl >> --audio-card-list=ac97,sb16,adlib --disable-linux-aio > > Still no fun. It's possible that there's something windows-specific > that makes qobject_from_jsonf() return NULL. > > Without a backtrace my only option is to install windows on > some machine here and try to reproduce the problem, but this will take > some time. >
gdb step-in trace: (gdb) run Starting program: C:\msys\home\User\qemu\i386-softmmu/qemu.exe -L ../pc-bios/ [New Thread 776.0xbcc] [New Thread 776.0xa30] Breakpoint 1, monitor_protocol_event (event=???, data=???) at C:/msys/home/User/qemu/monitor.c:331 331 err = qemu_gettimeofday(&tv); (gdb) next 386 qmp = qdict_new(); (gdb) 331 err = qemu_gettimeofday(&tv); (gdb) qemu_gettimeofday (tp=???) at osdep.c:169 169 { (gdb) 175 if(tp) (gdb) 177 GetSystemTimeAsFileTime (&_now.ft); (gdb) 0x005e671c in getsystemtimeasfilet...@4 () (gdb) Single stepping until exit from function getsystemtimeasfilet...@4, which has no line number information. 0x7c8017e9 in KERNEL32!GetSystemTimeAsFileTime () from C:\WINDOWS\system32\kernel32.dll (gdb) Single stepping until exit from function KERNEL32!GetSystemTimeAsFileTime, which has no line number information. qemu_gettimeofday (tp=???) at osdep.c:178 178 tp->tv_usec=(long)((_now.ns100 / 10ULL) % 1000000ULL ); (gdb) 0x005e0db4 in __udivdi3 () (gdb) Single stepping until exit from function __udivdi3, which has no line number information. 0x005e0ee4 in __umoddi3 () (gdb) Single stepping until exit from function __umoddi3, which has no line number information. qemu_gettimeofday (tp=???) at osdep.c:179 179 tp->tv_sec= (long)((_now.ns100 - _W32_FT_OFFSET) / 10000000ULL); (gdb) 0x005e0db4 in __udivdi3 () (gdb) Single stepping until exit from function __udivdi3, which has no line number information. qemu_gettimeofday (tp=???) at osdep.c:184 184 } (gdb) monitor_protocol_event (event=???, data=???) at C:/msys/home/User/qemu/monitor.c:332 332 if (err < 0) (gdb) 335 obj = qobject_from_jsonf("{ 'seconds': %" PRId64 ", " (gdb) qobject_from_jsonf (string=???) at qjson.c:57 57 { (gdb) 39 JSONParsingState state = {}; (gdb) 57 { (gdb) 39 JSONParsingState state = {}; (gdb) 57 { (gdb) 61 va_start(ap, string); (gdb) 39 JSONParsingState state = {}; (gdb) 61 va_start(ap, string); (gdb) 41 state.ap = ap; (gdb) 39 JSONParsingState state = {}; (gdb) 41 state.ap = ap; (gdb) 43 json_message_parser_init(&state.parser, parse_json); (gdb) json_message_parser_init (parser=???, func=???) at json-streamer.c:64 64 { (gdb) 65 parser->emit = func; (gdb) 66 parser->brace_count = 0; (gdb) 65 parser->emit = func; (gdb) 67 parser->bracket_count = 0; (gdb) 68 parser->tokens = qlist_new(); (gdb) qlist_new () at qlist.c:30 30 { (gdb) 33 qlist = qemu_malloc(sizeof(*qlist)); (gdb) qemu_malloc (size=???) at qemu-malloc.c:55 55 { (gdb) 56 if (!size && !allow_zero_malloc()) { (gdb) 28 { (gdb) 0x005e654c in malloc () (gdb) Single stepping until exit from function malloc, which has no line number information. 0x77bfc407 in msvcrt!malloc () from C:\WINDOWS\system32\msvcrt.dll (gdb) Single stepping until exit from function msvcrt!malloc, which has no line number information. 0x77bfc3d4 in msvcrt!free () from C:\WINDOWS\system32\msvcrt.dll (gdb) Single stepping until exit from function msvcrt!free, which has no line number information. 0x77c07420 in strerror () from C:\WINDOWS\system32\msvcrt.dll (gdb) Single stepping until exit from function strerror, which has no line number information. 0x77bfc2f5 in msvcrt!free () from C:\WINDOWS\system32\msvcrt.dll (gdb) Single stepping until exit from function msvcrt!free, which has no line number information. 0x7c9300c4 in ntdll!RtlAppendStringToString () from C:\WINDOWS\system32\ntdll.dll (gdb) Single stepping until exit from function ntdll!RtlAppendStringToString, which has no line number information. 0x7c92e8cb in strchr () from C:\WINDOWS\system32\ntdll.dll (gdb) Single stepping until exit from function strchr, which has no line number information. 0x7c9300d3 in ntdll!RtlAppendStringToString () from C:\WINDOWS\system32\ntdll.dll (gdb) Single stepping until exit from function ntdll!RtlAppendStringToString, which has no line number information. 0x7c938f15 in ntdll!RtlDuplicateUnicodeString () from C:\WINDOWS\system32\ntdll.dll (gdb) Single stepping until exit from function ntdll!RtlDuplicateUnicodeString, which has no line number information. Assertion failed: obj != NULL, file C:/msys/home/User/qemu/monitor.c, line 338 This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. Program exited with code 03. (gdb)