summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorKarel Klic <kklic@redhat.com>2010-10-14 16:36:12 +0200
committerKarel Klic <kklic@redhat.com>2010-10-14 16:36:12 +0200
commit43c74514d0faa39d343a26f39f31ec7689334b7b (patch)
tree700b3a6a06e3dc02ea94e558cdf46f25144915de /tests
parent704a86ddf32df845f7eca34bcb727e398dce8fa2 (diff)
downloadabrt-43c74514d0faa39d343a26f39f31ec7689334b7b.tar.gz
abrt-43c74514d0faa39d343a26f39f31ec7689334b7b.tar.xz
abrt-43c74514d0faa39d343a26f39f31ec7689334b7b.zip
btparser integration: merge it into ABRT's directory hierarchy
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am55
-rw-r--r--tests/atlocal.in15
-rw-r--r--tests/btparser/Makefile.am15
-rw-r--r--tests/btparser/backtrace.at152
-rw-r--r--tests/btparser/backtraces/621492.bt2668
-rw-r--r--tests/btparser/frame.at615
-rw-r--r--tests/btparser/strbuf.at73
-rw-r--r--tests/btparser/thread.at349
-rw-r--r--tests/btparser/utils.at442
-rw-r--r--tests/local.at27
-rw-r--r--tests/testsuite.at8
11 files changed, 4419 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
new file mode 100644
index 00000000..30569d48
--- /dev/null
+++ b/tests/Makefile.am
@@ -0,0 +1,55 @@
+SUBDIRS = btparser
+
+## ------------ ##
+## package.m4. ##
+## ------------ ##
+
+package.m4: Makefile.in
+ { \
+ echo '# Signature of the current package.' && \
+ echo 'm4_define([AT_PACKAGE_NAME],' && \
+ echo ' [@PACKAGE_NAME@])' && \
+ echo 'm4_define([AT_PACKAGE_TARNAME],' && \
+ echo ' [@PACKAGE_TARNAME@])' && \
+ echo 'm4_define([AT_PACKAGE_VERSION],' && \
+ echo ' [@PACKAGE_VERSION@])' && \
+ echo 'm4_define([AT_PACKAGE_STRING],' && \
+ echo ' [@PACKAGE_STRING@])' && \
+ echo 'm4_define([AT_PACKAGE_BUGREPORT],' && \
+ echo ' [@PACKAGE_BUGREPORT@])'; \
+ echo 'm4_define([AT_PACKAGE_URL],' && \
+ echo ' [@PACKAGE_URL@])'; \
+ } >'package.m4'
+EXTRA_DIST = package.m4
+
+## ------------ ##
+## Test suite. ##
+## ------------ ##
+
+TESTSUITE_AT = \
+ local.at \
+ testsuite.at
+
+EXTRA_DIST += $(TESTSUITE_AT)
+TESTSUITE = $(srcdir)/testsuite
+MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE)
+check_DATA = atconfig atlocal $(TESTSUITE)
+DISTCLEANFILES = atconfig
+EXTRA_DIST += atlocal.in
+
+atconfig: $(top_builddir)/config.status
+ (cd ${top_builddir} && ./config.status ${subdir}/atconfig)
+
+check-local: $(check_DATA)
+ $(SHELL) '$(TESTSUITE)' $(TESTSUITEFLAGS) ||:
+
+installcheck-local: $(check_DATA)
+ $(SHELL) '$(TESTSUITE)' AUTOTEST_PATH='$(bindir)' $(TESTSUITEFLAGS) ||:
+
+clean-local:
+ test ! -f '$(TESTSUITE)' || $(SHELL) '$(TESTSUITE)' --clean
+
+AUTOTEST = $(AUTOM4TE) --language=autotest
+$(TESTSUITE): $(TESTSUITE_AT) $(srcdir)/package.m4
+ $(AUTOTEST) -I '$(srcdir)' -o $@.tmp $@.at
+ mv $@.tmp $@
diff --git a/tests/atlocal.in b/tests/atlocal.in
new file mode 100644
index 00000000..068214b2
--- /dev/null
+++ b/tests/atlocal.in
@@ -0,0 +1,15 @@
+# @configure_input@ -*- shell-script -*-
+# Configurable variable values for btparser test suite.
+
+# We need a C compiler.
+CC='@CC@'
+LIBTOOL="$abs_top_builddir/libtool"
+
+# We want no optimization.
+CFLAGS="@O0CFLAGS@ -I$abs_top_builddir -D_GNU_SOURCE"
+
+# Are special link options needed?
+LDFLAGS="@LDFLAGS@ $abs_top_builddir/src/libbtparser.la"
+
+# Are special libraries needed?
+LIBS="@LIBS@"
diff --git a/tests/btparser/Makefile.am b/tests/btparser/Makefile.am
new file mode 100644
index 00000000..57805452
--- /dev/null
+++ b/tests/btparser/Makefile.am
@@ -0,0 +1,15 @@
+EXTRA_DIST = backtraces
+
+## ------------ ##
+## Test suite. ##
+## ------------ ##
+
+TESTSUITE_AT = \
+ utils.at \
+ strbuf.at \
+ frame.at \
+ thread.at \
+ backtrace.at
+
+EXTRA_DIST += $(TESTSUITE_AT)
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/tests/btparser/backtrace.at b/tests/btparser/backtrace.at
new file mode 100644
index 00000000..057d2e63
--- /dev/null
+++ b/tests/btparser/backtrace.at
@@ -0,0 +1,152 @@
+# Checking the btparser. -*- Autotest -*-
+
+AT_BANNER([Backtraces])
+
+## --------------------------------------- ##
+## btp_backtrace_remove_threads_except_one ##
+## --------------------------------------- ##
+AT_TESTFUN([btp_backtrace_remove_threads_except_one],
+[[
+#include <lib/backtrace.h>
+#include <lib/thread.h>
+#include <assert.h>
+#include <stdlib.h>
+
+int main(void)
+{
+ /* Delete the thread except the middle one. */
+ struct btp_thread *thread2 = btp_thread_new();
+ struct btp_thread *thread1 = btp_thread_new();
+ thread1->next = thread2;
+ struct btp_thread *thread0 = btp_thread_new();
+ thread0->next = thread1;
+ struct btp_backtrace *backtrace = btp_backtrace_new();
+ backtrace->threads = thread0;
+ btp_backtrace_remove_threads_except_one(backtrace, thread1);
+ assert(backtrace->threads == thread1);
+ assert(NULL == backtrace->threads->next);
+
+ /* Delete all threads except one when there is only one. */
+ btp_backtrace_remove_threads_except_one(backtrace, thread1);
+ assert(backtrace->threads == thread1);
+ assert(NULL == backtrace->threads->next);
+
+ /* Delete all threads except the first one. */
+ thread0 = btp_thread_new();
+ backtrace->threads = thread0;
+ thread0->next = thread1; // already exists
+ thread2 = btp_thread_new();
+ thread1->next = thread2;
+ btp_backtrace_remove_threads_except_one(backtrace, thread0);
+ assert(backtrace->threads == thread0);
+ assert(NULL == backtrace->threads->next);
+
+ /* Delete all threads except the last one. */
+ thread1 = btp_thread_new();
+ thread0->next = thread1;
+ thread2 = btp_thread_new();
+ thread1->next = thread2;
+ btp_backtrace_remove_threads_except_one(backtrace, thread2);
+ assert(backtrace->threads == thread2);
+ assert(NULL == backtrace->threads->next);
+
+ btp_backtrace_free(backtrace);
+ return 0;
+}
+]])
+
+## ------------------------------- ##
+## btp_backtrace_find_crash_thread ##
+## ------------------------------- ##
+AT_TESTFUN([btp_backtrace_find_crash_thread],
+[
+#include <lib/backtrace.h>
+#include <lib/thread.h>
+#include <lib/frame.h>
+#include <lib/location.h>
+#include <lib/utils.h>
+#include <assert.h>
+
+int main(void)
+{
+ /* Load the backtrace from Red Hat Bugzilla bug #621492. */
+ struct btp_location location;
+ btp_location_init(&location);
+ char *full_input = btp_file_to_string("../../backtraces/621492.bt");
+ assert(full_input);
+ char *input = full_input;
+ struct btp_backtrace *backtrace = btp_backtrace_parse(&input, &location);
+ assert(backtrace);
+
+ /* Check that the crash thread is found. */
+ struct btp_thread *crash_thread = btp_backtrace_find_crash_thread(backtrace);
+ assert(crash_thread);
+ assert(0 == strcmp(crash_thread->frames->function_name, "raise"));
+ btp_backtrace_free(backtrace);
+ return 0;
+}
+])
+
+## ------------------------------- ##
+## btp_backtrace_limit_frame_depth ##
+## ------------------------------- ##
+AT_TESTFUN([btp_backtrace_limit_frame_depth],
+[[
+#include <lib/backtrace.h>
+#include <lib/thread.h>
+#include <lib/location.h>
+#include <lib/utils.h>
+#include <assert.h>
+
+int main(void)
+{
+ /* Load the backtrace from Red Hat Bugzilla bug #621492. */
+ struct btp_location location;
+ btp_location_init(&location);
+ char *full_input = btp_file_to_string("../../backtraces/621492.bt");
+ assert(full_input);
+ char *input = full_input;
+ struct btp_backtrace *backtrace = btp_backtrace_parse(&input, &location);
+ assert(backtrace);
+
+ /* Check the frame depth limit. */
+ btp_backtrace_limit_frame_depth(backtrace, 5);
+ assert(11 == btp_backtrace_get_thread_count(backtrace));
+ struct btp_thread *thread = backtrace->threads;
+ while (thread)
+ {
+ assert(5 == btp_thread_get_frame_count(thread));
+ thread = thread->next;
+ }
+
+ btp_backtrace_free(backtrace);
+ return 0;
+}
+]])
+
+## ----------------------------- ##
+## btp_backtrace_quality_complex ##
+## ----------------------------- ##
+AT_TESTFUN([btp_backtrace_quality_complex],
+[[
+#include <lib/backtrace.h>
+#include <lib/thread.h>
+#include <lib/location.h>
+#include <lib/utils.h>
+#include <assert.h>
+
+int main(void)
+{
+ /* Load the backtrace from Red Hat Bugzilla bug #621492. */
+ struct btp_location location;
+ btp_location_init(&location);
+ char *full_input = btp_file_to_string("../../backtraces/621492.bt");
+ assert(full_input);
+ char *input = full_input;
+ struct btp_backtrace *backtrace = btp_backtrace_parse(&input, &location);
+ assert(backtrace);
+ assert(1.0f == btp_backtrace_quality_complex(backtrace));
+ btp_backtrace_free(backtrace);
+ return 0;
+}
+]])
diff --git a/tests/btparser/backtraces/621492.bt b/tests/btparser/backtraces/621492.bt
new file mode 100644
index 00000000..f1e5404e
--- /dev/null
+++ b/tests/btparser/backtraces/621492.bt
@@ -0,0 +1,2668 @@
+[New Thread 19947]
+[New Thread 19948]
+[New Thread 19949]
+[New Thread 19955]
+[New Thread 19962]
+[New Thread 19963]
+[New Thread 21889]
+[New Thread 19950]
+[New Thread 19951]
+[New Thread 19961]
+[New Thread 19965]
+Core was generated by `/usr/lib64/thunderbird-3.1/thunderbird-bin'.
+Program terminated with signal 11, Segmentation fault.
+#0 0x0000003848c0f30b in raise (sig=<value optimized out>)
+ at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:42
+42 ../nptl/sysdeps/unix/sysv/linux/pt-raise.c: No such file or directory.
+ in ../nptl/sysdeps/unix/sysv/linux/pt-raise.c
+
+Thread 11 (Thread 19965):
+#0 0x00000038484d7de3 in __poll (fds=<value optimized out>,
+ nfds=<value optimized out>, timeout=<value optimized out>)
+ at ../sysdeps/unix/sysv/linux/poll.c:87
+ __arg2 = 2
+ _a3 = -1
+ _a1 = 140258994637568
+ resultvar = <value optimized out>
+ __arg3 = 72197854784913407
+ __arg1 = 140258994637568
+ _a2 = 2
+ resultvar = <value optimized out>
+ oldtype = 0
+ result = <value optimized out>
+#1 0x00007f90879e4c0f in poll_func (ufds=0x7f90978d4b00, nfds=2, timeout=-1,
+ userdata=0x7f908807ec70) at pulse/thread-mainloop.c:75
+ mutex = 0x7f908807ec70
+ r = -1752347904
+ __func__ = "poll_func"
+ __PRETTY_FUNCTION__ = "poll_func"
+#2 0x00007f90879d4ae6 in pa_mainloop_poll (m=0x7f9088088200)
+ at pulse/mainloop.c:879
+ __func__ = "pa_mainloop_poll"
+ __PRETTY_FUNCTION__ = "pa_mainloop_poll"
+#3 0x00007f90879d5ec9 in pa_mainloop_iterate (m=0x7f9088088200,
+ block=<value optimized out>, retval=0x0) at pulse/mainloop.c:961
+ r = 0
+ __func__ = "pa_mainloop_iterate"
+ __PRETTY_FUNCTION__ = "pa_mainloop_iterate"
+#4 0x00007f90879d5f80 in pa_mainloop_run (m=0x7f9088088200, retval=0x0)
+ at pulse/mainloop.c:979
+ r = <value optimized out>
+#5 0x00007f90879e4a0b in thread (userdata=0x7f908807ec10)
+ at pulse/thread-mainloop.c:94
+ mask = {__val = {18446744067267100671,
+ 18446744073709551615 <repeats 15 times>}}
+#6 0x00007f90877a1878 in internal_thread_func (userdata=0x7f9088049380)
+ at pulsecore/thread-posix.c:72
+ t = 0x7f9088049380
+ __func__ = "internal_thread_func"
+ __PRETTY_FUNCTION__ = "internal_thread_func"
+#7 0x0000003848c07761 in start_thread (arg=0x7f9082edf710)
+ at pthread_create.c:301
+ __res = <value optimized out>
+ pd = 0x7f9082edf710
+ now = <value optimized out>
+ unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140258648651536,
+ -555364893392092215, 241738781088, 140258648652240, 0, 3,
+ 534792876637569993, -560026272429489207},
+ mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},
+ data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
+ not_first_call = <value optimized out>
+ sp = <value optimized out>
+ freesize = <value optimized out>
+#8 0x00000038484e14ed in clone ()
+ at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
+No locals.
+
+Thread 10 (Thread 19961):
+#0 pthread_cond_wait@@GLIBC_2.3.2 ()
+ at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
+No locals.
+#1 0x0000003858c23cce in PR_WaitCondVar (cvar=0x7f9097c6f600,
+ timeout=4294967295)
+ at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:417
+ rv = <value optimized out>
+ thred = 0x7f908baa5780
+#2 0x00007f908aa93fd5 in nsSSLThread::Run (this=0x7f9097c6f5c0)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/security/manager/ssl/src/nsSSLThread.cpp:980
+ threadLock = {<nsAutoLockBase> = {<No data fields>},
+ mLock = 0x7f9097c80a80, mLocked = 1}
+ pending_work = 0
+ busy_socket_ssl_state = <value optimized out>
+ needToSetPollableEvent = <value optimized out>
+ socketToDestroy = 0x0
+#3 0x0000003858c29843 in _pt_root (arg=0x7f908baa5780)
+ at ../../../mozilla/nsprpub/pr/src/pthreads/ptthread.c:228
+ thred = 0x7f908baa5780
+ detached = 0
+#4 0x0000003848c07761 in start_thread (arg=0x7f909932a710)
+ at pthread_create.c:301
+ __res = <value optimized out>
+ pd = 0x7f909932a710
+ now = <value optimized out>
+ unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140259022251792,
+ -555364893392092215, 140734046858640, 140259022252496, 0, 3,
+ 534733149211739081, -560026272429489207},
+ mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},
+ data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
+ not_first_call = <value optimized out>
+ sp = <value optimized out>
+ freesize = <value optimized out>
+#5 0x00000038484e14ed in clone ()
+ at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
+No locals.
+
+Thread 9 (Thread 19951):
+#0 pthread_cond_timedwait@@GLIBC_2.3.2 ()
+ at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:212
+No locals.
+#1 0x0000003858c23049 in pt_TimedWait (cv=0x7f90a82fbd88, ml=0x7f90a82f7320,
+ timeout=658) at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:292
+ rv = <value optimized out>
+ now = {tv_sec = 1281000337, tv_usec = 584686}
+ tmo = {tv_sec = 1281000338, tv_nsec = 242686000}
+ ticks = <value optimized out>
+#2 0x0000003858c23c2c in PR_WaitCondVar (cvar=0x7f90a82fbd80, timeout=658)
+ at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:419
+ rv = <value optimized out>
+ thred = 0x7f90a8212360
+#3 0x0000003139a6fbea in TimerThread::Run (this=0x7f90a8222440)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/xpcom/threads/TimerThread.cpp:344
+ waitFor = <value optimized out>
+ lock = {<nsAutoLockBase> = {<No data fields>},
+ mLock = 0x7f90a82f7320, mLocked = 1}
+#4 0x0000003139a6c765 in nsThread::ProcessNextEvent (this=0x7f90a0a9caa0,
+ mayWait=1, result=0x7f909bbfebdc)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/xpcom/threads/nsThread.cpp:527
+ event = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f90a8222440}, <No data fields>}
+ notifyGlobalObserver = 1
+ obs = {<nsCOMPtr_base> = {mRawPtr = 0x0}, <No data fields>}
+ rv = 0
+#5 0x0000003139a3db88 in NS_ProcessNextEvent_P (
+ thread=<value optimized out>, mayWait=<value optimized out>)
+ at nsThreadUtils.cpp:250
+ val = 1
+#6 0x0000003139a6ce3b in nsThread::ThreadFunc (arg=0x7f90a0a9caa0)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/xpcom/threads/nsThread.cpp:254
+ self = 0x7f90a0a9caa0
+ event = {<nsCOMPtr_base> = {mRawPtr = 0x0}, <No data fields>}
+#7 0x0000003858c29843 in _pt_root (arg=0x7f90a8212360)
+ at ../../../mozilla/nsprpub/pr/src/pthreads/ptthread.c:228
+ thred = 0x7f90a8212360
+ detached = 0
+#8 0x0000003848c07761 in start_thread (arg=0x7f909bbff710)
+ at pthread_create.c:301
+ __res = <value optimized out>
+ pd = 0x7f909bbff710
+ now = <value optimized out>
+ unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140259065067280,
+ -555364893392092215, 140734046875760, 140259065067984, 0, 3,
+ 534738605430817737, -560026272429489207},
+ mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},
+ data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
+ not_first_call = <value optimized out>
+ sp = <value optimized out>
+ freesize = <value optimized out>
+#9 0x00000038484e14ed in clone ()
+ at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
+No locals.
+
+Thread 8 (Thread 19950):
+#0 pthread_cond_timedwait@@GLIBC_2.3.2 ()
+ at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:212
+No locals.
+#1 0x0000003858c23049 in pt_TimedWait (cv=0x7f90a0ef59c8, ml=0x7f90a0a16e20,
+ timeout=0) at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:292
+ rv = <value optimized out>
+ now = {tv_sec = 1281000336, tv_usec = 939599}
+ tmo = {tv_sec = 1281000337, tv_nsec = 939599000}
+ ticks = <value optimized out>
+#2 0x0000003858c23c2c in PR_WaitCondVar (cvar=0x7f90a0ef59c0, timeout=1000)
+ at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:419
+ rv = <value optimized out>
+ thred = 0x7f90a8211ae0
+#3 0x00007f909e7f6657 in XPCJSRuntime::WatchdogMain (arg=0x7f90a0a2ac00)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/js/src/xpconnect/src/xpcjsruntime.cpp:808
+ cx = <value optimized out>
+ self = 0x7f90a0a2ac00
+ lock = {mJSRuntime = 0x7f90a0ee0000}
+#4 0x0000003858c29843 in _pt_root (arg=0x7f90a8211ae0)
+ at ../../../mozilla/nsprpub/pr/src/pthreads/ptthread.c:228
+ thred = 0x7f90a8211ae0
+ detached = 1
+#5 0x0000003848c07761 in start_thread (arg=0x7f909ddbd710)
+ at pthread_create.c:301
+ __res = <value optimized out>
+ pd = 0x7f909ddbd710
+ now = <value optimized out>
+ unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140259100448528,
+ -555364893392092215, 140734046874544, 140259100449232, 0, 3,
+ 534742145557611465, -560026272429489207},
+ mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},
+ data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
+ not_first_call = <value optimized out>
+ sp = <value optimized out>
+ freesize = <value optimized out>
+#6 0x00000038484e14ed in clone ()
+ at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
+No locals.
+
+Thread 7 (Thread 21889):
+#0 pthread_cond_timedwait@@GLIBC_2.3.2 ()
+ at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:212
+No locals.
+#1 0x0000003858c23049 in pt_TimedWait (cv=0x7f90a0e68e88, ml=0x7f90a0a168a0,
+ timeout=0) at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:292
+ rv = <value optimized out>
+ now = {tv_sec = 1281000208, tv_usec = 213698}
+ tmo = {tv_sec = 1281000508, tv_nsec = 213698000}
+ ticks = <value optimized out>
+#2 0x0000003858c23c2c in PR_WaitCondVar (cvar=0x7f90a0e68e80, timeout=300000)
+ at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:419
+ rv = <value optimized out>
+ thred = 0x7f9081cd1040
+#3 0x00007f909fd4f15f in nsHostResolver::GetHostToLookup (
+ this=0x7f90a0e67700, result=0x7f9089ad3bf8)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/netwerk/dns/src/nsHostResolver.cpp:773
+ epoch = 1099954005
+ timeout = 300000
+ timedOut = <value optimized out>
+ now = <value optimized out>
+ lock = {<nsAutoLockBase> = {<No data fields>},
+ mLock = 0x7f90a0a168a0, mLocked = 1}
+#4 0x00007f909fd4fa24 in nsHostResolver::ThreadFunc (arg=0x7f90a0e67700)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/netwerk/dns/src/nsHostResolver.cpp:877
+ rs = {mLastReset = 1099039833}
+ resolver = 0x7f90a0e67700
+ rec = 0x7f9088b50f00
+ ai = <value optimized out>
+#5 0x0000003858c29843 in _pt_root (arg=0x7f9081cd1040)
+ at ../../../mozilla/nsprpub/pr/src/pthreads/ptthread.c:228
+ thred = 0x7f9081cd1040
+ detached = 1
+#6 0x0000003848c07761 in start_thread (arg=0x7f9089ad4710)
+ at pthread_create.c:301
+ __res = <value optimized out>
+ pd = 0x7f9089ad4710
+ now = <value optimized out>
+ unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140258761852688,
+ -555364893392092215, 140259133114112, 140258761853392, 0, 3,
+ 534769230158250953, -560026272429489207},
+ mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},
+ data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
+ not_first_call = <value optimized out>
+ sp = <value optimized out>
+ freesize = <value optimized out>
+#7 0x00000038484e14ed in clone ()
+ at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
+No locals.
+
+Thread 6 (Thread 19963):
+#0 pthread_cond_wait@@GLIBC_2.3.2 ()
+ at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
+No locals.
+#1 0x0000003858c23cce in PR_WaitCondVar (cvar=0x7f9097c6f680,
+ timeout=4294967295)
+ at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:417
+ rv = <value optimized out>
+ thred = 0x7f908baa59a0
+#2 0x0000003858c23d46 in PR_Wait (mon=0x7f908ba8f570,
+ timeout=<value optimized out>)
+ at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:601
+ rv = -512
+ saved_entries = 1
+ saved_owner = 140258929596176
+#3 0x0000003139a6bb17 in Wait (this=0x7f908af9b980, mayWait=1,
+ result=0x7f9093accb70) at ../../dist/include/nsAutoLock.h:340
+No locals.
+#4 nsEventQueue::GetEvent (this=0x7f908af9b980, mayWait=1,
+ result=0x7f9093accb70)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/xpcom/threads/nsEventQueue.cpp:85
+ mon = {<nsAutoLockBase> = {<No data fields>},
+ mMonitor = 0x7f908ba8f570, mLockCount = 1}
+#5 0x0000003139a6c748 in GetEvent (this=0x7f908af9b940, mayWait=1,
+ result=0x7f9093accbdc)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/xpcom/threads/nsThread.h:112
+No locals.
+#6 nsThread::ProcessNextEvent (this=0x7f908af9b940, mayWait=1,
+ result=0x7f9093accbdc)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/xpcom/threads/nsThread.cpp:521
+ event = {<nsCOMPtr_base> = {mRawPtr = 0x0}, <No data fields>}
+ notifyGlobalObserver = 1
+ obs = {<nsCOMPtr_base> = {mRawPtr = 0x0}, <No data fields>}
+ rv = 0
+#7 0x0000003139a3db88 in NS_ProcessNextEvent_P (
+ thread=<value optimized out>, mayWait=<value optimized out>)
+ at nsThreadUtils.cpp:250
+ val = 1
+#8 0x0000003139a6ce3b in nsThread::ThreadFunc (arg=0x7f908af9b940)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/xpcom/threads/nsThread.cpp:254
+ self = 0x7f908af9b940
+ event = {<nsCOMPtr_base> = {mRawPtr = 0x0}, <No data fields>}
+#9 0x0000003858c29843 in _pt_root (arg=0x7f908baa59a0)
+ at ../../../mozilla/nsprpub/pr/src/pthreads/ptthread.c:228
+ thred = 0x7f908baa59a0
+ detached = 0
+#10 0x0000003848c07761 in start_thread (arg=0x7f9093acd710)
+ at pthread_create.c:301
+ __res = <value optimized out>
+ pd = 0x7f9093acd710
+ now = <value optimized out>
+ unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140258929596176,
+ -555364893392092215, 140734046859216, 140258929596880, 0, 3,
+ 534756052661715913, -560026272429489207},
+ mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},
+ data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
+ not_first_call = <value optimized out>
+ sp = <value optimized out>
+ freesize = <value optimized out>
+#11 0x00000038484e14ed in clone ()
+ at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
+No locals.
+
+Thread 5 (Thread 19962):
+#0 pthread_cond_wait@@GLIBC_2.3.2 ()
+ at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
+No locals.
+#1 0x0000003858c23cce in PR_WaitCondVar (cvar=0x7f9097c6f640,
+ timeout=4294967295)
+ at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:417
+ rv = <value optimized out>
+ thred = 0x7f908baa5890
+#2 0x00007f908aa94de2 in nsCertVerificationThread::Run (this=0x7f908af9b8b0)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/security/manager/ssl/src/nsCertVerificationThread.cpp:138
+ threadLock = {<nsAutoLockBase> = {<No data fields>},
+ mLock = 0x7f9097c80b30, mLocked = 1}
+ job = 0x0
+#3 0x0000003858c29843 in _pt_root (arg=0x7f908baa5890)
+ at ../../../mozilla/nsprpub/pr/src/pthreads/ptthread.c:228
+ thred = 0x7f908baa5890
+ detached = 0
+#4 0x0000003848c07761 in start_thread (arg=0x7f90926cb710)
+ at pthread_create.c:301
+ __res = <value optimized out>
+ pd = 0x7f90926cb710
+ now = <value optimized out>
+ unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140258908616464,
+ -555364893392092215, 140734046858640, 140258908617168, 0, 3,
+ 534756599196304329, -560026272429489207},
+ mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},
+ data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
+ not_first_call = <value optimized out>
+ sp = <value optimized out>
+ freesize = <value optimized out>
+#5 0x00000038484e14ed in clone ()
+ at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
+No locals.
+
+Thread 4 (Thread 19955):
+#0 pthread_cond_wait@@GLIBC_2.3.2 ()
+ at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
+No locals.
+#1 0x0000003858c23cce in PR_WaitCondVar (cvar=0x7f90983d9b40,
+ timeout=4294967295)
+ at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:417
+ rv = <value optimized out>
+ thred = 0x7f9098866120
+#2 0x0000003858c23d46 in PR_Wait (mon=0x7f9097d48de0,
+ timeout=<value optimized out>)
+ at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:601
+ rv = -512
+ saved_entries = 1
+ saved_owner = 140258919106320
+#3 0x0000003139a6bb17 in Wait (this=0x7f9097b69420, mayWait=1,
+ result=0x7f90930cbb70) at ../../dist/include/nsAutoLock.h:340
+No locals.
+#4 nsEventQueue::GetEvent (this=0x7f9097b69420, mayWait=1,
+ result=0x7f90930cbb70)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/xpcom/threads/nsEventQueue.cpp:85
+ mon = {<nsAutoLockBase> = {<No data fields>},
+ mMonitor = 0x7f9097d48de0, mLockCount = 1}
+#5 0x0000003139a6c748 in GetEvent (this=0x7f9097b693e0, mayWait=1,
+ result=0x7f90930cbbdc)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/xpcom/threads/nsThread.h:112
+No locals.
+#6 nsThread::ProcessNextEvent (this=0x7f9097b693e0, mayWait=1,
+ result=0x7f90930cbbdc)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/xpcom/threads/nsThread.cpp:521
+ event = {<nsCOMPtr_base> = {mRawPtr = 0x0}, <No data fields>}
+ notifyGlobalObserver = 1
+ obs = {<nsCOMPtr_base> = {mRawPtr = 0x0}, <No data fields>}
+ rv = 0
+#7 0x0000003139a3db88 in NS_ProcessNextEvent_P (
+ thread=<value optimized out>, mayWait=<value optimized out>)
+ at nsThreadUtils.cpp:250
+ val = 1
+#8 0x0000003139a6ce3b in nsThread::ThreadFunc (arg=0x7f9097b693e0)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/xpcom/threads/nsThread.cpp:254
+ self = 0x7f9097b693e0
+ event = {<nsCOMPtr_base> = {mRawPtr = 0x0}, <No data fields>}
+#9 0x0000003858c29843 in _pt_root (arg=0x7f9098866120)
+ at ../../../mozilla/nsprpub/pr/src/pthreads/ptthread.c:228
+ thred = 0x7f9098866120
+ detached = 0
+#10 0x0000003848c07761 in start_thread (arg=0x7f90930cc710)
+ at pthread_create.c:301
+ __res = <value optimized out>
+ pd = 0x7f90930cc710
+ now = <value optimized out>
+ unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140258919106320,
+ -555364893392092215, 140734046849712, 140258919107024, 0, 3,
+ 534754674514084809, -560026272429489207},
+ mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},
+ data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
+ not_first_call = <value optimized out>
+ sp = <value optimized out>
+ freesize = <value optimized out>
+#11 0x00000038484e14ed in clone ()
+ at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
+No locals.
+
+Thread 3 (Thread 19949):
+#0 pthread_cond_wait@@GLIBC_2.3.2 ()
+ at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
+No locals.
+#1 0x0000003858c23cce in PR_WaitCondVar (cvar=0x7f90a0ef5980,
+ timeout=4294967295)
+ at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:417
+ rv = <value optimized out>
+ thred = 0x7f90a82118c0
+#2 0x0000003b8ae92582 in JSBackgroundThread::work (this=0x7f90a0efb490)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/js/src/jstask.cpp:91
+ t = <value optimized out>
+#3 0x0000003858c29843 in _pt_root (arg=0x7f90a82118c0)
+ at ../../../mozilla/nsprpub/pr/src/pthreads/ptthread.c:228
+ thred = 0x7f90a82118c0
+ detached = 0
+#4 0x0000003848c07761 in start_thread (arg=0x7f909e7be710)
+ at pthread_create.c:301
+ __res = <value optimized out>
+ pd = 0x7f909e7be710
+ now = <value optimized out>
+ unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140259110938384,
+ -555364893392092215, 140734046874480, 140259110939088, 0, 3,
+ 534747917456786377, -560026272429489207},
+ mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},
+ data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
+ not_first_call = <value optimized out>
+ sp = <value optimized out>
+ freesize = <value optimized out>
+#5 0x00000038484e14ed in clone ()
+ at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
+No locals.
+
+Thread 2 (Thread 19948):
+#0 0x00000038484d7de3 in __poll (fds=<value optimized out>,
+ nfds=<value optimized out>, timeout=<value optimized out>)
+ at ../sysdeps/unix/sysv/linux/poll.c:87
+ __arg2 = 1
+ _a3 = -1
+ _a1 = 140259133114288
+ resultvar = <value optimized out>
+ __arg3 = 244813135871
+ __arg1 = 140259133114288
+ _a2 = 1
+ resultvar = <value optimized out>
+ oldtype = 0
+ result = <value optimized out>
+#1 0x0000003858c256ef in _pr_poll_with_poll (pds=0x7f90a0e929c0,
+ npds=<value optimized out>, timeout=<value optimized out>)
+ at ../../../mozilla/nsprpub/pr/src/pthreads/ptio.c:3915
+ stack_syspoll = {{fd = 12, events = 1, revents = 0}, {fd = 4217387,
+ events = 0, revents = 0}, {fd = 2144215040, events = 32656,
+ revents = 0}, {fd = 2, events = 0, revents = 0}, {
+ fd = 2144215040, events = 32656, revents = 0}, {fd = 2256,
+ events = 0, revents = 0}, {fd = 2106593272, events = 32656,
+ revents = 0}, {fd = -1472524016, events = 32656, revents = 0}, {
+ fd = -1979709176, events = 32656, revents = 0}, {fd = 1489124226,
+ events = 56, revents = 0}, {fd = 1, events = 0, revents = 0}, {
+ fd = -1748911488, events = 32656, revents = 0}, {fd = -1,
+ events = 0, revents = 0}, {fd = 0, events = 0,
+ revents = 0} <repeats 11 times>, {fd = -1963357272,
+ events = 32656, revents = 0}, {fd = 2106664992, events = 32656,
+ revents = 0}, {fd = 2121073600, events = 32656, revents = 0}, {
+ fd = 967017730, events = 49, revents = 0}, {fd = 0, events = 0,
+ revents = 0}, {fd = 4217387, events = 28, revents = 0}, {
+ fd = -1968406804, events = 32656, revents = 0}, {fd = 1489124803,
+ events = 2, revents = 0}, {fd = -1963357168, events = 32656,
+ revents = 0}, {fd = -1963357216, events = 32656, revents = 0}, {
+ fd = 105462118, events = 0, revents = 0}, {fd = 967016693,
+ events = 49, revents = 0}, {fd = -1750069088, events = 32656,
+ revents = 0}, {fd = -1472521960, events = 32656, revents = 0}, {
+ fd = -1770357160, events = 32656, revents = 0}, {fd = 967018203,
+ events = 49, revents = 0}, {fd = 0, events = 0, revents = 0}, {
+ fd = 4217387, events = 0, revents = 0}, {fd = 2121073600,
+ events = 32656, revents = 0}, {fd = 1489124812, events = 56,
+ revents = 0}, {fd = 0, events = 0, revents = 0}, {
+ fd = -1951811472, events = 32656, revents = 0}, {
+ fd = -1770357248, events = 32656, revents = 0}, {
+ fd = -1968544452, events = 32656, revents = 0}, {fd = 0,
+ events = 0, revents = 0}, {fd = 4217387, events = 0,
+ revents = 0}, {fd = 1, events = 0, revents = 0}, {fd = 4217387,
+ events = 0, revents = 0}, {fd = 0, events = 0, revents = 0}, {
+ fd = 1489124812, events = 56, revents = 0}, {fd = 3, events = 0,
+ revents = 0}, {fd = -1474197528, events = 32656, revents = 0}, {
+ fd = -1613870704, events = 32656, revents = 0}, {fd = 853538836,
+ events = 32767, revents = 0}, {fd = -1613870688, events = 32656,
+ revents = 0}, {fd = 853538836, events = 32767, revents = 0}, {
+ fd = -1613870624, events = 32656, revents = 0}, {fd = 0,
+ events = 0, revents = 0}, {fd = -1613870656, events = 32656,
+ revents = 0}, {fd = 853539004, events = 32767, revents = 0}}
+ syspoll = <value optimized out>
+ index = <value optimized out>
+ msecs = -1
+ ready = <value optimized out>
+ start = <value optimized out>
+ elapsed = <value optimized out>
+ remaining = <value optimized out>
+#2 0x00007f909fd45bbd in nsSocketTransportService::Poll (
+ this=<value optimized out>, wait=<value optimized out>,
+ interval=0x7f909fce4a4c)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/netwerk/base/src/nsSocketTransportService2.cpp:355
+ rv = <value optimized out>
+ pollList = 0x7f90a0e929c0
+ pollCount = 1
+ pollTimeout = 4294967295
+ ts = 1100069864
+ passedInterval = <value optimized out>
+#3 0x00007f909fd46078 in nsSocketTransportService::DoPollIteration (
+ this=0x7f90a0e92000, wait=1)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/netwerk/base/src/nsSocketTransportService2.cpp:660
+ i = -1
+ count = <value optimized out>
+ pollInterval = 32656
+ n = <value optimized out>
+#4 0x00007f909fd4628a in nsSocketTransportService::OnProcessNextEvent (
+ this=0x7f90a0e92000, thread=0x7f90a8243af0,
+ mayWait=<value optimized out>, depth=<value optimized out>)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/netwerk/base/src/nsSocketTransportService2.cpp:539
+ val = 0
+#5 0x0000003139a6c712 in nsThread::ProcessNextEvent (this=0x7f90a8243af0,
+ mayWait=1, result=0x7f909fce4b1c)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/xpcom/threads/nsThread.cpp:508
+ notifyGlobalObserver = 1
+ obs = {<nsCOMPtr_base> = {mRawPtr = 0x7f90a0e92010}, <No data fields>}
+ rv = <value optimized out>
+#6 0x0000003139a3db88 in NS_ProcessNextEvent_P (
+ thread=<value optimized out>, mayWait=<value optimized out>)
+ at nsThreadUtils.cpp:250
+ val = 32656
+#7 0x00007f909fd45dce in nsSocketTransportService::Run (this=0x7f90a0e92000)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/netwerk/base/src/nsSocketTransportService2.cpp:581
+ thread = 0x7f90a8243af0
+ threadInt = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f90a8243af0}, <No data fields>}
+ i = <value optimized out>
+#8 0x0000003139a6c765 in nsThread::ProcessNextEvent (this=0x7f90a8243af0,
+ mayWait=1, result=0x7f909fce4bdc)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/xpcom/threads/nsThread.cpp:527
+ event = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f90a0e92018}, <No data fields>}
+ notifyGlobalObserver = 0
+ obs = {<nsCOMPtr_base> = {mRawPtr = 0x0}, <No data fields>}
+ rv = 0
+#9 0x0000003139a3db88 in NS_ProcessNextEvent_P (
+ thread=<value optimized out>, mayWait=<value optimized out>)
+ at nsThreadUtils.cpp:250
+ val = 1
+#10 0x0000003139a6ce3b in nsThread::ThreadFunc (arg=0x7f90a8243af0)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/xpcom/threads/nsThread.cpp:254
+ self = 0x7f90a8243af0
+ event = {<nsCOMPtr_base> = {mRawPtr = 0x0}, <No data fields>}
+#11 0x0000003858c29843 in _pt_root (arg=0x7f90a82117b0)
+ at ../../../mozilla/nsprpub/pr/src/pthreads/ptthread.c:228
+ thred = 0x7f90a82117b0
+ detached = 0
+#12 0x0000003848c07761 in start_thread (arg=0x7f909fce5710)
+ at pthread_create.c:301
+ __res = <value optimized out>
+ pd = 0x7f909fce5710
+ now = <value optimized out>
+ unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140259133118224,
+ -555364893392092215, 140734046876304, 140259133118928, 0, 3,
+ 534746444819874761, -560026272429489207},
+ mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0},
+ data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
+ not_first_call = <value optimized out>
+ sp = <value optimized out>
+ freesize = <value optimized out>
+#13 0x00000038484e14ed in clone ()
+ at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
+No locals.
+
+Thread 1 (Thread 19947):
+#0 0x0000003848c0f30b in raise (sig=<value optimized out>)
+ at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:42
+ resultvar = 0
+ pid = <value optimized out>
+#1 0x0000003139e1f34e in nsProfileLock::FatalSignalHandler (signo=11,
+ info=<value optimized out>, context=<value optimized out>)
+ at nsProfileLock.cpp:213
+ unblock_sigs = {__val = {1024, 0 <repeats 15 times>}}
+ oldact = <value optimized out>
+#2 <signal handler called>
+No symbol table info available.
+#3 0x00007f909544e763 in nsTreeBodyFrame::PrefillPropertyArray (
+ this=0x7f909108c8a8, aRowIndex=-1, aCol=0x7f908861f760)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/layout/xul/base/src/tree/src/nsTreeBodyFrame.cpp:2055
+ sorted = 0
+#4 0x00007f909544ebef in nsTreeBodyFrame::PaintColumn (this=0x7f909108c8a8,
+ aColumn=0x7f908861f760, aColumnRect=..., aPresContext=0x7f9097882000,
+ aRenderingContext=..., aDirtyRect=<value optimized out>)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/layout/xul/base/src/tree/src/nsTreeBodyFrame.cpp:2915
+ colContext = <value optimized out>
+ colRect = {x = -1860605664, y = 32656, width = -1861695320,
+ height = 32656}
+ colMargin = {top = 0, right = 0, bottom = 15060, left = 0}
+#5 0x00007f909545064b in nsTreeBodyFrame::PaintTreeBody (
+ this=0x7f909108c8a8, aRenderingContext=..., aDirtyRect=..., aPt=...)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/layout/xul/base/src/tree/src/nsTreeBodyFrame.cpp:2873
+ dirtyRect = {x = 60, y = 7140, width = 15060, height = 48300}
+ colRect = {x = 60, y = 7140, width = 15060, height = 48300}
+ rv = <value optimized out>
+ currCol = 0x7f908861f760
+ oldPageCount = <value optimized out>
+#6 0x00007f909545094d in PaintTreeBody (aFrame=<value optimized out>,
+ aCtx=<value optimized out>, aDirtyRect=<value optimized out>,
+ aPt=<value optimized out>)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/layout/xul/base/src/tree/src/nsTreeBodyFrame.cpp:2811
+No locals.
+#7 0x00007f90950bb986 in nsDisplayGeneric::Paint (this=0x7f907fab5938,
+ aBuilder=<value optimized out>, aCtx=0x7f907d912a60)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/layout/base/nsDisplayList.h:968
+No locals.
+#8 0x00007f9095082ffe in nsDisplayList::Paint (this=<value optimized out>,
+ aBuilder=0x7fff32dee530, aCtx=0x7f907d912a60)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/layout/base/nsDisplayList.cpp:405
+ i = 0x7f907fab5938
+#9 0x00007f9095083150 in Paint (this=0x7f907fab59f0,
+ aBuilder=0x7fff32dee530, aCtx=0x7f907d912a60)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/layout/base/nsDisplayList.cpp:1007
+No locals.
+#10 nsDisplayClip::Paint (this=0x7f907fab59f0, aBuilder=0x7fff32dee530,
+ aCtx=0x7f907d912a60)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/layout/base/nsDisplayList.cpp:1203
+No locals.
+#11 0x00007f9095082ffe in nsDisplayList::Paint (this=<value optimized out>,
+ aBuilder=0x7fff32dee530, aCtx=0x7f907d912a60)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/layout/base/nsDisplayList.cpp:405
+ i = 0x7f907fab59f0
+#12 0x00007f9095096400 in nsLayoutUtils::PaintFrame (
+ aRenderingContext=0x7f907d912a60, aFrame=0x7f9096786110,
+ aDirtyRegion=..., aBackstop=4294967295, aFlags=<value optimized out>)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/layout/base/nsLayoutUtils.cpp:1161
+ builder = {mReferenceFrame = 0x7f9096786110, mMovingFrame = 0x0,
+ mSaveVisibleRegionOfMovingContent = 0x0, mIgnoreScrollFrame = 0x0,
+ mMoveDelta = {x = 0, y = 118}, mPool = {first = {
+ next = 0x7f907fab5800, base = 140734046856568,
+ limit = 140734046856568, avail = 140734046856568},
+ current = 0x7f907fab5800, arenasize = 1024, mask = 7},
+ mBoundingSelection = {<nsCOMPtr_base> = {
+ mRawPtr = 0x0}, <No data fields>},
+ mPresShellStates = {<nsTArray<nsDisplayListBuilder::PresShellState>> = {<nsTArray_base> = {static sEmptyHdr = {mLength = 0, mCapacity = 0,
+ mIsAutoArray = 0},
+ mHdr = 0x7fff32dee5a0}, <No data fields>},
+ mAutoBuf = "\000\000\000\000\b\000\000\200\000\070\210\227\220\177", '\000' <repeats 14 times>"\377, \177\000\000v\000\000\000\377\177\000\000\000\000\000\000\377\177\000\000v\000\000\000\377\177\000\000\375\000\000\000\070\000\000\000'\003\000\000\000\000\000\000 \347\336\062\377\177\000\000\270\212c\210\220\177\000\000\001g@\000\000\000\000\000\360\346\336\062\377\177\000\000\270\212c\210\220\177\000\000\235\003", '\000' <repeats 38 times>, " U$K8", '\000' <repeats 11 times>, "<\035\001K8\000\000\000\000|\227}\220\177\000\000\001g@\000\000\000\000\000L\347\336\062\377\177\000"},
+ mFramesMarkedForDisplay = {<nsTArray<nsIFrame*>> = {<nsTArray_base> = {static sEmptyHdr = {mLength = 0, mCapacity = 0, mIsAutoArray = 0},
+ mHdr = 0x7fff32dee670}, <No data fields>},
+ mAutoBuf = "\000\000\000\000d\000\000\200\020\347\336\062\377\177\000\000\240)\221}\220\177\000\000>j@\000\000\000\000\000\001\000\000\000\220\177\000\000\200\332'\250\220\177\000\000\000\000\000\000\220\177\000\000\000\000\000\000\000\000\000\000\340\353\336\062\377\177\000\000\000\000\000\000\000\000\000\000\340\353\336\062\377\177\000\000\316\372\202S8\000\000\000\000\373\000\000\000\000\000\000\000\373\000\000\000%\003", '\000' <repeats 14 times>, "%\003\000\340u\227}\220\177\000\000\267\327\201S8\000\000\000@\307\224}\220\177\000\000=\277\202S8", '\000' <repeats 11 times>"\232, \231\231\231\231\231\271?\000\000\000\000\000\000\000\000+Z@", '\000' <repeats 14 times>, "\005\000\000\265\003\000\000@\210\222}\220\177\000\000\375\000\000\000\004\000\000\000\000\000\000\000v\000\000\000\200\200\020\210\220\177\000\000\001\000\000\000\000\000\000\000\060\253/\250\220\177\000\000\000\000\000\000\000\000\000\000\300\330'\250"...}, mCurrentTableItem = 0x0, mBuildCaret = 1 '\001',
+ mEventDelivery = 0 '\000', mIsBackgroundOnly = 0 '\000',
+ mIsAtRootOfPseudoStackingContext = 0 '\000',
+ mPaintAllFrames = 0 '\000', mAccurateVisibleRegions = 0 '\000',
+ mInTransform = 0 '\000'}
+ list = {mSentinel = {mAbove = 0x7f907fab59f0}, mTop = 0x7f907fab59f8}
+ rv = 0
+ frameType = <value optimized out>
+ disableAssert = {mOldValue = 0}
+ dirtyRect = {x = 60, y = 7140, width = 15060, height = 48300}
+ visibleRegion = {mRectCount = 0, mCurRect = 0x7fff32dee4a0,
+ mRectListHead = {<nsRegion::nsRectFast> = {<nsRect> = {x = 0,
+ y = 0, width = 0, height = 0}, <No data fields>},
+ prev = 0x7fff32dee4a0, next = 0x7fff32dee4a0},
+ mBoundRect = {<nsRect> = {x = 0, y = 0, width = 0,
+ height = 0}, <No data fields>}}
+#13 0x00007f909509f128 in PresShell::Paint (this=0x7f9097883800,
+ aView=0x7f9099d40500, aRenderingContext=0x7f907d912a60, aDirtyRegion=...)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/layout/base/nsPresShell.cpp:5844
+ bgcolor = <value optimized out>
+ frame = <value optimized out>
+#14 0x00007f9095311ac9 in nsViewManager::RenderViews (this=0x7f9099d40280,
+ aView=<value optimized out>, aRC=..., aRegion=<value optimized out>)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/view/src/nsViewManager.cpp:533
+ offsetToRoot = {x = 60, y = 7140}
+ damageRegion = {mRectCount = 1, mCurRect = 0x7f908868d5c8,
+ mRectListHead = {<nsRegion::nsRectFast> = {<nsRect> = {x = 0,
+ y = 0, width = 0, height = 0}, <No data fields>},
+ prev = 0x7f908868d5c8, next = 0x7f908868d5c8},
+ mBoundRect = {<nsRect> = {x = 60, y = 7140, width = 15060,
+ height = 48300}, <No data fields>}}
+ displayRoot = 0x7f9099d40500
+ displayRootVM = <value optimized out>
+#15 0x00007f9095312a10 in nsViewManager::Refresh (this=0x7f9099d40280,
+ aView=0x7f909116e680, aContext=0x7f907d912a60,
+ aRegion=<value optimized out>, aUpdateFlags=1)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/view/src/nsViewManager.cpp:492
+ localcx = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f907d912a60}, <No data fields>}
+ p2a = 60
+ ctx = {mRawPtr = 0x7f907d914f20}
+ viewRect = warning: bits 64-128 in computed object were optimized out; replacing with zeroes
+{x = 0, y = 0, width = 0, height = 0}
+ vtowoffset = {x = 0, y = 0}
+ damageRegion = {mRectCount = 1, mCurRect = 0x7f90a0a7d448,
+ mRectListHead = {<nsRegion::nsRectFast> = {<nsRect> = {x = 0,
+ y = 0, width = 0, height = 0}, <No data fields>},
+ prev = 0x7f90a0a7d448, next = 0x7f90a0a7d448},
+ mBoundRect = {<nsRect> = {x = 0, y = 0, width = 15060,
+ height = 48300}, <No data fields>}}
+#16 0x00007f9095312f8f in nsViewManager::DispatchEvent (this=0x7f9099d40280,
+ aEvent=0x7fff32deed40, aView=<value optimized out>,
+ aStatus=<value optimized out>)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/view/src/nsViewManager.cpp:1008
+ rootVM = {mRawPtr = 0x7f9099d40280}
+ widget = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f9097878500}, <No data fields>}
+ transparentWindow = <value optimized out>
+ view = 0x7f909116e680
+ didResize = 0
+ event = 0x7fff32deed40
+ region = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f907d933600}, <No data fields>}
+#17 0x00007f909530deaa in HandleEvent (aEvent=0x7fff32deed40)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/view/src/nsView.cpp:167
+ vm = {<nsCOMPtr_base> = {mRawPtr = 0x7f9099d40280}, <No data fields>}
+ result = nsEventStatus_eConsumeNoDefault
+ view = 0x7f909116e680
+#18 0x00007f909d169999 in nsWindow::DispatchEvent (this=0x7f90a8292b50,
+ aEvent=<value optimized out>, aStatus=@0x7fff32deeeb8)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/widget/src/gtk2/nsWindow.cpp:626
+No locals.
+#19 0x00007f909d172912 in nsWindow::OnExposeEvent (this=0x7f90a8292b50,
+ aWidget=<value optimized out>, aEvent=0x7fff32def450)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/widget/src/gtk2/nsWindow.cpp:2614
+ translucent = 0
+ updateRegion = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f907d933600}, <No data fields>}
+ nrects = 1
+ r = <value optimized out>
+ r_end = 0x7f907d918500
+ rc = {<nsCOMPtr_base> = {mRawPtr = 0x7f907d912a60}, <No data fields>}
+ boundsRect = {x = 0, y = 0, width = 251, height = 805}
+ bufferPixmap = 0x7f907d92f310
+ event = {<nsGUIEvent> = {<nsEvent> = {eventStructType = 6 '\006',
+ message = 130, refPoint = {x = 0, y = 0}, time = 0, flags = 1,
+ userType = {<nsCOMPtr_base> = {
+ mRawPtr = 0x0}, <No data fields>},
+ target = {<nsCOMPtr_base> = {mRawPtr = 0x0}, <No data fields>},
+ currentTarget = {<nsCOMPtr_base> = {
+ mRawPtr = 0x0}, <No data fields>},
+ originalTarget = {<nsCOMPtr_base> = {
+ mRawPtr = 0x0}, <No data fields>}},
+ widget = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f90a8292b50}, <No data fields>},
+ nativeMsg = 0x0}, renderingContext = 0x7f907d912a60, region =
+ 0x7f907d933600, rect = 0x0}
+ rects = 0x7f907d9184f0
+ bufferPixmapSize = <value optimized out>
+ ctx = {mRawPtr = 0x7f907d914ec0}
+ status = <value optimized out>
+ kRegionCID = {m0 = 3777450736, m1 = 61082, m2 = 4561,
+ m3 = "\250*\000@\225\232(\311"}
+ bufferPixmapSurface = {mRawPtr = 0x7f907d913f40}
+#20 0x00007f909d172d68 in expose_event_cb (widget=0x7f9097d03700,
+ event=0x7fff32def450)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/widget/src/gtk2/nsWindow.cpp:5828
+ window = {mRawPtr = 0x7f90a8292b50}
+#21 0x0000003138b51003 in _gtk_marshal_BOOLEAN__BOXED (
+ closure=0x7f90977a4c70, return_value=0x7fff32def110,
+ n_param_values=<value optimized out>, param_values=0x7f907d92f280,
+ invocation_hint=<value optimized out>, marshal_data=<value optimized out>)
+ at gtkmarshalers.c:84
+ callback = 0x7f909d172d34 <expose_event_cb(GtkWidget*, GdkEventExpose*)>
+ cc = 0x7f90977a4c70
+ data1 = 0x7f9097d03700
+ data2 = 0x0
+ v_return = <value optimized out>
+ __PRETTY_FUNCTION__ = "_gtk_marshal_BOOLEAN__BOXED"
+#22 0x000000384b00b98e in IA__g_closure_invoke (closure=0x7f90977a4c70,
+ return_value=0x7fff32def110, n_param_values=2,
+ param_values=0x7f907d92f280, invocation_hint=0x7fff32def0d0)
+ at gclosure.c:767
+ marshal = <value optimized out>
+ marshal_data = <value optimized out>
+ in_marshal = <value optimized out>
+ __PRETTY_FUNCTION__ = "IA__g_closure_invoke"
+#23 0x000000384b01f947 in signal_emit_unlocked_R (node=<value optimized out>,
+ detail=0, instance=0x7f9097d03700, emission_return=0x7fff32def260,
+ instance_and_params=0x7f907d92f280) at gsignal.c:3248
+ tmp = <value optimized out>
+ handler = 0x7f90977a4bb0
+ accumulator = 0x7f90a82a0df0
+ emission = {next = 0x7fff32df3460, instance = 0x7f9097d03700,
+ ihint = {signal_id = 41, detail = 0,
+ run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN,
+ chain_type = 4}
+ class_closure = 0x7f90a8289100
+ handler_list = 0x7f90977a4bb0
+ return_accu = 0x7fff32def110
+ accu = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long = 0,
+ v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0,
+ v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0,
+ v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0,
+ v_float = 0, v_double = 0, v_pointer = 0x0}}}
+ signal_id = 41
+ max_sequential_handler_number = 1552
+ return_value_altered = 0
+#24 0x000000384b020c29 in IA__g_signal_emit_valist (
+ instance=<value optimized out>, signal_id=<value optimized out>,
+ detail=<value optimized out>, var_args=0x7fff32def2c0) at gsignal.c:2991
+ return_value = {g_type = 20, data = {{v_int = 0, v_uint = 0,
+ v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0,
+ v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0,
+ v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0,
+ v_float = 0, v_double = 0, v_pointer = 0x0}}}
+ error = 0x0
+ rtype = 20
+ static_scope = 0
+ instance_and_params = 0x7f907d92f280
+ signal_return_type = 20
+ param_values = 0x7f907d92f298
+ node = 0x7f90a82882e0
+ i = <value optimized out>
+ n_params = 1
+ __PRETTY_FUNCTION__ = "IA__g_signal_emit_valist"
+#25 0x000000384b0213a3 in IA__g_signal_emit (instance=<value optimized out>,
+ signal_id=<value optimized out>, detail=<value optimized out>)
+ at gsignal.c:3038
+ var_args = {{gp_offset = 32, fp_offset = 48,
+ overflow_arg_area = 0x7fff32def3a0,
+ reg_save_area = 0x7fff32def2e0}}
+#26 0x0000003138c8190f in gtk_widget_event_internal (widget=0x7f9097d03700,
+ event=0x7fff32def450) at gtkwidget.c:4958
+ signal_num = <value optimized out>
+ return_val = 0
+#27 0x0000003138b4909e in IA__gtk_main_do_event (event=0x7fff32def450)
+ at gtkmain.c:1583
+ event_widget = 0x7f9097d03700
+ grab_widget = 0x7f9097d03700
+ window_group = 0x7f90975dbd20
+ rewritten_event = <value optimized out>
+ tmp_list = <value optimized out>
+ __PRETTY_FUNCTION__ = "IA__gtk_main_do_event"
+#28 0x000000313924340a in _gdk_window_process_updates_recurse (
+ window=0x7f909100a9d0, expose_region=0x7f907d92f250) at gdkwindow.c:5181
+ event = {type = GDK_EXPOSE, any = {type = GDK_EXPOSE,
+ window = 0x7f909100a9d0, send_event = 0 '\000'}, expose = {
+ type = GDK_EXPOSE, window = 0x7f909100a9d0,
+ send_event = 0 '\000', area = {x = 0, y = 0, width = 251,
+ height = 805}, region = 0x7f907d92f250, count = 0},
+ no_expose = {type = GDK_EXPOSE, window = 0x7f909100a9d0,
+ send_event = 0 '\000'}, visibility = {type = GDK_EXPOSE,
+ window = 0x7f909100a9d0, send_event = 0 '\000',
+ state = GDK_VISIBILITY_UNOBSCURED}, motion = {type = GDK_EXPOSE,
+ window = 0x7f909100a9d0, send_event = 0 '\000', time = 0,
+ x = 5.3262094353228335e-312, y = 6.9295894550159656e-310,
+ axes = 0x7f907d92f250, state = 0, is_hint = 32656,
+ device = 0x7f909100a9d0, x_root = 6.9296935438300264e-310,
+ y_root = 6.9296935367154811e-310}, button = {type = GDK_EXPOSE,
+ window = 0x7f909100a9d0, send_event = 0 '\000', time = 0,
+ x = 5.3262094353228335e-312, y = 6.9295894550159656e-310,
+ axes = 0x7f907d92f250, state = 0, button = 32656,
+ device = 0x7f909100a9d0, x_root = 6.9296935438300264e-310,
+ y_root = 6.9296935367154811e-310}, scroll = {type = GDK_EXPOSE,
+ window = 0x7f909100a9d0, send_event = 0 '\000', time = 0,
+ x = 5.3262094353228335e-312, y = 6.9295894550159656e-310,
+ state = 2106782288, direction = 32656, device = 0x7f9000000000,
+ x_root = 6.9297096482918431e-310,
+ y_root = 6.9296935438300264e-310}, key = {type = GDK_EXPOSE,
+ window = 0x7f909100a9d0, send_event = 0 '\000', time = 0,
+ state = 0, keyval = 251, length = 805,
+ string = 0x7f907d92f250 "\001", hardware_keycode = 0,
+ group = 0 '\000', is_modifier = 0}, crossing = {
+ type = GDK_EXPOSE, window = 0x7f909100a9d0,
+ send_event = 0 '\000', subwindow = 0xfb00000000, time = 805,
+ x = 6.92969354385137e-310, y = 6.9295894549761933e-310,
+ x_root = 6.9297096482918431e-310,
+ y_root = 6.9296935438300264e-310, mode = 2106637856,
+ detail = 32656, focus = 0, state = 0}, focus_change = {
+ type = GDK_EXPOSE, window = 0x7f909100a9d0,
+ send_event = 0 '\000', in = -22495}, configure = {
+ type = GDK_EXPOSE, window = 0x7f909100a9d0,
+ send_event = 0 '\000', x = 0, y = 0, width = 251, height = 805},
+ property = {type = GDK_EXPOSE, window = 0x7f909100a9d0,
+ send_event = 0 '\000', atom = 0xfb00000000, time = 805,
+ state = 32656}, selection = {type = GDK_EXPOSE,
+ window = 0x7f909100a9d0, send_event = 0 '\000',
+ selection = 0xfb00000000, target = 0x7f9000000325,
+ property = 0x7f907d92f250, time = 0, requestor = 32656},
+ owner_change = {type = GDK_EXPOSE, window = 0x7f909100a9d0,
+ send_event = 0 '\000', owner = 0,
+ reason = GDK_OWNER_CHANGE_NEW_OWNER, selection = 0x7f9000000325,
+ time = 2106782288, selection_time = 32656}, proximity = {
+ type = GDK_EXPOSE, window = 0x7f909100a9d0,
+ send_event = 0 '\000', time = 0, device = 0xfb00000000},
+ client = {type = GDK_EXPOSE, window = 0x7f909100a9d0,
+ send_event = 0 '\000', message_type = 0xfb00000000,
+ data_format = 805, data = {
+ b = "P\362\222}\220\177\000\000\000\000\000\000\220\177\000\000\320\251\000\221", s = {-3504, 32146, 32656, 0, 0, 0, 32656, 0, -22064,
+ -28416}, l = {140258558800464, 140256452018176,
+ 140258884757968, 140258558800032, 140258558656032}}}, dnd = {
+ type = GDK_EXPOSE, window = 0x7f909100a9d0,
+ send_event = 0 '\000', context = 0xfb00000000, time = 805,
+ x_root = 32656, y_root = 0}, window_state = {type = GDK_EXPOSE,
+ window = 0x7f909100a9d0, send_event = 0 '\000', changed_mask = 0,
+ new_window_state = 0}, setting = {type = GDK_EXPOSE,
+ window = 0x7f909100a9d0, send_event = 0 '\000',
+ action = GDK_SETTING_ACTION_NEW,
+ name = 0xfb00000000 <Address 0xfb00000000 out of bounds>},
+ grab_broken = {type = GDK_EXPOSE, window = 0x7f909100a9d0,
+ send_event = 0 '\000', keyboard = 0, implicit = 0,
+ grab_window = 0x7f9000000325}}
+ private = 0x7f909100a9d0
+ child = <value optimized out>
+ child_region = <value optimized out>
+ r = {x = 2106781904, y = 32656, width = -1862227504, height = 32656}
+ l = <value optimized out>
+ children = 0x0
+#29 0x000000313923fecb in gdk_window_process_updates_internal (
+ window=0x7f909100a9d0) at gdkwindow.c:5340
+ expose_region = 0x7f907d92f250
+ update_area = 0x7f907d92f0a0
+ private = 0x7f909100a9d0
+ impl_iface = <value optimized out>
+ save_region = 0
+ clip_box = {x = 0, y = 0, width = 251, height = 805}
+#30 0x0000003139244a41 in IA__gdk_window_process_all_updates ()
+ at gdkwindow.c:5448
+ private = 0x7f909100a9d0
+ old_update_windows = 0x7f907d918480
+ tmp_list = 0x7f907d918160
+ in_process_all_updates = 1
+ got_recursive_update = 1
+#31 0x0000003139244aa9 in gdk_window_update_idle (data=<value optimized out>)
+ at gdkwindow.c:5074
+No locals.
+#32 0x000000313921d606 in gdk_threads_dispatch (data=0x7f907d9145a0)
+ at gdk.c:512
+ dispatch = 0x7f907d9145a0
+ ret = 0
+#33 0x0000003849c3bd02 in g_main_dispatch (context=0x7f90a82177a0)
+ at gmain.c:1960
+ dispatch = 0x3849c39d70 <g_idle_dispatch>
+ was_in_call = 0
+ user_data = 0x7f907d9145a0
+ callback = 0x313921d5b0 <gdk_threads_dispatch>
+ cb_funcs = 0x3849efad30
+ cb_data = 0x7f907d914760
+ current_source_link = {data = 0x7f907d9126a0, next = 0x7fff32df3850}
+ need_destroy = <value optimized out>
+ source = 0x7f907d9126a0
+ current = 0x7f9099d609d0
+ i = <value optimized out>
+#34 IA__g_main_context_dispatch (context=0x7f90a82177a0) at gmain.c:2513
+No locals.
+#35 0x0000003849c3fae8 in g_main_context_iterate (context=0x7f90a82177a0,
+ block=1, dispatch=1, self=<value optimized out>) at gmain.c:2591
+ max_priority = 120
+ timeout = 0
+ some_ready = 1
+ nfds = 14
+ allocated_nfds = <value optimized out>
+ fds = <value optimized out>
+ __PRETTY_FUNCTION__ = "g_main_context_iterate"
+#36 0x0000003849c3fff5 in IA__g_main_loop_run (loop=0x7f907d921de0)
+ at gmain.c:2799
+ self = 0x7f90a8210440
+ __PRETTY_FUNCTION__ = "IA__g_main_loop_run"
+#37 0x0000003138ac06d4 in IA__gtk_dialog_run (dialog=0x7f90823486c0)
+ at gtkdialog.c:1089
+ ri = {dialog = 0x0, response_id = -1, loop = 0x7f907d921de0,
+ destroyed = 0}
+ was_modal = <value optimized out>
+ response_handler = 1453
+ unmap_handler = 1454
+ destroy_handler = 1456
+ delete_handler = 1455
+ __PRETTY_FUNCTION__ = "IA__gtk_dialog_run"
+#38 0x00007f909d1799c7 in nsFilePicker::Show (this=0x7f907d95c900,
+ aReturn=0x7fff32defb20)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/widget/src/gtk2/nsFilePicker.cpp:541
+ count = 1
+ response = <value optimized out>
+ parent_widget = 0x7f907dab9ee0
+ action = <value optimized out>
+ accept_button = <value optimized out>
+ file_chooser = 0x7f90823486c0
+ title = {<nsCString> = {<nsACString_internal> = {
+ mData = 0x7f907d951a30 "Za\305\202\304\205cz plik do tej wiadomo\305\233ci", mLength = 32, mFlags = 9}, <No data fields>}, <No data fields>}
+ defaultName = {<nsCAutoString> = {<nsFixedCString> = {<nsCString> = {<nsACString_internal> = {mData = 0x7fff32def8a0 "", mLength = 0,
+ mFlags = 65553}, <No data fields>}, mFixedCapacity = 63,
+ mFixedBuf = 0x7fff32def8a0 ""},
+ mStorage = "\000\016\032\235\220\177\000\000\b\000\000\000\001\000\000\000\240\241\313\177\220\177\000\000\001\000\000\000\t\000\000\000\300\267\224}\220\177\000\000\017\000\000\000\t\000\000\000\330\246\031\235\220\177\000\000\374\370\336\062\377\177\000"}, <No data fields>}
+ defaultPath = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f908c7f6780}, <No data fields>}
+#39 0x0000003139a78001 in NS_InvokeByIndex_P (that=0x7f907d95c900,
+ methodIndex=17, paramCount=1, params=<value optimized out>)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_unix.cpp:208
+ nr_stack = <value optimized out>
+ gpregs = {140734046863264, 140734046862112, 0, 0, 140258884963168,
+ 140259009756772}
+ d0 = <value optimized out>
+ d5 = <value optimized out>
+ result = <value optimized out>
+ nr_gpr = 2
+ d1 = <value optimized out>
+ d6 = <value optimized out>
+ nr_fpr = 0
+ d2 = <value optimized out>
+ d7 = <value optimized out>
+ methodAddress = <value optimized out>
+ stack = 0x3139a77fdf
+ fpregs = {6.9296957829877067e-310, 6.9297208369785449e-310,
+ -nan(0xfffffffffffff), 1.4821969375237396e-323,
+ 6.9296935571784944e-310, 1.3137800876962641e-314,
+ 6.9531857754670951e-310, -1.983372149135684e-91}
+ d3 = <value optimized out>
+ d4 = <value optimized out>
+#40 0x00007f909e801e8f in XPCWrappedNative::CallMethod (ccx=...,
+ mode=<value optimized out>)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/js/src/xpconnect/src/xpcwrappednative.cpp:2722
+ req = warning: bits 96-128 in computed object were optimized out; replacing with zeroes
+{mCX = 0x0, mDepth = -1745217232}
+ rv = <value optimized out>
+ retval = 0
+ paramCount = 1 '\001'
+ err = <value optimized out>
+ tls = <value optimized out>
+ secAction = <value optimized out>
+ methodInfo = 0x7f909bdd8b08
+ src = 0
+ foundDependentParam = 0
+ argc = 0
+ i = 1 '\001'
+ xpcc = 0x7f90823f0700
+ argv = 0x7f908097a2d0
+ secFlag = <value optimized out>
+ autoStringUsed = 0
+ invokeResult = <value optimized out>
+ param_iid = {m0 = 0, m1 = 0, m2 = 0, m3 = "\323\345\341\212;\000\000"}
+ ifaceInfo = 0x7f909103cb60
+ paramBuffer = {{<nsXPTCMiniVariant> = {val = {i8 = 0 '\000', i16 = 0,
+ i32 = 0, i64 = 0, u8 = 0 '\000', u16 = 0, u32 = 0, u64 = 0,
+ f = 0, d = 0, b = 0, c = 0 '\000', wc = 0, p = 0x0}},
+ ptr = 0x7fff32defb20, type = {<XPTTypeDescriptorPrefix> = {
+ flags = 1 '\001'}, <No data fields>}, flags = 1 '\001'},
+ {<nsXPTCMiniVariant> = {val = {i8 = 33 '!', i16 = -14047,
+ i32 = -1964652255, i64 = 255733385505, u8 = 33 '!',
+ u16 = 51489, u32 = 2330315041, u64 = 255733385505,
+ f = -2.21275541e-32, d = 1.263490802726963e-312,
+ b = -1964652255, c = 33 '!', wc = 51489, p = 0x3b8ae5c921}},
+ ptr = 0x7f90a0ee0470, type = {<XPTTypeDescriptorPrefix> = {
+ flags = 0 '\000'}, <No data fields>}, flags = 196 '\304'},
+ {<nsXPTCMiniVariant> = {val = {i8 = -120 '\210', i16 = -1144,
+ i32 = 853474184, i64 = 140734046862216, u8 = 136 '\210',
+ u16 = 64392, u32 = 853474184, u64 = 140734046862216,
+ f = 2.59585846e-08, d = 6.9531857754833005e-310,
+ b = 853474184, c = -120 '\210', wc = 64392,
+ p = 0x7fff32defb88}}, ptr = 0x7fff32defbb8,
+ type = {<XPTTypeDescriptorPrefix> = {
+ flags = 184 '\270'}, <No data fields>}, flags = 251 '\373'},
+ {<nsXPTCMiniVariant> = {val = {i8 = 0 '\000', i16 = 0, i32 = 0,
+ i64 = 0, u8 = 0 '\000', u16 = 0, u32 = 0, u64 = 0, f = 0,
+ d = 0, b = 0, c = 0 '\000', wc = 0, p = 0x0}},
+ ptr = 0x7f9096d1c400, type = {<XPTTypeDescriptorPrefix> = {
+ flags = 0 '\000'}, <No data fields>}, flags = 196 '\304'},
+ {<nsXPTCMiniVariant> = {val = {i8 = 0 '\000', i16 = 0, i32 = 0,
+ i64 = 0, u8 = 0 '\000', u16 = 0, u32 = 0, u64 = 0, f = 0,
+ d = 0, b = 0, c = 0 '\000', wc = 0, p = 0x0}},
+ ptr = 0x3b8b0ca6b0, type = {<XPTTypeDescriptorPrefix> = {
+ flags = 184 '\270'}, <No data fields>}, flags = 251 '\373'},
+ {<nsXPTCMiniVariant> = {val = {i8 = 62 '>', i16 = 15166,
+ i32 = 1489124158, i64 = 242007292734, u8 = 62 '>',
+ u16 = 15166, u32 = 1489124158, u64 = 242007292734,
+ f = 1.70847759e+15, d = 1.1956748938291532e-312,
+ b = 1489124158, c = 62 '>', wc = 15166, p = 0x3858c23b3e}},
+ ptr = 0x1, type = {<XPTTypeDescriptorPrefix> = {
+ flags = 192 '\300'}, <No data fields>}, flags = 88 'X'},
+ {<nsXPTCMiniVariant> = {val = {i8 = -1 '\377', i16 = -1, i32 = -1,
+ i64 = 4294967295, u8 = 255 '\377', u16 = 65535,
+ u32 = 4294967295, u64 = 4294967295, f = -nan(0x7fffff),
+ d = 2.1219957904712067e-314, b = -1, c = -1 '\377',
+ wc = 65535, p = 0xffffffff}}, ptr = 0x0,
+ type = {<XPTTypeDescriptorPrefix> = {
+ flags = 0 '\000'}, <No data fields>}, flags = 0 '\000'},
+ {<nsXPTCMiniVariant> = {val = {i8 = -16 '\360', i16 = -784,
+ i32 = 853474544, i64 = 140734046862576, u8 = 240 '\360',
+ u16 = 64752, u32 = 853474544, u64 = 140734046862576,
+ f = 2.59592241e-08, d = 6.9531857755010868e-310,
+ b = 853474544, c = -16 '\360', wc = 64752,
+ p = 0x7fff32defcf0}}, ptr = 0x7f909873fe64,
+ type = {<XPTTypeDescriptorPrefix> = {
+ flags = 251 '\373'}, <No data fields>}, flags = 77 'M'}}
+ autoString = "\000+v\214\220\177", '\000' <repeats 27 times>, "yv\214\220\177\000\000\204Q~\236\220\177\000\000\a\000\000\000\000\000\000\000\360\271#\250\220\177\000\000\000+v\214\220\177\000\000\000\000\000\000\001\000\000\000@\354}\214\220\177\000\000\000|F\200\220\177\000\000@\354}\214\220\177\000\000\000|F\200\220\177\000\000\000|F\200\220\177\000\000@\000\337\062\377\177\000\000\000yv\214\220\177\000\000@\000\337\062\377\177\000\000\060\000\337\062\377\177\000\000\070\000\337\062\377\177\000"
+ dispatchParams = 0x7fff32defb20
+ requiredArgs = <value optimized out>
+ sm = <value optimized out>
+ rt = 0x7f90a0a2ac00
+ callee = 0x7f907d95c900
+ vtblIndex = 17
+ name = <value optimized out>
+#41 0x00007f909e80b09d in XPC_WN_CallMethod (cx=0x7f9080467c00,
+ obj=0x7f908c762b00, argc=0, argv=0x7f908097a2d0, vp=<value optimized out>)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/js/src/xpconnect/src/xpcwrappednativejsops.cpp:1740
+ funobj = <value optimized out>
+ wrapper = <value optimized out>
+ member = 0x7f907d971120
+ ccx = {<nsAXPCNativeCallContext> = {
+ _vptr.nsAXPCNativeCallContext = 0x7f909ea74c50},
+ mState = XPCCallContext::READY_TO_CALL, mXPC = 0x7f90a0a16c10,
+ mThreadData = 0x7f90a0aa1a60, mXPCContext = 0x7f90823f0700,
+ mJSContext = 0x7f9080467c00, mContextPopRequired = 0,
+ mDestroyJSContextInDestructor = 0,
+ mCallerLanguage = XPCContext::LANG_JS,
+ mPrevCallerLanguage = XPCContext::LANG_NATIVE,
+ mPrevCallContext = 0x7fff32df0940,
+ mOperandJSObject = 0x7f908c762b00,
+ mCurrentJSObject = 0x7f908c762b00,
+ mFlattenedJSObject = 0x7f908c762b00, mWrapper = 0x7f907dab9d00,
+ mTearOff = 0x7f907dab9d38, mScriptableInfo = 0x0,
+ mSet = 0x7f907d94b660, mInterface = 0x7f907d971000,
+ mMember = 0x7f907d971120, mName = 140259009756772,
+ mStaticMemberIsLocal = 0, mArgc = 0, mArgv = 0x7f908097a2d0,
+ mRetVal = 0x7fff32df0228, mReturnValueWasSet = 0,
+ mMethodIndex = 17, mCallee = 0x0,
+ mStringWrapperData = "d\376s\230\220\177\000\000\000|F\200\220\177\000\000\000\000\000\000\220\177\000\000\330\241\227\200\220\177\000\000\000\000\000\000\021\000\000\000\000\000\000\000\220\177\000"}
+ iface = 0x7f907d971000
+#42 0x0000003b8ae55084 in js_Invoke (cx=0x7f9080467c00, argc=0,
+ vp=0x7f908097a2c0, flags=2)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/js/src/jsinterp.cpp:1360
+ frame = {regs = 0x0, imacpc = 0x0, slots = 0x0, callobj = 0x0,
+ argsobj = 0, varobj = 0x0, script = 0x0, fun = 0x7f90885e9af0,
+ thisp = 0x7f908c762b00, argc = 0, argv = 0x7f908097a2d0, rval = 22,
+ down = 0x7f908097a1d8, annotation = 0x0,
+ scopeChain = 0x7f90910dcb40, blockChain = 0x0, sharpDepth = 0,
+ sharpArray = 0x0, flags = 34, dormantNext = 0x0, displaySave = 0x0}
+ argv = 0x7f908097a2d0
+ funobj = <value optimized out>
+ ok = 59
+ clasp = <value optimized out>
+ i = <value optimized out>
+ mark = 0x7f908097a2f0
+ sp = <value optimized out>
+ newvp = <value optimized out>
+ v = 140258808592640
+ ops = <value optimized out>
+ hookData = 0x0
+ parent = 0x7f908c762b00
+ fun = <value optimized out>
+ rootedArgsFlag = 32
+ native = 0x7f909e80afb5 <XPC_WN_CallMethod(JSContext*, JSObject*, uintN, jsval*, jsval*)>
+ script = 0x0
+ nslots = <value optimized out>
+ hook = 0
+#43 0x0000003b8ae4e5d1 in js_Interpret (cx=0x7f9080467c00)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/js/src/jsops.cpp:2240
+ getter = 0x7f90885e9af0
+ op = JSOP_CALL
+ prop = 0x7f90885d2720
+ npairs = -2137546048
+ currentVersion = 12468
+ obj = 0x7f908c767900
+ d = 6.9296960457484177e-310
+ off = 48
+ fp = 0x7f908097a1d8
+ inlineCallCount = 1
+ regs = {pc = 0x7f907fd611b6 ":", sp = 0x7f908097a2d0}
+ pc2 = 0x7f9000000000 <Address 0x7f9000000000 out of bounds>
+ clasp = 0x0
+ low = 0
+ rt = 0x7f90a0ee0000
+ op2 = JSOP_PROPINC
+ vp = 0x3a
+ script = 0x7f907fd61000
+ originalVersion = 12468
+ obj2 = 0x7f90910dcb40
+ cond = 1
+ lval = 58
+ id = 140259009756772
+ d2 = 0
+ fun = 0x7f90885e9af0
+ normalJumpTable = {0x3b8ae47d6e, 0x3b8ae47e55, 0x3b8ae47ef7,
+ 0x3b8ae47f34, 0x3b8ae47f78, 0x3b8ae47faa, 0x3b8ae48265,
+ 0x3b8ae482e8, 0x3b8ae483e1, 0x3b8ae4f5c6, 0x3b8ae48e31,
+ 0x3b8ae48e84, 0x3b8ae49091, 0x3b8ae490d5, 0x3b8ae491e3,
+ 0x3b8ae49532, 0x3b8ae49602, 0x3b8ae496d2, 0x3b8ae497a2,
+ 0x3b8ae49bf2, 0x3b8ae4a381, 0x3b8ae4a603, 0x3b8ae4a887,
+ 0x3b8ae4ab0f, 0x3b8ae4ad97, 0x3b8ae4ae6e, 0x3b8ae4af43,
+ 0x3b8ae4b019, 0x3b8ae4b3d5, 0x3b8ae4b505, 0x3b8ae4b635,
+ 0x3b8ae4b7ea, 0x3b8ae4b983, 0x3b8ae4ba19, 0x3b8ae4baa7,
+ 0x3b8ae4bb61, 0x3b8ae4bbc2, 0x3b8ae4bc96, 0x3b8ae4bd57,
+ 0x3b8ae4be50, 0x3b8ae4beab, 0x3b8ae4bfd4, 0x3b8ae4bef3,
+ 0x3b8ae4bedc, 0x3b8ae4bfd6, 0x3b8ae4bef5, 0x3b8ae4bede,
+ 0x3b8ae4bfd8, 0x3b8ae4bef7, 0x3b8ae4bee0, 0x3b8ae4bfd8,
+ 0x3b8ae4bef7, 0x3b8ae4bee0, 0x3b8ae4c984, 0x3b8ae4d1be,
+ 0x3b8ae4d92e, 0x3b8ae4dcc3, 0x3b8ae4e839, 0x3b8ae4e0f0,
+ 0x3b8ae4e839, 0x3b8ae4edd9, 0x3b8ae4edd9, 0x3b8ae4f059,
+ 0x3b8ae4f095, 0x3b8ae4f0d1, 0x3b8ae4c82b, 0x3b8ae4f10d,
+ 0x3b8ae4f149, 0x3b8ae484da, 0x3b8ae485a8, 0x3b8ae4f185,
+ 0x3b8ae4f35b, 0x3b8ae4a042, 0x3b8ae4a0b4, 0x3b8ae4e723,
+ 0x3b8ae48ce5, 0x3b8ae48d5f, 0x3b8ae48deb, 0x3b8ae4e0f2,
+ 0x3b8ae49129, 0x3b8ae4ee2c, 0x3b8ae47e91, 0x3b8ae4df8a,
+ 0x3b8ae4f552, 0x3b8ae4f70c, 0x3b8ae4f786, 0x3b8ae4f801,
+ 0x3b8ae4f8c5, 0x3b8ae4ebc9, 0x3b8ae50d1b, 0x3b8ae50db5,
+ 0x3b8ae50e0c, 0x3b8ae511c7, 0x3b8ae51306, 0x3b8ae513ec,
+ 0x3b8ae4c49f, 0x3b8ae4c488, 0x3b8ae4c4a6, 0x3b8ae4c494,
+ 0x3b8ae4c4ec, 0x3b8ae4c4d5, 0x3b8ae4c4f3, 0x3b8ae4c4e1,
+ 0x3b8ae49522, 0x3b8ae48ed7, 0x3b8ae48f90, 0x3b8ae4904d,
+ 0x3b8ae47ebb, 0x3b8ae4938e, 0x3b8ae4d1be, 0x3b8ae516df,
+ 0x3b8ae48ae5, 0x3b8ae518e1, 0x3b8ae51980, 0x3b8ae514d4,
+ 0x3b8ae515cb, 0x3b8ae51633, 0x3b8ae47e34, 0x3b8ae47d8f,
+ 0x3b8ae4a126, 0x3b8ae4825c, 0x3b8ae4e0f2, 0x3b8ae4de9c,
+ 0x3b8ae50881, 0x3b8ae50881, 0x3b8ae50068, 0x3b8ae4fe79,
+ 0x3b8ae4fe79, 0x3b8ae50675, 0x3b8ae50841, 0x3b8ae516ff,
+ 0x3b8ae4917a, 0x3b8ae47db0, 0x3b8ae51678, 0x3b8ae4fb6d,
+ 0x3b8ae4fb6d, 0x3b8ae4f61e, 0x3b8ae4f69d, 0x3b8ae50467,
+ 0x3b8ae4867f, 0x3b8ae48711, 0x3b8ae4881f, 0x3b8ae4892d,
+ 0x3b8ae48a09, 0x3b8ae5154a, 0x3b8ae4a24c, 0x3b8ae48676,
+ 0x3b8ae4f25c, 0x3b8ae4f354, 0x3b8ae527ba, 0x3b8ae527bc,
+ 0x3b8ae51698, 0x3b8ae47ef7, 0x3b8ae47fc8, 0x3b8ae4fbf4,
+ 0x3b8ae4fcd9, 0x3b8ae4c615, 0x3b8ae4c5e2, 0x3b8ae4c62e,
+ 0x3b8ae4c5fc, 0x3b8ae4ee9f, 0x3b8ae51a13, 0x3b8ae51a64,
+ 0x3b8ae51ab9, 0x3b8ae51b0c, 0x3b8ae51b81, 0x3b8ae51beb,
+ 0x3b8ae51c49, 0x3b8ae51ca5, 0x3b8ae51ca5, 0x3b8ae51d1f,
+ 0x3b8ae51d9f, 0x3b8ae51e70, 0x3b8ae51f21, 0x3b8ae52017,
+ 0x3b8ae52064, 0x3b8ae52182, 0x3b8ae521dc, 0x3b8ae52236,
+ 0x3b8ae5228c, 0x3b8ae52307, 0x3b8ae52393, 0x3b8ae5240a,
+ 0x3b8ae52481, 0x3b8ae4cd7d, 0x3b8ae4f940, 0x3b8ae4f940,
+ 0x3b8ae51f21, 0x3b8ae4ec27, 0x3b8ae4ed53, 0x3b8ae4edb4,
+ 0x3b8ae4edb4, 0x3b8ae47df2, 0x3b8ae47e13, 0x3b8ae4db85,
+ 0x3b8ae47fc8, 0x3b8ae4c984, 0x3b8ae51e70, 0x3b8ae4be50,
+ 0x3b8ae52558...}
+ len = 0
+ str = 0x3a
+ ok = 58
+ atom = 0x0
+ rval = 140258808592640
+ i = 58
+ setter = 0x3a
+ index = 2157421248
+ attrs = 2279691360
+ flags = 0
+ ltmp = 140258609439424
+ j = 0
+ atoms = 0x7f907fd61060
+ parent = 0x7f908097a2c0
+ argc = 0
+ slot = 0
+ str2 = 0x7f908097a2c0
+ type = JSTYPE_VOID
+ interruptJumpTable = {0x3b8ae47cf9 <repeats 235 times>}
+ rtmp = 2
+ sprop = 0x7f908097a2c0
+#44 0x0000003b8ae5508e in js_Invoke (cx=0x7f9080467c00, argc=1,
+ vp=0x7f908097a1a0, flags=0)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/js/src/jsinterp.cpp:1368
+ frame = {regs = 0x7f908097a280, imacpc = 0x0, slots = 0x7f908097a1b8,
+ callobj = 0x0, argsobj = 0, varobj = 0x0, script = 0x7f9088581000,
+ fun = 0x7f90969d30e0, thisp = 0x7f9096ef1040, argc = 1,
+ argv = 0x7f908097a1b0, rval = 22, down = 0x7fff32df14c0,
+ annotation = 0x0, scopeChain = 0x7f90910dcb40, blockChain = 0x0,
+ sharpDepth = 0, sharpArray = 0x0, flags = 32, dormantNext = 0x0,
+ displaySave = 0x7f908097a070}
+ argv = 0x7f908097a1b0
+ funobj = <value optimized out>
+ ok = 32656
+ clasp = <value optimized out>
+ i = <value optimized out>
+ mark = 0x7f908097a1b8
+ sp = <value optimized out>
+ newvp = <value optimized out>
+ v = 140258984268032
+ ops = <value optimized out>
+ hookData = 0x0
+ parent = 0x7f90910dcb40
+ fun = <value optimized out>
+ rootedArgsFlag = 32
+ native = 0
+ script = 0x7f9088581000
+ nslots = <value optimized out>
+ hook = 0
+#45 0x00007f909e7feddd in nsXPCWrappedJSClass::CallMethod (
+ this=0x7f908c311500, wrapper=<value optimized out>, methodIndex=5,
+ info=0x7f909bddbee8, nativeParams=0x7fff32df0aa0)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/js/src/xpconnect/src/xpcwrappedjsclass.cpp:1696
+ _val_1654 = {mVal = 0, mValPtr = 0x7fff32df07e8}
+ _automarker_1654 = {<AutoMarkingPtr> = {
+ _vptr.AutoMarkingPtr = 0x7f909ea74790, mNext = 0x0,
+ mTLS = 0x7f90a0aa1a60}, mPtr = 0x7fff32df0740}
+ stackbase = 0x7f908097a1a0
+ paramCount = 1 '\001'
+ retval = 2147500037
+ ssm = 0x7f90a8245740
+ sp = 0x7f908097a1b8
+ argc = 1 '\001'
+ fval = 140258984268032
+ foundDependentParam = <value optimized out>
+ ccx = {<nsAXPCNativeCallContext> = {
+ _vptr.nsAXPCNativeCallContext = 0x7f909ea74c50},
+ mState = XPCCallContext::HAVE_CONTEXT, mXPC = 0x7f90a0a16c10,
+ mThreadData = 0x7f90a0aa1a60, mXPCContext = 0x7f90823f0700,
+ mJSContext = 0x7f9080467c00, mContextPopRequired = 0,
+ mDestroyJSContextInDestructor = 0,
+ mCallerLanguage = XPCContext::LANG_NATIVE,
+ mPrevCallerLanguage = XPCContext::LANG_JS,
+ mPrevCallContext = 0x7fff32df1330, mOperandJSObject = 0x3858c23e28,
+ mCurrentJSObject = 0x7fff32df1330,
+ mFlattenedJSObject = 0x7f909e7e4781, mWrapper = 0x0,
+ mTearOff = 0x7f909e8067ba, mScriptableInfo = 0x2,
+ mSet = 0x7f907e685428, mInterface = 0x7f909ea74760,
+ mMember = 0x7fff32df0a80, mName = 140259147520608,
+ mStaticMemberIsLocal = 2106745680, mArgc = 32656,
+ mArgv = 0x7f907fb15720, mRetVal = 0xe11236a8,
+ mReturnValueWasSet = 655456, mMethodIndex = 0,
+ mCallee = 0x7f9096ef1100,
+ mStringWrapperData = "\000|F\200\220\177\000\000\021\n\200\236\220\177\000\000\000\000\000\000\220\177\000\000\060\023\337\062\377\177\000\000\060\023\337\062\377\177\000\000\000\000\000\000\220\177\000"}
+ scriptEval = {mJSContext = 0x7f9080467c00, mState = 0x0,
+ mErrorReporterSet = 0, mEvaluated = 1,
+ mContextHasThread = 140259272757312}
+ i = <value optimized out>
+ stack_size = <value optimized out>
+ success = <value optimized out>
+ readyToDoTheCall = -1474013376
+ xpcc = 0x7f90823f0700
+ context = <value optimized out>
+ param_iid = {m0 = 853478080, m1 = 32767, m2 = 0,
+ m3 = "\340n\316\177\220\177\000"}
+ mark = <value optimized out>
+ cx = 0x7f9080467c00
+ popPrincipal = 1
+ obj = 0x7f9096ef1040
+ thisObj = 0x7f9096ef1040
+ result = 0
+ name = 0x7f909bddbf80 "doCommand"
+ kungFuDeathGrip = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f908c311500}, <No data fields>}
+#46 0x0000003139a78be1 in PrepareAndDispatch (self=0x7f907fb15720,
+ methodIndex=<value optimized out>, args=<value optimized out>,
+ gpregs=0x7fff32df0ba0, fpregs=0x7fff32df0bd0)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_linux.cpp:153
+ paramCount = <value optimized out>
+ nr_fpr = <value optimized out>
+ value = <value optimized out>
+ paramBuffer = {{val = {i8 = 112 'p', i16 = -31376, i32 = 2106688880,
+ i64 = 140258558707056, u8 = 112 'p', u16 = 34160,
+ u32 = 2106688880, u64 = 140258558707056, f = 2.41788633e+37,
+ d = 6.9296935392364016e-310, b = 2106688880, c = 112 'p',
+ wc = 34160, p = 0x7f907d918570}}, {val = {i8 = 40 '(',
+ i16 = 3624, i32 = 853478952, i64 = 140734046866984,
+ u8 = 40 '(', u16 = 3624, u32 = 853478952,
+ u64 = 140734046866984, f = 2.59670543e-08,
+ d = 6.953185775718871e-310, b = 853478952, c = 40 '(',
+ wc = 3624, p = 0x7fff32df0e28}}, {val = {i8 = 104 'h',
+ i16 = 19048, i32 = 969689704, i64 = 211423087208, u8 = 104 'h',
+ u16 = 19048, u32 = 969689704, u64 = 211423087208,
+ f = 0.000389653491, d = 1.0445688412717071e-312, b = 969689704,
+ c = 104 'h', wc = 19048, p = 0x3139cc4a68}}, {val = {
+ i8 = 0 '\000', i16 = 16128, i32 = -1681244416,
+ i64 = 140259065741056, u8 = 0 '\000', u16 = 16128,
+ u32 = 2613722880, u64 = 140259065741056, f = -3.34588095e-22,
+ d = 6.929718590044469e-310, b = -1681244416, c = 0 '\000',
+ wc = 16128, p = 0x7f909bca3f00}}, {val = {i8 = -32 '\340',
+ i16 = -11552, i32 = 2106774240, i64 = 140258558792416,
+ u8 = 224 '\340', u16 = 53984, u32 = 2106774240,
+ u64 = 140258558792416, f = 2.43952766e+37,
+ d = 6.929693543453746e-310, b = 2106774240, c = -32 '\340',
+ wc = 53984, p = 0x7f907d92d2e0}}, {val = {i8 = -112 '\220',
+ i16 = 2960, i32 = 853478288, i64 = 140734046866320,
+ u8 = 144 '\220', u16 = 2960, u32 = 853478288,
+ u64 = 140734046866320, f = 2.59658748e-08,
+ d = 6.953185775686065e-310, b = 853478288, c = -112 '\220',
+ wc = 2960, p = 0x7fff32df0b90}}, {val = {i8 = 1 '\001',
+ i16 = 1, i32 = 1, i64 = 140733193388033, u8 = 1 '\001',
+ u16 = 1, u32 = 1, u64 = 140733193388033, f = 1.40129846e-45,
+ d = 6.9531436082559572e-310, b = 1, c = 1 '\001', wc = 1,
+ p = 0x7fff00000001}}, {val = {i8 = 14 '\016', i16 = -19698,
+ i32 = -1792036082, i64 = 2502931214, u8 = 14 '\016',
+ u16 = 45838, u32 = 2502931214, u64 = 2502931214,
+ f = -3.54822178e-26, d = 1.2366123267411253e-314,
+ b = -1792036082, c = 14 '\016', wc = 45838, p = 0x952fb30e}}, {
+ val = {i8 = 77 'M', i16 = 5197, i32 = 1208030285,
+ i64 = 241726198861, u8 = 77 'M', u16 = 5197, u32 = 1208030285,
+ u64 = 241726198861, f = 132177.203,
+ d = 1.1942861055700956e-312, b = 1208030285, c = 77 'M',
+ wc = 5197, p = 0x384801144d}}, {val = {i8 = 56 '8', i16 = 4152,
+ i32 = 853479480, i64 = 140734046867512, u8 = 56 '8',
+ u16 = 4152, u32 = 853479480, u64 = 140734046867512,
+ f = 2.59679922e-08, d = 6.9531857757449576e-310, b = 853479480,
+ c = 56 '8', wc = 4152, p = 0x7fff32df1038}}, {val = {
+ i8 = -48 '\320', i16 = 3024, i32 = 853478352,
+ i64 = 140734046866384, u8 = 208 '\320', u16 = 3024,
+ u32 = 853478352, u64 = 140734046866384, f = 2.59659885e-08,
+ d = 6.953185775689227e-310, b = 853478352, c = -48 '\320',
+ wc = 3024, p = 0x7fff32df0bd0}}, {val = {i8 = 40 '(',
+ i16 = 3624, i32 = 853478952, i64 = 140734046866984,
+ u8 = 40 '(', u16 = 3624, u32 = 853478952,
+ u64 = 140734046866984, f = 2.59670543e-08,
+ d = 6.953185775718871e-310, b = 853478952, c = 40 '(',
+ wc = 3624, p = 0x7fff32df0e28}}, {val = {i8 = -88 '\250',
+ i16 = 4264, i32 = 853479592, i64 = 140734046867624,
+ u8 = 168 '\250', u16 = 4264, u32 = 853479592,
+ u64 = 140734046867624, f = 2.59681912e-08,
+ d = 6.9531857757504912e-310, b = 853479592, c = -88 '\250',
+ wc = 4264, p = 0x7fff32df10a8}}, {val = {i8 = 0 '\000',
+ i16 = 31744, i32 = -2142864384, i64 = 140258604121088,
+ u8 = 0 '\000', u16 = 31744, u32 = 2152102912,
+ u64 = 140258604121088, f = -6.47296755e-39,
+ d = 6.9296957829877067e-310, b = -2142864384, c = 0 '\000',
+ wc = 31744, p = 0x7f9080467c00}}, {val = {i8 = -128 '\200',
+ i16 = -896, i32 = -1676280704, i64 = 140259070704768,
+ u8 = 128 '\200', u16 = 64640, u32 = 2618686592,
+ u64 = 140259070704768, f = -4.96263131e-22,
+ d = 6.9297188352844265e-310, b = -1676280704, c = -128 '\200',
+ wc = 64640, p = 0x7f909c15fc80}}, {val = {i8 = 26 '\032',
+ i16 = 3610, i32 = -1635840486, i64 = 2659126810,
+ u8 = 26 '\032', u16 = 3610, u32 = 2659126810, u64 = 2659126810,
+ f = -1.35025037e-20, d = 1.3137832047564237e-314,
+ b = -1635840486, c = 26 '\032', wc = 3610, p = 0x9e7f0e1a}}}
+ dispatchParams = <value optimized out>
+ info = 0x7f909bddbee8
+ nr_gpr = <value optimized out>
+ i = <value optimized out>
+ result = 2147500037
+ ap = 0x7fff32df0c20
+#47 0x0000003139a780a3 in SharedStub ()
+ from /usr/lib64/thunderbird-3.1/libxpcom_core.so
+No symbol table info available.
+#48 0x0000003139a78001 in NS_InvokeByIndex_P (that=0x7f907fb15720,
+ methodIndex=5, paramCount=1, params=<value optimized out>)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_unix.cpp:208
+ nr_stack = <value optimized out>
+ gpregs = {140259272788352, 140258558707056, 0, 0, 140258804115488,
+ 140259010974516}
+ d0 = <value optimized out>
+ d5 = <value optimized out>
+ result = <value optimized out>
+ nr_gpr = 2
+ d1 = <value optimized out>
+ d6 = <value optimized out>
+ nr_fpr = 0
+ d2 = <value optimized out>
+ d7 = <value optimized out>
+ methodAddress = <value optimized out>
+ stack = 0x3139a77fdf
+ fpregs = {6.9297056640239467e-310, 6.9297158842153043e-310,
+ 6.9531857757825066e-310, 1.263489511150433e-312,
+ 6.9297154859551136e-310, 6.9297208330274031e-310,
+ 9.5023411082278302e-315, 1.8656250996705733e-314}
+ d3 = <value optimized out>
+ d4 = <value optimized out>
+#49 0x00007f909e801e8f in XPCWrappedNative::CallMethod (ccx=...,
+ mode=<value optimized out>)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/js/src/xpconnect/src/xpcwrappednative.cpp:2722
+ req = warning: bits 96-128 in computed object were optimized out; replacing with zeroes
+{mCX = 0x0, mDepth = -1745217232}
+ rv = <value optimized out>
+ retval = 0
+ paramCount = 1 '\001'
+ err = <value optimized out>
+ tls = <value optimized out>
+ secAction = <value optimized out>
+ methodInfo = 0x7f909bddbee8
+ src = 140259002913588
+ foundDependentParam = 0
+ argc = 1
+ i = 1 '\001'
+ xpcc = 0x7f90823f0700
+ argv = 0x7f908097a158
+ secFlag = <value optimized out>
+ autoStringUsed = 0
+ invokeResult = <value optimized out>
+ param_iid = {m0 = 1, m1 = 0, m2 = 0, m3 = "\323\345\341\212;\000\000"}
+ ifaceInfo = 0x7f908c322820
+ paramBuffer = {{<nsXPTCMiniVariant> = {val = {i8 = 112 'p',
+ i16 = -31376, i32 = 2106688880, i64 = 140258558707056,
+ u8 = 112 'p', u16 = 34160, u32 = 2106688880,
+ u64 = 140258558707056, f = 2.41788633e+37,
+ d = 6.9296935392364016e-310, b = 2106688880, c = 112 'p',
+ wc = 34160, p = 0x7f907d918570}}, ptr = 0x7f9097fa18c0,
+ type = {<XPTTypeDescriptorPrefix> = {
+ flags = 144 '\220'}, <No data fields>}, flags = 0 '\000'},
+ {<nsXPTCMiniVariant> = {val = {i8 = 33 '!', i16 = -14047,
+ i32 = -1964652255, i64 = 255733385505, u8 = 33 '!',
+ u16 = 51489, u32 = 2330315041, u64 = 255733385505,
+ f = -2.21275541e-32, d = 1.263490802726963e-312,
+ b = -1964652255, c = 33 '!', wc = 51489, p = 0x3b8ae5c921}},
+ ptr = 0x7f90a0ee0470, type = {<XPTTypeDescriptorPrefix> = {
+ flags = 0 '\000'}, <No data fields>}, flags = 196 '\304'},
+ {<nsXPTCMiniVariant> = {val = {i8 = 120 'x', i16 = 3704,
+ i32 = 853479032, i64 = 140734046867064, u8 = 120 'x',
+ u16 = 3704, u32 = 853479032, u64 = 140734046867064,
+ f = 2.59671964e-08, d = 6.9531857757228235e-310,
+ b = 853479032, c = 120 'x', wc = 3704, p = 0x7fff32df0e78}},
+ ptr = 0x7fff32df0ea8, type = {<XPTTypeDescriptorPrefix> = {
+ flags = 168 '\250'}, <No data fields>}, flags = 14 '\016'},
+ {<nsXPTCMiniVariant> = {val = {i8 = 0 '\000', i16 = 0, i32 = 0,
+ i64 = 0, u8 = 0 '\000', u16 = 0, u32 = 0, u64 = 0, f = 0,
+ d = 0, b = 0, c = 0 '\000', wc = 0, p = 0x0}},
+ ptr = 0x7f9096d1c400, type = {<XPTTypeDescriptorPrefix> = {
+ flags = 0 '\000'}, <No data fields>}, flags = 196 '\304'},
+ {<nsXPTCMiniVariant> = {val = {i8 = 0 '\000', i16 = 0, i32 = 0,
+ i64 = 0, u8 = 0 '\000', u16 = 0, u32 = 0, u64 = 0, f = 0,
+ d = 0, b = 0, c = 0 '\000', wc = 0, p = 0x0}},
+ ptr = 0x3b8b0ca6b0, type = {<XPTTypeDescriptorPrefix> = {
+ flags = 168 '\250'}, <No data fields>}, flags = 14 '\016'},
+ {<nsXPTCMiniVariant> = {val = {i8 = 62 '>', i16 = 15166,
+ i32 = 1489124158, i64 = 242007292734, u8 = 62 '>',
+ u16 = 15166, u32 = 1489124158, u64 = 242007292734,
+ f = 1.70847759e+15, d = 1.1956748938291532e-312,
+ b = 1489124158, c = 62 '>', wc = 15166, p = 0x3858c23b3e}},
+ ptr = 0x1, type = {<XPTTypeDescriptorPrefix> = {
+ flags = 192 '\300'}, <No data fields>}, flags = 88 'X'},
+ {<nsXPTCMiniVariant> = {val = {i8 = -1 '\377', i16 = -1, i32 = -1,
+ i64 = 4294967295, u8 = 255 '\377', u16 = 65535,
+ u32 = 4294967295, u64 = 4294967295, f = -nan(0x7fffff),
+ d = 2.1219957904712067e-314, b = -1, c = -1 '\377',
+ wc = 65535, p = 0xffffffff}}, ptr = 0x0,
+ type = {<XPTTypeDescriptorPrefix> = {
+ flags = 0 '\000'}, <No data fields>}, flags = 0 '\000'},
+ {<nsXPTCMiniVariant> = {val = {i8 = -32 '\340', i16 = 4064,
+ i32 = 853479392, i64 = 140734046867424, u8 = 224 '\340',
+ u16 = 4064, u32 = 853479392, u64 = 140734046867424,
+ f = 2.59678359e-08, d = 6.9531857757406099e-310,
+ b = 853479392, c = -32 '\340', wc = 4064,
+ p = 0x7fff32df0fe0}}, ptr = 0x7f9098869334,
+ type = {<XPTTypeDescriptorPrefix> = {
+ flags = 251 '\373'}, <No data fields>}, flags = 77 'M'}}
+ autoString = "\000?\312\233\220\177\000\000\000\000\000\000\000\000\000\000\001", '\000' <repeats 15 times>"\200, *v\214\220\177\000\000\204Q~\236\220\177\000\000\a\000\000\000\000\000\000\000\360\271#\250\220\177\000\000\000?\312\233\220\177\000\000\000\000\000\000\001\000\000\000\004\222\206\230\220\177\000\000\000|F\200\220\177", '\000' <repeats 11 times>, "|F\200\220\177\000\000\000|F\200\220\177\000\000\060\023\337\062\377\177\000\000\200*v\214\220\177\000\000\060\023\337\062\377\177\000\000 \023\337\062\377\177\000\000(\023\337\062\377\177\000"
+ dispatchParams = 0x7fff32df0e10
+ requiredArgs = <value optimized out>
+ sm = <value optimized out>
+ rt = 0x7f90a0a2ac00
+ callee = 0x7f907fb15720
+ vtblIndex = 5
+ name = <value optimized out>
+#50 0x00007f909e80b09d in XPC_WN_CallMethod (cx=0x7f9080467c00,
+ obj=0x7f909bca3f00, argc=1, argv=0x7f908097a158, vp=<value optimized out>)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/js/src/xpconnect/src/xpcwrappednativejsops.cpp:1740
+ funobj = <value optimized out>
+ wrapper = <value optimized out>
+ member = 0x7f907d9263b0
+ ccx = {<nsAXPCNativeCallContext> = {
+ _vptr.nsAXPCNativeCallContext = 0x7f909ea74c50},
+ mState = XPCCallContext::READY_TO_CALL, mXPC = 0x7f90a0a16c10,
+ mThreadData = 0x7f90a0aa1a60, mXPCContext = 0x7f90823f0700,
+ mJSContext = 0x7f9080467c00, mContextPopRequired = 0,
+ mDestroyJSContextInDestructor = 0,
+ mCallerLanguage = XPCContext::LANG_JS,
+ mPrevCallerLanguage = XPCContext::LANG_UNKNOWN,
+ mPrevCallContext = 0x0, mOperandJSObject = 0x7f909bca3f00,
+ mCurrentJSObject = 0x7f909bca3f00,
+ mFlattenedJSObject = 0x7f909bca3f00, mWrapper = 0x7f907d92d2e0,
+ mTearOff = 0x7f907d92d318, mScriptableInfo = 0x0,
+ mSet = 0x7f907d9144a0, mInterface = 0x7f907d926350,
+ mMember = 0x7f907d9263b0, mName = 140259010974516,
+ mStaticMemberIsLocal = 0, mArgc = 1, mArgv = 0x7f908097a158,
+ mRetVal = 0x7fff32df1518, mReturnValueWasSet = 0, mMethodIndex = 5,
+ mCallee = 0x0,
+ mStringWrapperData = "4\223\206\230\220\177\000\000\000|F\200\220\177\000\000\000\000\000\000\220\177\000\000p\240\227\200\220\177\000\000\000\000\000\000\005\000\000\000\000\000\000\000\220\177\000"}
+ iface = 0x7f907d926350
+#51 0x0000003b8ae55084 in js_Invoke (cx=0x7f9080467c00, argc=1,
+ vp=0x7f908097a148, flags=2)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/js/src/jsinterp.cpp:1360
+ frame = {regs = 0x0, imacpc = 0x0, slots = 0x0, callobj = 0x0,
+ argsobj = 0, varobj = 0x0, script = 0x0, fun = 0x7f9088563150,
+ thisp = 0x7f909bca3f00, argc = 1, argv = 0x7f908097a158, rval = 22,
+ down = 0x7f908097a070, annotation = 0x0,
+ scopeChain = 0x7f90910dcb40, blockChain = 0x0, sharpDepth = 0,
+ sharpArray = 0x0, flags = 34, dormantNext = 0x0, displaySave = 0x0}
+ argv = 0x7f908097a158
+ funobj = <value optimized out>
+ ok = 59
+ clasp = <value optimized out>
+ i = <value optimized out>
+ mark = 0x7f908097a190
+ sp = <value optimized out>
+ newvp = <value optimized out>
+ v = 140258808572544
+ ops = <value optimized out>
+ hookData = 0x0
+ parent = 0x7f909bca3f00
+ fun = <value optimized out>
+ rootedArgsFlag = 32
+ native = 0x7f909e80afb5 <XPC_WN_CallMethod(JSContext*, JSObject*, uintN, jsval*, jsval*)>
+ script = 0x0
+ nslots = <value optimized out>
+ hook = 0
+#52 0x0000003b8ae4e5d1 in js_Interpret (cx=0x7f9080467c00)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/js/src/jsops.cpp:2240
+ getter = 0x7f9088563150
+ op = JSOP_CALL
+ prop = 0x7f90974243d8
+ npairs = -2137546424
+ currentVersion = 12468
+ obj = 0x7f908c762a80
+ d = 6.9296960457298409e-310
+ off = 48
+ fp = 0x7f908097a070
+ inlineCallCount = 1
+ regs = {pc = 0x7f9097606612 ":", sp = 0x7f908097a160}
+ pc2 = 0x7f9000000001 <Address 0x7f9000000001 out of bounds>
+ clasp = 0x0
+ low = 0
+ rt = 0x7f90a0ee0000
+ op2 = JSOP_PROPINC
+ vp = 0x3a
+ script = 0x7f9097606500
+ originalVersion = 8192
+ obj2 = 0x7f908cc7c980
+ cond = 1
+ lval = 58
+ id = 140259010974516
+ d2 = 0
+ fun = 0x7f9088563150
+ normalJumpTable = {0x3b8ae47d6e, 0x3b8ae47e55, 0x3b8ae47ef7,
+ 0x3b8ae47f34, 0x3b8ae47f78, 0x3b8ae47faa, 0x3b8ae48265,
+ 0x3b8ae482e8, 0x3b8ae483e1, 0x3b8ae4f5c6, 0x3b8ae48e31,
+ 0x3b8ae48e84, 0x3b8ae49091, 0x3b8ae490d5, 0x3b8ae491e3,
+ 0x3b8ae49532, 0x3b8ae49602, 0x3b8ae496d2, 0x3b8ae497a2,
+ 0x3b8ae49bf2, 0x3b8ae4a381, 0x3b8ae4a603, 0x3b8ae4a887,
+ 0x3b8ae4ab0f, 0x3b8ae4ad97, 0x3b8ae4ae6e, 0x3b8ae4af43,
+ 0x3b8ae4b019, 0x3b8ae4b3d5, 0x3b8ae4b505, 0x3b8ae4b635,
+ 0x3b8ae4b7ea, 0x3b8ae4b983, 0x3b8ae4ba19, 0x3b8ae4baa7,
+ 0x3b8ae4bb61, 0x3b8ae4bbc2, 0x3b8ae4bc96, 0x3b8ae4bd57,
+ 0x3b8ae4be50, 0x3b8ae4beab, 0x3b8ae4bfd4, 0x3b8ae4bef3,
+ 0x3b8ae4bedc, 0x3b8ae4bfd6, 0x3b8ae4bef5, 0x3b8ae4bede,
+ 0x3b8ae4bfd8, 0x3b8ae4bef7, 0x3b8ae4bee0, 0x3b8ae4bfd8,
+ 0x3b8ae4bef7, 0x3b8ae4bee0, 0x3b8ae4c984, 0x3b8ae4d1be,
+ 0x3b8ae4d92e, 0x3b8ae4dcc3, 0x3b8ae4e839, 0x3b8ae4e0f0,
+ 0x3b8ae4e839, 0x3b8ae4edd9, 0x3b8ae4edd9, 0x3b8ae4f059,
+ 0x3b8ae4f095, 0x3b8ae4f0d1, 0x3b8ae4c82b, 0x3b8ae4f10d,
+ 0x3b8ae4f149, 0x3b8ae484da, 0x3b8ae485a8, 0x3b8ae4f185,
+ 0x3b8ae4f35b, 0x3b8ae4a042, 0x3b8ae4a0b4, 0x3b8ae4e723,
+ 0x3b8ae48ce5, 0x3b8ae48d5f, 0x3b8ae48deb, 0x3b8ae4e0f2,
+ 0x3b8ae49129, 0x3b8ae4ee2c, 0x3b8ae47e91, 0x3b8ae4df8a,
+ 0x3b8ae4f552, 0x3b8ae4f70c, 0x3b8ae4f786, 0x3b8ae4f801,
+ 0x3b8ae4f8c5, 0x3b8ae4ebc9, 0x3b8ae50d1b, 0x3b8ae50db5,
+ 0x3b8ae50e0c, 0x3b8ae511c7, 0x3b8ae51306, 0x3b8ae513ec,
+ 0x3b8ae4c49f, 0x3b8ae4c488, 0x3b8ae4c4a6, 0x3b8ae4c494,
+ 0x3b8ae4c4ec, 0x3b8ae4c4d5, 0x3b8ae4c4f3, 0x3b8ae4c4e1,
+ 0x3b8ae49522, 0x3b8ae48ed7, 0x3b8ae48f90, 0x3b8ae4904d,
+ 0x3b8ae47ebb, 0x3b8ae4938e, 0x3b8ae4d1be, 0x3b8ae516df,
+ 0x3b8ae48ae5, 0x3b8ae518e1, 0x3b8ae51980, 0x3b8ae514d4,
+ 0x3b8ae515cb, 0x3b8ae51633, 0x3b8ae47e34, 0x3b8ae47d8f,
+ 0x3b8ae4a126, 0x3b8ae4825c, 0x3b8ae4e0f2, 0x3b8ae4de9c,
+ 0x3b8ae50881, 0x3b8ae50881, 0x3b8ae50068, 0x3b8ae4fe79,
+ 0x3b8ae4fe79, 0x3b8ae50675, 0x3b8ae50841, 0x3b8ae516ff,
+ 0x3b8ae4917a, 0x3b8ae47db0, 0x3b8ae51678, 0x3b8ae4fb6d,
+ 0x3b8ae4fb6d, 0x3b8ae4f61e, 0x3b8ae4f69d, 0x3b8ae50467,
+ 0x3b8ae4867f, 0x3b8ae48711, 0x3b8ae4881f, 0x3b8ae4892d,
+ 0x3b8ae48a09, 0x3b8ae5154a, 0x3b8ae4a24c, 0x3b8ae48676,
+ 0x3b8ae4f25c, 0x3b8ae4f354, 0x3b8ae527ba, 0x3b8ae527bc,
+ 0x3b8ae51698, 0x3b8ae47ef7, 0x3b8ae47fc8, 0x3b8ae4fbf4,
+ 0x3b8ae4fcd9, 0x3b8ae4c615, 0x3b8ae4c5e2, 0x3b8ae4c62e,
+ 0x3b8ae4c5fc, 0x3b8ae4ee9f, 0x3b8ae51a13, 0x3b8ae51a64,
+ 0x3b8ae51ab9, 0x3b8ae51b0c, 0x3b8ae51b81, 0x3b8ae51beb,
+ 0x3b8ae51c49, 0x3b8ae51ca5, 0x3b8ae51ca5, 0x3b8ae51d1f,
+ 0x3b8ae51d9f, 0x3b8ae51e70, 0x3b8ae51f21, 0x3b8ae52017,
+ 0x3b8ae52064, 0x3b8ae52182, 0x3b8ae521dc, 0x3b8ae52236,
+ 0x3b8ae5228c, 0x3b8ae52307, 0x3b8ae52393, 0x3b8ae5240a,
+ 0x3b8ae52481, 0x3b8ae4cd7d, 0x3b8ae4f940, 0x3b8ae4f940,
+ 0x3b8ae51f21, 0x3b8ae4ec27, 0x3b8ae4ed53, 0x3b8ae4edb4,
+ 0x3b8ae4edb4, 0x3b8ae47df2, 0x3b8ae47e13, 0x3b8ae4db85,
+ 0x3b8ae47fc8, 0x3b8ae4c984, 0x3b8ae51e70, 0x3b8ae4be50,
+ 0x3b8ae52558...}
+ len = 0
+ str = 0x3a
+ ok = 58
+ atom = 0x0
+ rval = 140258808572544
+ i = 58
+ setter = 0x3a
+ index = 2157420872
+ attrs = 2823501960
+ flags = 0
+ ltmp = 140258609439048
+ j = 0
+ atoms = 0x7f9097606570
+ parent = 0x7f908097a148
+ argc = 1
+ slot = 0
+ str2 = 0x7f908097a148
+ type = JSTYPE_VOID
+ interruptJumpTable = {0x3b8ae47cf9 <repeats 235 times>}
+ rtmp = 0
+ sprop = 0x7f908097a148
+#53 0x0000003b8ae5508e in js_Invoke (cx=0x7f9080467c00, argc=1,
+ vp=0x7f908097a040, flags=0)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/js/src/jsinterp.cpp:1368
+ frame = {regs = 0x7f908097a118, imacpc = 0x0, slots = 0x7f908097a058,
+ callobj = 0x0, argsobj = 0, varobj = 0x0, script = 0x7f9088605160,
+ fun = 0x7f90885469a0, thisp = 0x7f908c762700, argc = 1,
+ argv = 0x7f908097a050, rval = 22, down = 0x0, annotation = 0x0,
+ scopeChain = 0x7f908c762700, blockChain = 0x0, sharpDepth = 0,
+ sharpArray = 0x0, flags = 32, dormantNext = 0x0, displaySave = 0x0}
+ argv = 0x7f908097a050
+ funobj = <value optimized out>
+ ok = 32656
+ clasp = <value optimized out>
+ i = <value optimized out>
+ mark = 0x7f908097a058
+ sp = <value optimized out>
+ newvp = <value optimized out>
+ v = 140258808571776
+ ops = <value optimized out>
+ hookData = 0x0
+ parent = 0x7f908c762700
+ fun = <value optimized out>
+ rootedArgsFlag = 32
+ native = 0
+ script = 0x7f9088605160
+ nslots = <value optimized out>
+ hook = 0
+#54 0x0000003b8ae553fe in js_InternalInvoke (cx=0x7f9080467c00,
+ obj=0x7f908c762700, fval=140258808571776, flags=0,
+ argc=<value optimized out>, argv=<value optimized out>,
+ rval=0x7fff32df1a20)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/js/src/jsinterp.cpp:1423
+ invokevp = 0x7f908097a040
+ mark = 0x7f908097a040
+ ok = <value optimized out>
+#55 0x0000003b8ae1d3d7 in JS_CallFunctionValue (cx=0x7f9080467c00,
+ obj=<value optimized out>, fval=<value optimized out>,
+ argc=<value optimized out>, argv=<value optimized out>,
+ rval=<value optimized out>)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/js/src/jsapi.cpp:5112
+ ok = <value optimized out>
+#56 0x00007f909531b526 in nsJSContext::CallEventHandler (this=0x7f9087e15460,
+ aTarget=<value optimized out>, aScope=<value optimized out>,
+ aHandler=0x7f908c762780, aargv=0x7f907d94b300, arv=0x7fff32df1cb0)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/dom/base/nsJSEnvironment.cpp:2177
+ argv = 0x7f908097a038
+ funval = 140258808571776
+ ok = <value optimized out>
+ mark = 0x7f908097a028
+ argc = 1
+ stackGuard = {mContext = 0x7f9080467c00, mStack = 0x7f908097a028}
+ ar = {mContext = 0x7f9080467c00, mSaveDepth = 0}
+ rv = 0
+ holder = {mContext = 0x7f9087e15460, mTerminations = 0x0}
+ targetVal = 140258808571648
+ tvr = {mContext = 0x7f9080467c00, mTvr = {down = 0x0, count = 1, u = {
+ value = 140734046870064, object = 0x7fff32df1a30,
+ xml = 0x7fff32df1a30, trace = 0x7fff32df1a30,
+ sprop = 0x7fff32df1a30, weakRoots = 0x7fff32df1a30,
+ compiler = 0x7fff32df1a30, script = 0x7fff32df1a30,
+ array = 0x7fff32df1a30}}}
+ target = 0x7f908c762700
+ rval = 22
+ stack = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f90a0a16c48}, <No data fields>}
+ ar = {mContext = 0x7f908234b420, mSaveDepth = -1471465336}
+#57 0x00007f909535925f in nsJSEventListener::HandleEvent (
+ this=0x7f9082311680, aEvent=0x7f907ffe8f38)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/dom/src/events/nsJSEventListener.cpp:266
+ rv = 0
+ iargv = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f907d94b300}, <No data fields>}
+ eventString = {<nsFixedString> = {<nsString> = {<nsAString_internal> = {mData = 0x7f907d94b2e8, mLength = 9, mFlags = 65541}, <No data fields>},
+ mFixedCapacity = 63, mFixedBuf = 0x7fff32df1b40}, mStorage = {99,
+ 111, 109, 109, 97, 110, 100, 0, 31744, 32838, 32656, 0, 7488,
+ 13023, 32767, 0, 7, 0, 0, 0, 46112, 33332, 32656, 0, 53832,
+ 34808, 32656, 0, 29, 0, 5, 1, 63, 0, 32767, 0, 7056, 13023,
+ 32767, 0, 0, 0, 0, 0, 16384, 0, 0, 0, 61252, 61793, 0, 0, 14097,
+ 14756, 49, 0, 45800, 32148, 32656, 0, 9, 0, 0, 0}}
+ atomName = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f909768f4a0}, <No data fields>}
+ funcval = {mObject = 0x7f908c762780, mContext = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f9087e15460}, <No data fields>}}
+ handledScriptError = <value optimized out>
+ vrv = {<nsCOMPtr_base> = {mRawPtr = 0x0}, <No data fields>}
+#58 0x00007f90952308e4 in nsEventListenerManager::HandleEventSubType (
+ this=0x7f908ba7a700, aListenerStruct=0x7f908ba7a740,
+ aListener=0x7f9082311680, aDOMEvent=0x7f907ffe8f38,
+ aCurrentTarget=0x7f908234b420, aPhaseFlags=<value optimized out>)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/content/events/src/nsEventListenerManager.cpp:1041
+ result = <value optimized out>
+#59 0x00007f9095230cce in nsEventListenerManager::HandleEvent (
+ this=0x7f908ba7a700, aPresContext=0x7f9080228c00, aEvent=0x7f907dab9940,
+ aDOMEvent=0x7fff32df20a0, aCurrentTarget=0x7f908234b420, aFlags=6,
+ aEventStatus=0x7fff32df20a8)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/content/events/src/nsEventListenerManager.cpp:1147
+ kungFuDeathGrip = {mRawPtr = 0x7f9082311680}
+ ls = 0x7f908ba7a740
+ useTypeInterface = 0
+ useGenericInterface = 1
+ popupStatePusher = {mOldState = openAllowed}
+ hasListener = 1
+ pusher = {mScx = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f9087e15460}, <No data fields>},
+ mScriptIsRunning = 0, mPushedSomething = 1}
+ currentGroup = 0
+ typeData = 0x0
+ dispData = 0x0
+ iter = {<nsAutoTObserverArray<nsListenerStruct, 2u>::ForwardIterator> = {<nsAutoTObserverArray<nsListenerStruct, 2u>::Iterator> = {<nsTObserverArray_base::Iterator_base> = {mPosition = 1, mNext = 0x0},
+ mArray = @0x7f908ba7a728}, <No data fields>},
+ mEnd = {<nsAutoTObserverArray<nsListenerStruct, 2u>::Iterator> = {<nsTObserverArray_base::Iterator_base> = {mPosition = 1,
+ mNext = 0x7fff32df1ee0},
+ mArray = @0x7f908ba7a728}, <No data fields>}}
+#60 0x00007f90952447a6 in nsEventTargetChainItem::HandleEvent (
+ this=0x7f9097d17d20, aVisitor=..., aFlags=6,
+ aMayHaveNewListenerManagers=1)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/content/events/src/nsEventDispatcher.cpp:246
+No locals.
+#61 0x00007f90952448ca in nsEventTargetChainItem::HandleEventTargetChain (
+ this=0x7f9097d17690, aVisitor=..., aFlags=6, aCallback=0x0,
+ aMayHaveNewListenerManagers=1)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/content/events/src/nsEventDispatcher.cpp:310
+ createdELMs = 2410
+ firstTarget = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f908234b420}, <No data fields>}
+ item = 0x7f9097d17d20
+#62 0x00007f9095244f69 in nsEventDispatcher::Dispatch (
+ aTarget=<value optimized out>, aPresContext=<value optimized out>,
+ aEvent=0x7f907dab9940, aDOMEvent=0x7f907ffe8f38,
+ aEventStatus=0x7fff32df21ec, aCallback=0x0, aTargets=0x0)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/content/events/src/nsEventDispatcher.cpp:573
+ postVisitor = {<nsEventChainVisitor> = {
+ mPresContext = 0x7f9080228c00, mEvent = 0x7f907dab9940,
+ mDOMEvent = 0x7f907ffe8f38, mEventStatus = nsEventStatus_eIgnore,
+ mItemFlags = 0, mItemData = {<nsCOMPtr_base> = {
+ mRawPtr = 0x0}, <No data fields>}}, <No data fields>}
+ t = {<nsCOMPtr_base> = {mRawPtr = 0x7f908234b420}, <No data fields>}
+ topEtci = 0x7f9097d17690
+ rv = 0
+ pool = {static sEtciPool = 0x7f909782f600, static sEtciPoolUsers = 3}
+ targetEtci = 0x7f9097d17d20
+ preVisitor = {<nsEventChainVisitor> = {mPresContext = 0x7f9080228c00,
+ mEvent = 0x7f907dab9940, mDOMEvent = 0x7f907ffe8f38,
+ mEventStatus = nsEventStatus_eIgnore, mItemFlags = 0,
+ mItemData = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f9080467400}, <No data fields>}},
+ mCanHandle = 1 '\001', mForceContentDispatch = 1 '\001',
+ mRelatedTargetIsInAnon = 0 '\000',
+ mOriginalTargetIsInAnon = 0 '\000',
+ mWantsWillHandleEvent = 0 '\000', mParentTarget = 0x0,
+ mEventTargetAtParent = 0x0}
+ content = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f908234b420}, <No data fields>}
+ isInAnon = <value optimized out>
+ status = <value optimized out>
+ target = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f908234b420}, <No data fields>}
+ externalDOMEvent = 1
+ kungFuDeathGrip = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f9080228c00}, <No data fields>}
+#63 0x00007f9095245244 in nsEventDispatcher::DispatchDOMEvent (
+ aTarget=0x7f908234b420, aEvent=<value optimized out>,
+ aDOMEvent=0x7f907ffe8f38, aPresContext=0x7f9080228c00,
+ aEventStatus=0x7fff32df21ec)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/content/events/src/nsEventDispatcher.cpp:636
+ innerEvent = 0x7f907dab9940
+ dontResetTrusted = 0
+ privEvt = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f907ffe8f48}, <No data fields>}
+#64 0x00007f909522e773 in nsEventListenerManager::DispatchEvent (
+ this=<value optimized out>, aEvent=0x7f907ffe8f38, _retval=0x7fff32df2318)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/content/events/src/nsEventListenerManager.cpp:1274
+ context = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f9080228c00}, <No data fields>}
+ status = nsEventStatus_eIgnore
+ rv = <value optimized out>
+ targetNode = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f908234b420}, <No data fields>}
+ document = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f907fff1000}, <No data fields>}
+ shell = <value optimized out>
+#65 0x00007f90951f06db in nsDOMEventRTTearoff::DispatchEvent (
+ this=<value optimized out>, aEvt=0x7f907ffe8f38,
+ _retval=<value optimized out>)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/content/base/src/nsGenericElement.cpp:1672
+ target = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f908ba7a710}, <No data fields>}
+#66 0x00007f90951bdeda in nsContentUtils::DispatchXULCommand (
+ aTarget=0x7f908234b420, aTrusted=<value optimized out>,
+ aSourceEvent=0x7f907fd57ed8, aShell=0x0, aCtrl=0, aAlt=0, aShift=0,
+ aMeta=0)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/content/base/src/nsContentUtils.cpp:5140
+ docEvent = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f907fff1118}, <No data fields>}
+ xulCommand = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f907ffe8fa8}, <No data fields>}
+ pEvent = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f907ffe8f48}, <No data fields>}
+ rv = 0
+ doc = <value optimized out>
+ event = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f907ffe8f38}, <No data fields>}
+ view = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f9080467490}, <No data fields>}
+ target = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f907d9518b0}, <No data fields>}
+ dummy = -1793133634
+#67 0x00007f9095465398 in nsXULElement::PreHandleEvent (
+ this=<value optimized out>, aVisitor=...)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/content/xul/content/src/nsXULElement.cpp:1672
+ nsevent = {<nsCOMPtr_base> = {mRawPtr = 0x0}, <No data fields>}
+ orig = <value optimized out>
+ domDoc = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f907fff1108}, <No data fields>}
+ commandElt = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f908234b458}, <No data fields>}
+ commandContent = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f908234b420}, <No data fields>}
+ xulEvent = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f907fd57f48}, <No data fields>}
+ command = {<nsFixedString> = {<nsString> = {<nsAString_internal> = {
+ mData = 0x7f908ba762b8, mLength = 14,
+ mFlags = 65541}, <No data fields>}, mFixedCapacity = 63,
+ mFixedBuf = 0x7fff32df23b0}, mStorage = {0, 0, 0, 0, 14472,
+ 43083, 32656, 0, 2, 0, 0, 0, 30128, 34956, 32656, 0, 0, 0, 0, 0,
+ 16463, 14756, 49, 0, 19048, 14796, 49, 0, 50024, 32677, 32656, 0,
+ 53, 0, 0, 0, 39920, 36000, 32656, 0, 10220, 13023, 32767, 0, 0,
+ 0, 0, 0, 5197, 18433, 56, 0, 8192, 41190, 32656, 0, 56103, 14755,
+ 49, 0, 25137, 14759, 49, 0}}
+ tag = <value optimized out>
+#68 0x00007f909524462e in nsEventTargetChainItem::PreHandleEvent (
+ this=0x7f9097d172d8, aVisitor=...)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/content/events/src/nsEventDispatcher.cpp:215
+ rv = <value optimized out>
+#69 0x00007f9095244dfe in nsEventDispatcher::Dispatch (
+ aTarget=<value optimized out>, aPresContext=0x7f9080228c00,
+ aEvent=0x7f907dab98e0, aDOMEvent=0x7f907fd57ed8,
+ aEventStatus=0x7fff32df27ec, aCallback=0x0, aTargets=0x0)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/content/events/src/nsEventDispatcher.cpp:520
+ rv = 0
+ pool = {static sEtciPool = 0x7f909782f600, static sEtciPoolUsers = 3}
+ targetEtci = 0x7f9097d172d8
+ preVisitor = {<nsEventChainVisitor> = {mPresContext = 0x7f9080228c00,
+ mEvent = 0x7f907dab98e0, mDOMEvent = 0x7f907fd57ed8,
+ mEventStatus = nsEventStatus_eIgnore, mItemFlags = 0,
+ mItemData = {<nsCOMPtr_base> = {
+ mRawPtr = 0x0}, <No data fields>}}, mCanHandle = 0 '\000',
+ mForceContentDispatch = 1 '\001',
+ mRelatedTargetIsInAnon = 0 '\000',
+ mOriginalTargetIsInAnon = 1 '\001',
+ mWantsWillHandleEvent = 0 '\000', mParentTarget = 0x0,
+ mEventTargetAtParent = 0x0}
+ content = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f908ca09bf0}, <No data fields>}
+ isInAnon = <value optimized out>
+ status = <value optimized out>
+ target = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f908ca09bf0}, <No data fields>}
+ externalDOMEvent = 1
+ kungFuDeathGrip = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f9080228c00}, <No data fields>}
+#70 0x00007f9095245244 in nsEventDispatcher::DispatchDOMEvent (
+ aTarget=0x7f908ca09bf0, aEvent=<value optimized out>,
+ aDOMEvent=0x7f907fd57ed8, aPresContext=0x7f9080228c00,
+ aEventStatus=0x7fff32df27ec)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/content/events/src/nsEventDispatcher.cpp:636
+ innerEvent = 0x7f907dab98e0
+ dontResetTrusted = 0
+ privEvt = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f907fd57ee8}, <No data fields>}
+#71 0x00007f909509ee49 in PresShell::HandleDOMEventWithTarget (
+ this=0x7f9080229000, aTargetContent=0x7f908ca09bf0,
+ aEvent=0x7f907fd57ed8, aStatus=<value optimized out>)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/layout/base/nsPresShell.cpp:6590
+ container = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f9080466c08}, <No data fields>}
+#72 0x00007f90951bde99 in nsContentUtils::DispatchXULCommand (
+ aTarget=0x7f908ca09bf0, aTrusted=<value optimized out>, aSourceEvent=0x0,
+ aShell=0x7f9080229000, aCtrl=0, aAlt=0, aShift=0, aMeta=0)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/content/base/src/nsContentUtils.cpp:5134
+ status = nsEventStatus_eIgnore
+ kungFuDeathGrip = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f9080229000}, <No data fields>}
+ docEvent = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f907fff1118}, <No data fields>}
+ xulCommand = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f907fd57f48}, <No data fields>}
+ pEvent = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f907fd57ee8}, <No data fields>}
+ rv = 0
+ doc = <value optimized out>
+ event = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f907fd57ed8}, <No data fields>}
+ view = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f9080467490}, <No data fields>}
+ target = {<nsCOMPtr_base> = {mRawPtr = 0x0}, <No data fields>}
+ dummy = 0
+#73 0x00007f909518d001 in nsButtonBoxFrame::DoMouseClick (
+ this=0x7f907fa84768, aEvent=0x7fff32df2bb0,
+ aTrustEvent=<value optimized out>)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/layout/xul/base/src/nsButtonBoxFrame.cpp:173
+ isControl = 0
+ isAlt = 0
+ isShift = 0
+ isMeta = 0
+ shell = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f9080229000}, <No data fields>}
+#74 0x00007f909518d1a8 in nsButtonBoxFrame::HandleEvent (this=0x7f907fa84768,
+ aPresContext=0x7f9080228c00, aEvent=0x7fff32df2bb0,
+ aEventStatus=0x7fff32df29c8)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/layout/xul/base/src/nsButtonBoxFrame.cpp:138
+No locals.
+#75 0x00007f90952449a4 in nsEventTargetChainItem::HandleEventTargetChain (
+ this=0x7f9097d170a8, aVisitor=..., aFlags=6, aCallback=0x7fff32df2a80,
+ aMayHaveNewListenerManagers=<value optimized out>)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/content/events/src/nsEventDispatcher.cpp:354
+ createdELMs = 2410
+ firstTarget = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f90888c75b0}, <No data fields>}
+ item = 0x0
+#76 0x00007f9095244f69 in nsEventDispatcher::Dispatch (
+ aTarget=<value optimized out>, aPresContext=<value optimized out>,
+ aEvent=0x7fff32df2bb0, aDOMEvent=0x0, aEventStatus=0x7fff32df30bc,
+ aCallback=0x7fff32df2a80, aTargets=0x0)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/content/events/src/nsEventDispatcher.cpp:573
+ postVisitor = {<nsEventChainVisitor> = {
+ mPresContext = 0x7f9080228c00, mEvent = 0x7fff32df2bb0,
+ mDOMEvent = 0x7f907da565f8, mEventStatus = nsEventStatus_eIgnore,
+ mItemFlags = 0, mItemData = {<nsCOMPtr_base> = {
+ mRawPtr = 0x0}, <No data fields>}}, <No data fields>}
+ t = {<nsCOMPtr_base> = {mRawPtr = 0x7f908ca09bf0}, <No data fields>}
+ topEtci = 0x7f9097d170a8
+ rv = 0
+ pool = {static sEtciPool = 0x7f909782f600, static sEtciPoolUsers = 3}
+ targetEtci = 0x7f9097d17118
+ preVisitor = {<nsEventChainVisitor> = {mPresContext = 0x7f9080228c00,
+ mEvent = 0x7fff32df2bb0, mDOMEvent = 0x0,
+ mEventStatus = nsEventStatus_eIgnore, mItemFlags = 0,
+ mItemData = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f9080467400}, <No data fields>}},
+ mCanHandle = 1 '\001', mForceContentDispatch = 1 '\001',
+ mRelatedTargetIsInAnon = 0 '\000',
+ mOriginalTargetIsInAnon = 1 '\001',
+ mWantsWillHandleEvent = 0 '\000', mParentTarget = 0x0,
+ mEventTargetAtParent = 0x0}
+ content = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f908ca09bf0}, <No data fields>}
+ isInAnon = <value optimized out>
+ status = <value optimized out>
+ target = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f908ca09bf0}, <No data fields>}
+ externalDOMEvent = 0
+ kungFuDeathGrip = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f9080228c00}, <No data fields>}
+#77 0x00007f909509eadb in PresShell::HandleEventInternal (
+ this=0x7f9080229000, aEvent=0x7fff32df2bb0, aView=<value optimized out>,
+ aStatus=0x7fff32df30bc)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/layout/base/nsPresShell.cpp:6525
+ eventCB = {<nsDispatchingCallback> = {
+ _vptr.nsDispatchingCallback = 0x7f9095a029b0}, mPresShell = {
+ mRawPtr = 0x7f9080229000}}
+ wasHandlingKeyBoardEvent = 0
+ popupStatePusher = {mOldState = openControlled}
+ weakView = {mPrev = 0x0, mView = 0x0}
+ isHandlingUserInput = 0
+ userInpStatePusher = {mIsHandlingUserInput = 0}
+ manager = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f9081cd2d00}, <No data fields>}
+ rv = 0
+#78 0x00007f909509ef33 in PresShell::HandleEventWithTarget (
+ this=0x7f9080229000, aEvent=0x7fff32df2bb0, aFrame=<value optimized out>,
+ aContent=<value optimized out>, aStatus=<value optimized out>)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/layout/base/nsPresShell.cpp:6381
+No locals.
+#79 0x00007f9095237ff0 in nsEventStateManager::CheckForAndDispatchClick (
+ this=0x7f9081cd2cf0, aPresContext=<value optimized out>,
+ aEvent=0x7fff32df3220, aStatus=0x7fff32df30bc)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/content/events/src/nsEventStateManager.cpp:3994
+ mouseContent = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f908ca09bf0}, <No data fields>}
+ event = {<nsMouseEvent_base> = {<nsInputEvent> = {<nsGUIEvent> = {<nsEvent> = {eventStructType = 10 '\n', message = 327, refPoint = {x = 268,
+ y = 55}, time = 12433188, flags = 2049,
+ userType = {<nsCOMPtr_base> = {
+ mRawPtr = 0x0}, <No data fields>},
+ target = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f908ca09bf0}, <No data fields>},
+ currentTarget = {<nsCOMPtr_base> = {
+ mRawPtr = 0x0}, <No data fields>},
+ originalTarget = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f908ca09bf0}, <No data fields>}},
+ widget = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f9089f4fc70}, <No data fields>},
+ nativeMsg = 0x0}, isShift = 0, isControl = 0, isAlt = 0,
+ isMeta = 0}, relatedTarget = {<nsCOMPtr_base> = {
+ mRawPtr = 0x0}, <No data fields>}, button = 0, pressure = 0},
+ acceptActivation = 0 '\000', ignoreRootScrollFrame = 0 '\000',
+ reason = nsMouseEvent::eReal, context = nsMouseEvent::eNormal,
+ exit = nsMouseEvent::eChild, clickCount = 1}
+ presShell = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f9080229000}, <No data fields>}
+ ret = 0
+ flags = 0
+#80 0x00007f90952384c4 in nsEventStateManager::PostHandleEvent (
+ this=0x7f9081cd2cf0, aPresContext=0x7f9080228c00, aEvent=0x7fff32df3220,
+ aTargetFrame=0x7f907fa84768, aStatus=0x7fff32df30bc, aView=0x7f908a064c00)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/content/events/src/nsEventStateManager.cpp:2947
+ shell = <value optimized out>
+ presContext = {mRawPtr = 0x7f9080228c00}
+ ret = 0
+#81 0x00007f909509ebf9 in PresShell::HandleEventInternal (
+ this=0x7f9080229000, aEvent=0x7fff32df3220, aView=<value optimized out>,
+ aStatus=0x7fff32df30bc)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/layout/base/nsPresShell.cpp:6548
+ wasHandlingKeyBoardEvent = <value optimized out>
+ popupStatePusher = {mOldState = openAbused}
+ weakView = {mPrev = 0x0, mView = 0x7f908a064c00}
+ isHandlingUserInput = 1
+ userInpStatePusher = {mIsHandlingUserInput = 1}
+ manager = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f9081cd2d00}, <No data fields>}
+ rv = <value optimized out>
+#82 0x00007f909509f074 in PresShell::HandlePositionedEvent (
+ this=0x7f9080229000, aView=0x7f908a064c00,
+ aTargetFrame=<value optimized out>, aEvent=0x7fff32df3220,
+ aEventStatus=0x7fff32df30bc)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/layout/base/nsPresShell.cpp:6364
+ rv = 0
+#83 0x00007f90950a7aad in PresShell::HandleEvent (this=0x7f9080229000,
+ aView=0x7f908a064c00, aEvent=0x7fff32df3220, aEventStatus=0x7fff32df30bc)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/layout/base/nsPresShell.cpp:6228
+ framePresContext = <value optimized out>
+ rootPresContext = <value optimized out>
+ eventPoint = {x = 16080, y = 3300}
+ targetFrame = 0x7f907fa84768
+ frame = <value optimized out>
+ dispatchUsingCoordinates = <value optimized out>
+ rv = <value optimized out>
+#84 0x00007f9095310bf2 in nsViewManager::HandleEvent (
+ this=<value optimized out>, aView=<value optimized out>,
+ aPoint=<value optimized out>, aEvent=0x7fff32df3220,
+ aCaptured=<value optimized out>)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/view/src/nsViewManager.cpp:1224
+ obs = {<nsCOMPtr_base> = {mRawPtr = 0x7f90802290e0}, <No data fields>}
+ status = nsEventStatus_eIgnore
+#85 0x00007f9095313621 in nsViewManager::DispatchEvent (this=0x7f908a064b80,
+ aEvent=0x7fff32df3220, aView=<value optimized out>,
+ aStatus=0x7fff32df31cc)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/view/src/nsViewManager.cpp:1203
+ p2a = 60
+ offset = <value optimized out>
+ baseViewDimensions = <value optimized out>
+ pt = warning: bits 32-64 in computed object were optimized out; replacing with zeroes
+{x = 16110, y = 0}
+ baseView = <value optimized out>
+ view = <value optimized out>
+ capturedEvent = 0
+#86 0x00007f909530deaa in HandleEvent (aEvent=0x7fff32df3220)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/view/src/nsView.cpp:167
+ vm = {<nsCOMPtr_base> = {mRawPtr = 0x7f908a064b80}, <No data fields>}
+ result = nsEventStatus_eIgnore
+ view = 0x7f908a064c00
+#87 0x00007f909d169999 in nsWindow::DispatchEvent (this=0x7f9089f4fc70,
+ aEvent=<value optimized out>, aStatus=@0x7fff32df32ac)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/widget/src/gtk2/nsWindow.cpp:626
+No locals.
+#88 0x00007f909d171b96 in nsWindow::OnButtonReleaseEvent (
+ this=0x7f9089f4fc70, aWidget=<value optimized out>, aEvent=0x7f90886050f0)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/widget/src/gtk2/nsWindow.cpp:3227
+ pressure = 0
+ status = nsEventStatus_eIgnore
+ domButton = 0
+ event = {<nsMouseEvent_base> = {<nsInputEvent> = {<nsGUIEvent> = {<nsEvent> = {eventStructType = 10 '\n', message = 301, refPoint = {x = 268,
+ y = 55}, time = 12433188, flags = 1025,
+ userType = {<nsCOMPtr_base> = {
+ mRawPtr = 0x0}, <No data fields>},
+ target = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f90888c75b0}, <No data fields>},
+ currentTarget = {<nsCOMPtr_base> = {
+ mRawPtr = 0x0}, <No data fields>},
+ originalTarget = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f908ca09bf0}, <No data fields>}},
+ widget = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f9089f4fc70}, <No data fields>},
+ nativeMsg = 0x0}, isShift = 0, isControl = 0, isAlt = 0,
+ isMeta = 0}, relatedTarget = {<nsCOMPtr_base> = {
+ mRawPtr = 0x0}, <No data fields>}, button = 0, pressure = 0},
+ acceptActivation = 0 '\000', ignoreRootScrollFrame = 0 '\000',
+ reason = nsMouseEvent::eReal, context = nsMouseEvent::eNormal,
+ exit = nsMouseEvent::eChild, clickCount = 1}
+#89 0x00007f909d171c01 in button_release_event_cb (widget=0x7f9088083380,
+ event=0x7f90886050f0)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/widget/src/gtk2/nsWindow.cpp:5981
+ window = <value optimized out>
+#90 0x0000003138b51003 in _gtk_marshal_BOOLEAN__BOXED (
+ closure=0x7f90885b6970, return_value=0x7fff32df34b0,
+ n_param_values=<value optimized out>, param_values=0x7f907d92fa90,
+ invocation_hint=<value optimized out>, marshal_data=<value optimized out>)
+ at gtkmarshalers.c:84
+ callback = 0x7f909d171bd2 <button_release_event_cb(GtkWidget*, GdkEventButton*)>
+ cc = 0x7f90885b6970
+ data1 = 0x7f9088083380
+ data2 = 0x0
+ v_return = <value optimized out>
+ __PRETTY_FUNCTION__ = "_gtk_marshal_BOOLEAN__BOXED"
+#91 0x000000384b00b98e in IA__g_closure_invoke (closure=0x7f90885b6970,
+ return_value=0x7fff32df34b0, n_param_values=2,
+ param_values=0x7f907d92fa90, invocation_hint=0x7fff32df3470)
+ at gclosure.c:767
+ marshal = <value optimized out>
+ marshal_data = <value optimized out>
+ in_marshal = <value optimized out>
+ __PRETTY_FUNCTION__ = "IA__g_closure_invoke"
+#92 0x000000384b01f947 in signal_emit_unlocked_R (node=<value optimized out>,
+ detail=0, instance=0x7f9088083380, emission_return=0x7fff32df3600,
+ instance_and_params=0x7f907d92fa90) at gsignal.c:3248
+ tmp = <value optimized out>
+ handler = 0x7f90885b6940
+ accumulator = 0x7f90a82a0cd0
+ emission = {next = 0x0, instance = 0x7f9088083380, ihint = {
+ signal_id = 34, detail = 0, run_type = G_SIGNAL_RUN_FIRST},
+ state = EMISSION_RUN, chain_type = 4}
+ class_closure = 0x7f90a829fe80
+ handler_list = 0x7f90885b6940
+ return_accu = 0x7fff32df34b0
+ accu = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long = 0,
+ v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0,
+ v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0,
+ v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0,
+ v_float = 0, v_double = 0, v_pointer = 0x0}}}
+ signal_id = 34
+ max_sequential_handler_number = 1235
+ return_value_altered = 0
+#93 0x000000384b020c29 in IA__g_signal_emit_valist (
+ instance=<value optimized out>, signal_id=<value optimized out>,
+ detail=<value optimized out>, var_args=0x7fff32df3660) at gsignal.c:2991
+ return_value = {g_type = 20, data = {{v_int = 0, v_uint = 0,
+ v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0,
+ v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0,
+ v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0,
+ v_float = 0, v_double = 0, v_pointer = 0x0}}}
+ error = 0x0
+ rtype = 20
+ static_scope = 0
+ instance_and_params = 0x7f907d92fa90
+ signal_return_type = 20
+ param_values = 0x7f907d92faa8
+ node = 0x7f90a82880b0
+ i = <value optimized out>
+ n_params = 1
+ __PRETTY_FUNCTION__ = "IA__g_signal_emit_valist"
+#94 0x000000384b0213a3 in IA__g_signal_emit (instance=<value optimized out>,
+ signal_id=<value optimized out>, detail=<value optimized out>)
+ at gsignal.c:3038
+ var_args = {{gp_offset = 32, fp_offset = 48,
+ overflow_arg_area = 0x7fff32df3740,
+ reg_save_area = 0x7fff32df3680}}
+#95 0x0000003138c8190f in gtk_widget_event_internal (widget=0x7f9088083380,
+ event=0x7f90886050f0) at gtkwidget.c:4958
+ signal_num = <value optimized out>
+ return_val = 0
+#96 0x0000003138b47d63 in IA__gtk_propagate_event (widget=0x7f9088083380,
+ event=0x7f90886050f0) at gtkmain.c:2442
+ tmp = <value optimized out>
+ handled_event = <value optimized out>
+ __PRETTY_FUNCTION__ = "IA__gtk_propagate_event"
+#97 0x0000003138b48f2b in IA__gtk_main_do_event (event=0x7f90886050f0)
+ at gtkmain.c:1647
+ event_widget = <value optimized out>
+ grab_widget = 0x7f9088083380
+ window_group = <value optimized out>
+ rewritten_event = <value optimized out>
+ tmp_list = <value optimized out>
+ __PRETTY_FUNCTION__ = "IA__gtk_main_do_event"
+#98 0x000000313926039c in gdk_event_dispatch (source=<value optimized out>,
+ callback=<value optimized out>, user_data=<value optimized out>)
+ at gdkevents-x11.c:2372
+ display = <value optimized out>
+ event = 0x7f90886050f0
+#99 0x0000003849c3bd02 in g_main_dispatch (context=0x7f90a82177a0)
+ at gmain.c:1960
+ dispatch = 0x3139260350 <gdk_event_dispatch>
+ was_in_call = 0
+ user_data = 0x0
+ callback = 0
+ cb_funcs = 0x0
+ cb_data = 0x0
+ current_source_link = {data = 0x7f90a821d6a0, next = 0x0}
+ need_destroy = <value optimized out>
+ source = 0x7f90a821d6a0
+ current = 0x7f9099d609d0
+ i = <value optimized out>
+#100 IA__g_main_context_dispatch (context=0x7f90a82177a0) at gmain.c:2513
+No locals.
+#101 0x0000003849c3fae8 in g_main_context_iterate (context=0x7f90a82177a0,
+ block=1, dispatch=1, self=<value optimized out>) at gmain.c:2591
+ max_priority = 2147483647
+ timeout = -1
+ some_ready = 1
+ nfds = 13
+ allocated_nfds = <value optimized out>
+ fds = <value optimized out>
+ __PRETTY_FUNCTION__ = "g_main_context_iterate"
+#102 0x0000003849c3fc9c in IA__g_main_context_iteration (
+ context=0x7f90a82177a0, may_block=1) at gmain.c:2654
+ retval = <value optimized out>
+#103 0x00007f909d189b13 in nsBaseAppShell::DoProcessNextNativeEvent (
+ this=0x7f90a0a7e700, mayWait=<value optimized out>)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/widget/src/xpwidgets/nsBaseAppShell.cpp:155
+ prevVal = nsBaseAppShell::eEventloopNone
+ result = 0
+#104 0x00007f909d189c79 in nsBaseAppShell::OnProcessNextEvent (
+ this=0x7f90a0a7e700, thr=0x7f90a82438b0, mayWait=0,
+ recursionDepth=<value optimized out>)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/widget/src/xpwidgets/nsBaseAppShell.cpp:311
+ start = 1099877142
+ limit = 20
+ oldBlockedWait = 0x0
+ needEvent = 1
+#105 0x0000003139a6c712 in nsThread::ProcessNextEvent (this=0x7f90a82438b0,
+ mayWait=1, result=0x7fff32df3a3c)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/xpcom/threads/nsThread.cpp:508
+ notifyGlobalObserver = 1
+ obs = {<nsCOMPtr_base> = {mRawPtr = 0x7f90a0a7e708}, <No data fields>}
+ rv = <value optimized out>
+#106 0x0000003139a3db88 in NS_ProcessNextEvent_P (
+ thread=<value optimized out>, mayWait=<value optimized out>)
+ at nsThreadUtils.cpp:250
+ val = 1
+#107 0x00007f909d189d69 in nsBaseAppShell::Run (this=0x7f90a0a7e700)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/widget/src/xpwidgets/nsBaseAppShell.cpp:177
+ thread = 0x7f90a82438b0
+#108 0x00007f909c4b589c in nsAppStartup::Run (this=0x7f90a0ad9d80)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/toolkit/components/startup/src/nsAppStartup.cpp:183
+ rv = <value optimized out>
+#109 0x0000003139e1934d in XRE_main (argc=<value optimized out>,
+ argv=<value optimized out>, aAppData=<value optimized out>)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mozilla/toolkit/xre/nsAppRunner.cpp:3483
+ remoteService = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f9099ebc9b0}, <No data fields>}
+ appStartup = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f90a0ad9d80}, <No data fields>}
+ shuttingDown = 0
+ cmdLine = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f9097395cc0}, <No data fields>}
+ workingDir = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f909753ce00}, <No data fields>}
+ xpcom = {mServiceManager = 0x7f90a829a148}
+ desktopStartupIDEnv = <value optimized out>
+ updRoot = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f90a821a180}, <No data fields>}
+ persistent = 1
+ profLD = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f90a0e02fc0}, <No data fields>}
+ dirProvider =
+ {<nsIDirectoryServiceProvider2> = {<nsIDirectoryServiceProvider> = {<nsISupports> = {
+ _vptr.nsISupports = 0x313a02f4c0}, <No data fields>}, <No data fields>}, <nsIProfileStartup> = {<nsISupports> = {
+ _vptr.nsISupports = 0x313a02f508}, <No data fields>},
+ mAppProvider = {<nsCOMPtr_base> = {
+ mRawPtr = 0x0}, <No data fields>},
+ mGREDir = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f90a821a300}, <No data fields>},
+ mXULAppDir = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f90a821a180}, <No data fields>},
+ mProfileDir = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f90a0e02f00}, <No data fields>},
+ mProfileLocalDir = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f90a0e02fc0}, <No data fields>},
+ mProfileNotified = 1 '\001', mExtensionsLoaded = 1 '\001',
+ mAppBundleDirectories = {<nsCOMArray_base> = {mArray = {
+ mImpl = 0x0}}, <No data fields>},
+ mExtensionDirectories = {<nsCOMArray_base> = {mArray = {
+ mImpl = 0x7f90a0e11600}}, <No data fields>},
+ mThemeDirectories = {<nsCOMArray_base> = {mArray = {
+ mImpl = 0x7f90a0e11650}}, <No data fields>}}
+ desktopStartupIDPtr = <value optimized out>
+ nativeApp = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f90a82d4250}, <No data fields>}
+ startOffline = 0
+ profileName = {<nsFixedCString> = {<nsCString> = {<nsACString_internal> = {mData = 0x7f90a0e10218 "default", mLength = 7,
+ mFlags = 65541}, <No data fields>}, mFixedCapacity = 63,
+ mFixedBuf = 0x7fff32df4040 ""},
+ mStorage = "\000\000\000\000\000\000\000\000\200\241!\250\220\177\000\000\240@\337\062\377\177\000\000\260@\337\062\377\177\000\000\016\000\a\200\000\000\000\000T\r\246\071\061", '\000' <repeats 11 times>"\371, \062\246\071\061\000\000"}
+ upgraded = <value optimized out>
+ versionOK = -1712600656
+ appInitiatedRestart = 0
+ desktopStartupID = {<nsFixedCString> = {<nsCString> = {<nsACString_internal> = {mData = 0x7fff32df40a0 "", mLength = 0,
+ mFlags = 65553}, <No data fields>}, mFixedCapacity = 63,
+ mFixedBuf = 0x7fff32df40a0 ""},
+ mStorage = "\000\003!\250\220\177\000\000\032\000\000\000\001\000\000\000\200\241!\250\220\177\000\000\000\000\000\000\000\000\000\000\"\030\246\071\061\000\000\000\371\062\246\071\061\000\000\000HA\337\062\377\177\000\000\000\000\000\000\000\000\000"}
+ display_name = <value optimized out>
+ xremotearg = <value optimized out>
+ _g_set_application_name = <value optimized out>
+ canRun = 1
+ profileLock = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f90a0e11560}, <No data fields>}
+ profD = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f90a0e02f00}, <No data fields>}
+ version = {<nsFixedCString> = {<nsCString> = {<nsACString_internal> = {mData = 0x7fff32df3fe0 "3.1.1_20100720161535/20100720161535", mLength = 35,
+ mFlags = 65553}, <No data fields>}, mFixedCapacity = 63,
+ mFixedBuf = 0x7fff32df3fe0 "3.1.1_20100720161535/20100720161535"}, mStorage = "3.1.1_20100720161535/20100720161535\000\377\177\000\000\270\000\000\000\000\000\000\000\260@\337\062\377\177\000\000\360@\337\062\377\177\000"}
+ needsRestart = 0
+ display = 0x7f90a8264190
+ _gtk_window_set_auto_startup_notification = <value optimized out>
+ osABI = {<nsCString> = {<nsACString_internal> = {
+ mData = 0x3139e24927 "Linux_x86_64-gcc3", mLength = 17,
+ mFlags = 1}, <No data fields>}, <No data fields>}
+ rv = 0
+ gtkModules = <value optimized out>
+ appData = {<nsXREAppData> = {size = 112, directory = 0x7f90a821a180,
+ vendor = 0x0, name = 0x7f90a8202070 "Thunderbird",
+ version = 0x7f90a82040b0 "3.1.1",
+ buildID = 0x7f90a8202080 "20100720161535",
+ ID = 0x7f90a8219220 "{3550f703-e582-4d05-9a08-453d09bdfdc6}",
+ copyright = 0x0, flags = 14, xreDirectory = 0x7f90a821a300,
+ minVersion = 0x7f90a82040b8 "1.9.2.7",
+ maxVersion = 0x7f90a82040c0 "1.9.2.7",
+ crashReporterURL = 0x7f90a8219250 "https://crash-reports.mozilla.com/submit", profile = 0x0}, <No data fields>}
+ localIniFile = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f90a821a240}, <No data fields>}
+ parser = {
+ mSections = {<nsBaseHashtable<nsDepCharHashKey, nsAutoPtr<nsINIParser_internal::INIValue>, nsINIParser_internal::INIValue*>> = {<nsTHashtable<nsBaseHashtableET<nsDepCharHashKey, nsAutoPtr<nsINIParser_internal::INIValue> > >> = {mTable = {ops = 0x3139cc6110, data = 0x0, hashShift = 28,
+ maxAlphaFrac = 192 '\300', minAlphaFrac = 64 '@',
+ entrySize = 24, entryCount = 1, removedCount = 0,
+ generation = 0,
+ entryStore = 0x7f90a8226180 ""}}, <No data fields>}, <No data fields>}, mFileContents = {mRawPtr = 0x7f90a8210400 "[Build"}}
+ ar = <value optimized out>
+ override = 0x0
+ iniFile = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f90a821a240}, <No data fields>}
+ i = <value optimized out>
+#110 0x0000000000401a94 in main (argc=1, argv=0x7fff32df4268)
+ at /usr/src/debug/thunderbird-3.1.1/comm-1.9.2/mail/app/nsMailApp.cpp:101
+ rv = <value optimized out>
+ appData = 0x7f90a821d080
+ appini = {<nsCOMPtr_base> = {
+ mRawPtr = 0x7f90a821a0c0}, <No data fields>}
+ result = <value optimized out>
+From To Syms Read Shared Object Library
+0x0000003848c05640 0x0000003848c10e48 Yes /lib64/libpthread.so.0
+0x0000003b8ae1bcb0 0x0000003b8aea19c8 Yes /usr/lib64/thunderbird-3.1/libmozjs.so
+0x0000003139e0af70 0x0000003139e22878 Yes /usr/lib64/thunderbird-3.1/libxul.so
+0x0000003139602890 0x0000003139602ae8 Yes /usr/lib64/thunderbird-3.1/libxpcom.so
+0x0000003139a37eb0 0x0000003139a87f98 Yes /usr/lib64/thunderbird-3.1/libxpcom_core.so
+0x0000003859400e70 0x0000003859401ce8 Yes /lib64/libplds4.so
+0x00000038598013d0 0x0000003859802b18 Yes /lib64/libplc4.so
+0x0000003858c0cfc0 0x0000003858c2c968 Yes /lib64/libnspr4.so
+0x0000003849000de0 0x0000003849001998 Yes /lib64/libdl.so.2
+0x0000003138a681c0 0x0000003138d0d268 Yes /usr/lib64/libgtk-x11-2.0.so.0
+0x00000038544096b0 0x00000038544150f8 Yes /usr/lib64/libatk-1.0.so.0
+0x000000384c819b60 0x000000384c8812c8 Yes /lib64/libgio-2.0.so.0
+0x0000003851407650 0x0000003851421348 Yes /usr/lib64/libpangoft2-1.0.so.0
+0x000000384d40c850 0x000000384d4745a8 Yes /usr/lib64/libfreetype.so.6
+0x000000384dc05c80 0x000000384dc1ff28 Yes /usr/lib64/libfontconfig.so.1
+0x000000313921d260 0x000000313927f2a8 Yes /usr/lib64/libgdk-x11-2.0.so.0
+0x0000003854005940 0x0000003854017ba8 Yes /usr/lib64/libgdk_pixbuf-2.0.so.0
+0x0000003853404630 0x0000003853408eb8 Yes /usr/lib64/libpangocairo-1.0.so.0
+0x000000385200ede0 0x000000385202d768 Yes /usr/lib64/libpango-1.0.so.0
+0x0000003853809c50 0x000000385385b058 Yes /usr/lib64/libcairo.so.2
+0x000000384b008d20 0x000000384b032a78 Yes /lib64/libgobject-2.0.so.0
+0x000000384b401080 0x000000384b401fc8 Yes /lib64/libgmodule-2.0.so.0
+0x000000384a801590 0x000000384a8029f8 Yes /lib64/libgthread-2.0.so.0
+0x0000003849802140 0x00000038498055a8 Yes /lib64/librt.so.1
+0x0000003849c155c0 0x0000003849c99d58 Yes /lib64/libglib-2.0.so.0
+0x000000384b81dd80 0x000000384b8ab938 Yes /usr/lib64/libX11.so.6
+0x0000003137e09060 0x0000003137e19878 Yes /usr/lib64/libdbus-glib-1.so.2
+0x000000384ac07090 0x000000384ac2e4c8 Yes /lib64/libdbus-1.so.3
+0x0000003850009230 0x000000385002abd8 Yes /usr/lib64/libhunspell-1.2.so.0
+0x00000038508563f0 0x00000038508c33f6 Yes /usr/lib64/libstdc++.so.6
+0x0000003848803ea0 0x0000003848843fa8 Yes /lib64/libm.so.6
+0x000000384d802910 0x000000384d812f48 Yes /lib64/libgcc_s.so.1
+0x000000384841e9a0 0x000000384852b820 Yes /lib64/libc.so.6
+0x0000003848000af0 0x0000003848018904 Yes /lib64/ld-linux-x86-64.so.2
+0x0000003136a03530 0x0000003136a0e638 Yes /usr/lib64/libXext.so.6
+0x000000313ae130d0 0x000000313ae4f938 Yes /usr/lib64/libXt.so.6
+0x000000384fc2d6c0 0x000000384fcadb98 Yes /lib64/libasound.so.2
+0x000000384f001370 0x000000384f004178 Yes /usr/lib64/libXfixes.so.3
+0x000000384a4038c0 0x000000384a412528 Yes /lib64/libresolv.so.2
+0x0000003849401ef0 0x000000384940d228 Yes /lib64/libz.so.1
+0x000000384a005550 0x000000384a015038 Yes /lib64/libselinux.so.1
+0x000000384c403b70 0x000000384c41ca08 Yes /lib64/libexpat.so.1
+0x000000384ec018c0 0x000000384ec07f58 Yes /usr/lib64/libXrender.so.1
+0x0000003137600a20 0x0000003137601508 Yes /usr/lib64/libXinerama.so.1
+0x0000003136e01eb0 0x0000003136e0c608 Yes /usr/lib64/libXi.so.6
+0x0000003137201720 0x0000003137206828 Yes /usr/lib64/libXrandr.so.2
+0x000000384f402880 0x000000384f407678 Yes /usr/lib64/libXcursor.so.1
+0x0000003138600b40 0x0000003138601908 Yes /usr/lib64/libXcomposite.so.1
+0x0000003853c00a90 0x0000003853c01638 Yes /usr/lib64/libXdamage.so.1
+0x000000384d004830 0x000000384d01e7a8 Yes /usr/lib64/libpng12.so.0
+0x0000003851807230 0x0000003851851e78 Yes /usr/lib64/libpixman-1.so.0
+0x000000384c008650 0x000000384c013898 Yes /usr/lib64/libxcb.so.1
+0x00000031382019f0 0x00000031382062a8 Yes /usr/lib64/libSM.so.6
+0x0000003855804d70 0x0000003855813778 Yes /usr/lib64/libICE.so.6
+0x000000384bc00dd0 0x000000384bc01b68 Yes /usr/lib64/libXau.so.6
+0x0000003137a014b0 0x0000003137a02be8 Yes /lib64/libuuid.so.1
+0x00007f90a2164110 0x00007f90a216c258 Yes /lib64/libnss_files.so.2
+0x00007f90a1f3abc0 0x00007f90a1f5c818 Yes /usr/lib64/gtk-2.0/2.10.0/engines/libclearlooks.so
+0x00007f90a1d35620 0x00007f90a1d35e08 Yes /usr/lib64/gtk-2.0/modules/libpk-gtk-module.so
+0x00007f90a1b2ffb0 0x00007f90a1b321e8 Yes /usr/lib64/gtk-2.0/modules/libcanberra-gtk-module.so
+0x00007f90a192bc60 0x00007f90a192d0a8 Yes /usr/lib64/libcanberra-gtk.so.0
+0x0000003860c03280 0x0000003860c0c318 Yes /usr/lib64/libcanberra.so.0
+0x000000385ec01fa0 0x000000385ec05fd8 Yes /usr/lib64/libvorbisfile.so.3
+0x000000385c003700 0x000000385c01a718 Yes /usr/lib64/libvorbis.so.0
+0x000000385bc018a0 0x000000385bc03bb8 Yes /usr/lib64/libogg.so.0
+0x000000385c801e30 0x000000385c809ca8 Yes /usr/lib64/libtdb.so.1
+0x000000385b402370 0x000000385b406758 Yes /usr/lib64/libltdl.so.7
+0x000000313c222430 0x000000313c268f08 Yes /usr/lib64/libgnomeui-2.so.0
+0x00007f90a16d6d70 0x00007f90a170d068 Yes /usr/lib64/libbonoboui-2.so.0
+0x000000313b20bcf0 0x000000313b228cd8 Yes /usr/lib64/libgnomecanvas-2.so.0
+0x000000313b606ee0 0x000000313b610e28 Yes /usr/lib64/libgnome-2.so.0
+0x0000003861402ef0 0x00000038614155e8 Yes /usr/lib64/libart_lgpl_2.so.2
+0x000000313a617900 0x000000313a64f618 Yes /usr/lib64/libgnomevfs-2.so.0
+0x0000003856411b30 0x000000385642da28 Yes /usr/lib64/libgconf-2.so.4
+0x000000399ea06d70 0x000000399ea15bd8 Yes /usr/lib64/libgnome-keyring.so.0
+0x0000003859027fa0 0x0000003859052ee8 Yes /usr/lib64/libbonobo-2.so.0
+0x000000385f80adf0 0x000000385f812f58 Yes /usr/lib64/libbonobo-activation.so.4
+0x0000003855427990 0x000000385544b6a8 Yes /usr/lib64/libORBit-2.so.0
+0x00007f90a1393950 0x00007f90a1470048 Yes /usr/lib64/libxml2.so.2
+0x0000003858401b10 0x0000003858406ee8 Yes /lib64/libpopt.so.0
+0x00007f90a11629a0 0x00007f90a1166178 Yes /usr/lib64/libgailutil.so.18
+0x0000003856014500 0x0000003856046708 Yes /usr/lib64/libssl.so.10
+0x000000385105c900 0x0000003851121288 Yes /lib64/libcrypto.so.10
+0x000000399ee00ca0 0x000000399ee01aa8 Yes /usr/lib64/libavahi-glib.so.1
+0x00000039a2803390 0x00000039a2808698 Yes /usr/lib64/libavahi-common.so.3
+0x00000039a24038b0 0x00000039a240bf68 Yes /usr/lib64/libavahi-client.so.3
+0x0000003857c00e10 0x0000003857c01688 Yes /lib64/libutil.so.1
+0x00000039a1406d00 0x00000039a1450078 Yes /lib64/libgcrypt.so.11
+0x000000385f003110 0x000000385f003ad8 Yes /usr/lib64/libORBitCosNaming-2.so.0
+0x0000003851c06c00 0x0000003851c27268 Yes /lib64/libgssapi_krb5.so.2
+0x0000003852c18540 0x0000003852c73f08 Yes /lib64/libkrb5.so.3
+0x00007f90a0f5e220 0x00007f90a0f5ed08 Yes /lib64/libcom_err.so.2
+0x00000038528055c0 0x000000385281e6b8 Yes /lib64/libk5crypto.so.3
+0x00000038570007f0 0x0000003857000d58 Yes /lib64/libgpg-error.so.0
+0x00000038524026c0 0x00000038524067b8 Yes /lib64/libkrb5support.so.0
+0x0000003850c00aa0 0x0000003850c00fa8 Yes /lib64/libkeyutils.so.1
+0x00007f90a0bfc580 0x00007f90a0bfdce8 Yes /usr/lib64/gconv/UTF-16.so
+0x00007f90a04c9c30 0x00007f90a06ec5a8 Yes /usr/lib64/thunderbird-3.1/components/libmail.so
+0x00007f90a0230990 0x00007f90a023ca88 Yes /usr/lib64/thunderbird-3.1/components/libspellchecker.so
+0x00007f90a001ecf0 0x00007f90a0026708 Yes /usr/lib64/thunderbird-3.1/components/libchrome.so
+0x00007f909fd280b0 0x00007f909fda86f8 Yes /usr/lib64/thunderbird-3.1/components/libnecko.so
+0x00007f909f0d6890 0x00007f909f0de728 Yes /usr/lib64/thunderbird-3.1/components/libpref.so
+0x00007f909eea9370 0x00007f909eeb4cf8 Yes /usr/lib64/thunderbird-3.1/components/libi18n.so
+0x00007f909ec9a2b0 0x00007f909ec9de38 Yes /usr/lib64/thunderbird-3.1/components/libdbusservice.so
+0x00007f909ea86e60 0x00007f909ea8ffe8 Yes /usr/lib64/thunderbird-3.1/components/libjar50.so
+0x00007f909e7dfa20 0x00007f909e8425f8 Yes /usr/lib64/thunderbird-3.1/components/libxpconnect.so
+0x00007f909d163930 0x00007f909d199b68 Yes /usr/lib64/thunderbird-3.1/components/libwidget_gtk2.so
+0x00007f909cf3eeb0 0x00007f909cf42bc8 Yes /usr/lib64/thunderbird-3.1/libgkgfx.so
+0x00007f909cd047b0 0x00007f909cd26068 Yes /usr/lib64/thunderbird-3.1/libthebes.so
+0x00007f909cae9ee0 0x00007f909caeb0c8 Yes /usr/lib64/thunderbird-3.1/libgtkxtbin.so
+0x00007f909c8e6300 0x00007f909c8e6b98 Yes /usr/lib64/thunderbird-3.1/libgfxpsshar.so
+0x00007f909c6e2480 0x00007f909c6e2f28 Yes /usr/lib64/gconv/ISO8859-2.so
+0x00007f909c4b4ca0 0x00007f909c4d1af8 Yes /usr/lib64/thunderbird-3.1/components/libtoolkitcomps.so
+0x00007f909c27cc80 0x00007f909c29c008 Yes /usr/lib64/thunderbird-3.1/components/libembedcomponents.so
+0x00007f909bee98f0 0x00007f909bef7b38 Yes /usr/lib64/thunderbird-3.1/components/libcaps.so
+0x00007f909aeba890 0x00007f909aebc898 Yes /usr/lib64/thunderbird-3.1/components/libsystem-pref.so
+0x00007f909acb4ea0 0x00007f909acb6738 Yes /usr/lib64/thunderbird-3.1/components/libwindowds.so
+0x00007f909aa8d010 0x00007f909aaa3608 Yes /usr/lib64/thunderbird-3.1/components/librdf.so
+0x00007f909a86a600 0x00007f909a878df8 Yes /usr/lib64/thunderbird-3.1/components/libnsappshell.so
+0x00007f909a600930 0x00007f909a63e748 Yes /usr/lib64/thunderbird-3.1/components/libdocshell.so
+0x00007f909a3e1970 0x00007f909a3e6f38 Yes /usr/lib64/thunderbird-3.1/components/libmozgnome.so
+0x000000313aa033f0 0x000000313aa06538 Yes /usr/lib64/libnotify.so.1
+0x00007f909a1d3de0 0x00007f909a1daab8 Yes /usr/lib64/gnome-vfs-2.0/modules/libfile.so
+0x0000003858801350 0x0000003858803448 Yes /lib64/libattr.so.1
+0x000000385a801d30 0x000000385a805c08 Yes /lib64/libacl.so.1
+0x00007f9099fc9770 0x00007f9099fcd038 Yes /usr/lib64/libfam.so.0
+0x00007f9099aaf560 0x00007f9099ae0c88 Yes /usr/lib64/thunderbird-3.1/components/libhtmlpars.so
+0x00007f90997d5130 0x00007f90997e6588 Yes /usr/lib64/thunderbird-3.1/components/libuconv.so
+0x00007f90995abe20 0x00007f90995b8d88 Yes /usr/lib64/thunderbird-3.1/components/libstoragecomps.so
+0x00007f9099333780 0x00007f90993860f8 Yes /usr/lib64/thunderbird-3.1/libsqlite3.so
+0x00007f9095061630 0x00007f90955612c8 Yes /usr/lib64/thunderbird-3.1/components/libgklayout.so
+0x00007f9094b821e0 0x00007f9094ba2da8 Yes /usr/lib64/thunderbird-3.1/components/libimglib2.so
+0x00007f90949584a0 0x00007f9094972008 Yes /usr/lib64/libjpeg.so.62
+0x00007f9094748910 0x00007f909474f0f8 Yes /usr/lib64/thunderbird-3.1/components/libgkgfxthebes.so
+0x00007f909453ef30 0x00007f90945407e8 Yes /usr/lib64/thunderbird-3.1/components/libcommandlines.so
+0x00007f90940ece30 0x00007f90940f7838 Yes /usr/lib64/thunderbird-3.1/components/libwebbrwsr.so
+0x00007f9093ee45c0 0x00007f9093ee5558 Yes /usr/lib64/thunderbird-3.1/components/libpermissions.so
+0x00007f9093cdbbc0 0x00007f9093cdf968 Yes /usr/lib64/thunderbird-3.1/components/libcookie.so
+0x00007f9093ad0ae0 0x00007f9093ad5598 Yes /usr/lib64/thunderbird-3.1/components/libpipboot.so
+0x00007f90964fcfb0 0x00007f90964fe438 Yes /usr/lib64/thunderbird-3.1/components/libremoteservice.so
+0x00007f90962f2ca0 0x00007f90962f6258 Yes /usr/lib64/thunderbird-3.1/components/libchardet.so
+0x000000313be00be0 0x000000313be01c08 Yes /usr/lib64/libXss.so.1
+0x00007f9095df7730 0x00007f9095dfc2d8 Yes /usr/lib64/thunderbird-3.1/components/libintlapp.so
+0x00007f9095be9290 0x00007f9095bef168 Yes /usr/lib64/thunderbird-3.1/components/libimgicon.so
+0x00007f908d204aa0 0x00007f908d21dbb8 Yes /usr/lib64/gio/modules/libgvfsdbus.so
+0x00007f908cfed190 0x00007f908cff7418 Yes /usr/lib64/libgvfscommon.so.0
+0x00007f908cdd8770 0x00007f908cde02b8 Yes /lib64/libudev.so.0
+0x00007f908c4fa070 0x00007f908c4fd1a8 Yes /usr/lib64/thunderbird-3.1/components/libtxmgr.so
+0x00007f908bfe57f0 0x00007f908bff3978 Yes (*) /usr/lib64/mozilla/extensions/{3550f703-e582-4d05-9a08-453d09bdfdc6}/{e2fda1a4-762b-4020-b5ad-a41df1933103}/components/libcalbasecomps.so
+0x00000038662194f0 0x0000003866242668 Yes /usr/lib64/libical.so.0
+0x00007f908bbf7340 0x00007f908bbfbc58 Yes /usr/lib64/thunderbird-3.1/components/libtkautocomplete.so
+0x00007f908b7fd0f0 0x00007f908b7fea98 Yes /usr/lib64/gtk-2.0/2.10.0/immodules/im-ibus.so
+0x000000384f80f2e0 0x000000384f82b6f8 Yes /usr/lib64/libibus.so.2
+0x00007f908b2f52a0 0x00007f908b2fa618 Yes /usr/lib64/thunderbird-3.1/components/libsatchel.so
+0x00007f908b0bf7d0 0x00007f908b0da458 Yes /usr/lib64/thunderbird-3.1/components/libmork.so
+0x00007f908aa8f9d0 0x00007f908aad2ac8 Yes /usr/lib64/thunderbird-3.1/components/libpipnss.so
+0x000000385ac07c40 0x000000385ac29948 Yes /usr/lib64/libssl3.so
+0x0000003859c09880 0x0000003859c216a8 Yes /usr/lib64/libsmime3.so
+0x000000385a0184d0 0x000000385a0fc6b8 Yes /usr/lib64/libnss3.so
+0x000000385a4083a0 0x000000385a4135c8 Yes /usr/lib64/libnssutil3.so
+0x00007f908a83aa10 0x00007f908a863c68 Yes /usr/lib64/libsoftokn3.so
+0x000000385cc08b20 0x000000385cc758c8 Yes /usr/lib64/libsqlite3.so.0
+0x00007f908a612180 0x00007f908a62e858 Yes /usr/lib64/libnssdbm3.so
+0x00000038568030c0 0x000000385683d848 Yes /usr/lib64/libfreebl3.so
+0x00007f908a3a4d70 0x00007f908a3b3f48 Yes /usr/lib64/libnssckbi.so
+0x00007f908a1830b0 0x00007f908a186438 Yes /usr/lib64/thunderbird-3.1/components/libmsgsmime.so
+0x00007f9089cdd0c0 0x00007f9089cf42c8 Yes /usr/lib64/thunderbird-3.1/components/libmailcomps.so
+0x00007f9089ad6920 0x00007f9089ad8008 Yes /usr/lib64/thunderbird-3.1/components/libunixproxy.so
+0x00007f9088ed2af0 0x00007f9088ed3768 Yes /lib64/libnss_mdns4_minimal.so.2
+0x00007f9088ccd000 0x00007f9088cd0348 Yes /lib64/libnss_dns.so.2
+0x00007f90882f86b0 0x00007f90882fd318 Yes /usr/lib64/libesd.so.0
+0x000000399e2062f0 0x000000399e21ceb8 Yes /usr/lib64/libaudiofile.so.0
+0x00007f9087bfc050 0x00007f9087bfef88 Yes /usr/lib64/libcanberra-0.24/libcanberra-pulse.so
+0x00007f90879c2e50 0x00007f90879ea398 Yes /usr/lib64/libpulse.so.0
+0x00007f9087778460 0x00007f90877a3758 Yes /usr/lib64/libpulsecommon-0.9.21.so
+0x00007f90875643b0 0x00007f90875673b8 Yes /usr/lib64/libXtst.so.6
+0x000000385c402ee0 0x000000385c406a88 Yes /lib64/libwrap.so.0
+0x00007f9087304540 0x00007f9087345ec8 Yes /usr/lib64/libsndfile.so.1
+0x00007f90870fb1c0 0x00007f90870fd7e8 Yes /usr/lib64/libasyncns.so.0
+0x00007f9086ee5070 0x00007f9086ef2a08 Yes /lib64/libnsl.so.1
+0x000000385d00be70 0x000000385d030e08 Yes /usr/lib64/libFLAC.so.8
+0x000000385d4139c0 0x000000385d415eb8 Yes /usr/lib64/libvorbisenc.so.2
+0x00007f9081fd7960 0x00007f9081ff0fd8 Yes /usr/lib64/thunderbird-3.1/components/libgkplugin.so
+0x00007f907f7ec480 0x00007f907f7f7758 Yes /usr/lib64/thunderbird-3.1/components/libcomposer.so
+0x00007f907d3efc00 0x00007f907d3fc128 Yes /usr/lib64/gio/modules/libgioremote-volume-monitor.so
+(*): Shared library is missing debugging information.
+$1 = 0x0
+$2 = 0x0
+rax 0x0 0
+rbx 0xb 11
+rcx 0xffffffffffffffff -1
+rdx 0xb 11
+rsi 0x4deb 19947
+rdi 0x4deb 19947
+rbp 0x7fff32dedc20 0x7fff32dedc20
+rsp 0x7fff32dedc08 0x7fff32dedc08
+r8 0x0 0
+r9 0x1 1
+r10 0x8 8
+r11 0x206 518
+r12 0xffffffff 4294967295
+r13 0x7f907d912a60 140258558683744
+r14 0x7f9097882000 140258994298880
+r15 0x7fff32dee2f0 140734046855920
+rip 0x3848c0f30b 0x3848c0f30b <raise+43>
+eflags 0x206 [ PF IF ]
+cs 0x33 51
+ss 0x2b 43
+ds 0x0 0
+es 0x0 0
+fs 0x0 0
+gs 0x0 0
+Dump of assembler code for function raise:
+ 0x0000003848c0f2e0 <+0>: mov %fs:0x2d4,%ecx
+ 0x0000003848c0f2e8 <+8>: mov %fs:0x2d0,%esi
+ 0x0000003848c0f2f0 <+16>: mov %ecx,%eax
+ 0x0000003848c0f2f2 <+18>: movslq %edi,%rdx
+ 0x0000003848c0f2f5 <+21>: movslq %esi,%rsi
+ 0x0000003848c0f2f8 <+24>: sar $0x1f,%eax
+ 0x0000003848c0f2fb <+27>: mov %eax,%edi
+ 0x0000003848c0f2fd <+29>: xor %ecx,%edi
+ 0x0000003848c0f2ff <+31>: sub %eax,%edi
+ 0x0000003848c0f301 <+33>: mov $0xea,%eax
+ 0x0000003848c0f306 <+38>: movslq %edi,%rdi
+ 0x0000003848c0f309 <+41>: syscall
+=> 0x0000003848c0f30b <+43>: cmp $0xfffffffffffff000,%rax
+ 0x0000003848c0f311 <+49>: ja 0x3848c0f315 <raise+53>
+ 0x0000003848c0f313 <+51>: repz retq
+ 0x0000003848c0f315 <+53>: mov 0x207c64(%rip),%rdx # 0x3848e16f80
+ 0x0000003848c0f31c <+60>: neg %eax
+ 0x0000003848c0f31e <+62>: mov %eax,%fs:(%rdx)
+ 0x0000003848c0f321 <+65>: or $0xffffffffffffffff,%eax
+ 0x0000003848c0f324 <+68>: retq
+End of assembler dump.
+Debuginfo absent: 412783fb5e761fdab4f06a8d0a5381e173c4db31
diff --git a/tests/btparser/frame.at b/tests/btparser/frame.at
new file mode 100644
index 00000000..28c34ac5
--- /dev/null
+++ b/tests/btparser/frame.at
@@ -0,0 +1,615 @@
+# Checking the btparser. -*- Autotest -*-
+
+AT_BANNER([Frames])
+
+## ------------- ##
+## btp_frame_dup ##
+## ------------- ##
+
+AT_TESTFUN([btp_frame_dup],
+[[
+#include <lib/frame.h>
+#include <lib/utils.h>
+#include <assert.h>
+
+int main(void)
+{
+ struct btp_frame *frame1 = btp_frame_new();;
+ frame1->function_name = btp_strdup("test1");
+ frame1->function_type = btp_strdup("type1");
+ frame1->number = 10;
+ frame1->source_file = btp_strdup("file1");
+ frame1->source_line = 11;
+ frame1->address = 12;
+
+ struct btp_frame *frame0 = btp_frame_new();;
+ frame0->function_name = btp_strdup("test0");
+ frame0->function_type = btp_strdup("type0");
+ frame0->number = 13;
+ frame0->source_file = btp_strdup("file0");
+ frame0->source_line = 14;
+ frame0->address = 15;
+ frame0->next = frame1;
+
+ /* Test the duplication without siblings. */
+ struct btp_frame *frame = btp_frame_dup(frame0, false);
+ assert(NULL == frame->next);
+ assert(frame->function_name != frame0->function_name);
+ assert(frame->function_type != frame0->function_type);
+ assert(frame->source_file != frame0->source_file);
+ assert(0 == btp_frame_cmp(frame, frame0, true));
+ btp_frame_free(frame);
+
+ /* Test the duplication with the siblings. */
+ frame = btp_frame_dup(frame0, true);
+ assert(frame->function_name != frame0->function_name);
+ assert(frame->function_type != frame0->function_type);
+ assert(frame->source_file != frame0->source_file);
+ assert(0 == btp_frame_cmp(frame, frame0, true));
+ assert(frame->next != frame1);
+ assert(0 == btp_frame_cmp(frame->next, frame1, true));
+ btp_frame_free(frame->next);
+ btp_frame_free(frame);
+
+ btp_frame_free(frame1);
+ btp_frame_free(frame0);
+ return 0;
+}
+]])
+
+## --------------------------- ##
+## btp_frame_parse_frame_start ##
+## --------------------------- ##
+
+AT_TESTFUN([btp_frame_parse_frame_start],
+[[
+#include <lib/frame.h>
+#include <assert.h>
+
+/**
+ * @param input
+ * The input text stream.
+ * @param parsed_char_count
+ * The expected number of characters parsed (taken) from input.
+ * @param expected_frame_number
+ * The expected parsed frame number.
+ */
+void check(char *input,
+ int parsed_char_count,
+ unsigned expected_frame_number)
+{
+ int number;
+ char *old_input = input;
+ assert(parsed_char_count == btp_frame_parse_frame_start(&input, &number));
+ if (0 < parsed_char_count)
+ {
+ assert(number == expected_frame_number);
+ assert(*input == '\0');
+ }
+ else
+ {
+ /* Check that the pointer is not moved. */
+ assert(old_input == input);
+ }
+}
+
+int main(void)
+{
+ check("#10 " , 4, 10);
+ check("#0 " , 4, 0);
+ check("#99999 ", 8, 99999);
+ check("ab " , 0, 0);
+ check("#ab " , 0, 0);
+ check("#-9999 " , 0, 9999);
+ return 0;
+}
+]])
+
+## --------------------------- ##
+## btp_frame_parseadd_operator ##
+## --------------------------- ##
+
+AT_TESTFUN([btp_frame_parseadd_operator],
+[[
+#include <lib/frame.h>
+#include <lib/strbuf.h>
+#include <assert.h>
+#include <string.h>
+
+void check(char *input, int parsed_length)
+{
+ printf("Testing '%s' -> %d\n", input, parsed_length);
+ char *old_input = input;
+ struct btp_strbuf *strbuf = btp_strbuf_new();
+ assert(parsed_length == btp_frame_parseadd_operator(&input, strbuf));
+ printf(" input = '%s', old_input = '%s'\n", input, old_input);
+
+ /* Check that the input pointer was updated properly. */
+ assert(*input == old_input[parsed_length]);
+
+ /* Check that the strbuf has been modified accordingly to what was parsed. */
+ assert(0 == strncmp(strbuf->buf, old_input, parsed_length));
+ assert(strbuf->len == parsed_length);
+
+ btp_strbuf_free(strbuf);
+}
+
+int main(void)
+{
+ check("operator>", strlen("operator>"));
+ check("operator->", strlen("operator->"));
+ check("operator new", strlen("operator new"));
+ check("operator new[]", strlen("operator new[]"));
+ check("operator delete", strlen("operator delete"));
+ check("operator del", 0);
+ check("operator delete[] (test)", strlen("operator delete[]"));
+ /* Red Hat Bugzilla bug #542445 */
+ check("cairo_add_operator (test)", 0);
+ return 0;
+}
+]])
+
+## ----------------------------- ##
+## btp_frame_parse_function_name ##
+## ----------------------------- ##
+
+AT_TESTFUN([btp_frame_parse_function_name],
+[[
+#include <lib/frame.h>
+#include <lib/utils.h>
+#include <lib/location.h>
+#include <assert.h>
+#include <stdlib.h>
+#include <string.h>
+
+void check(bool success, char *input)
+{
+ /* Function name must be ended with a space. */
+ char *input_with_space = btp_malloc(strlen(input) + 2);
+ strcpy(input_with_space, input);
+ input_with_space[strlen(input)] = ' ';
+ input_with_space[strlen(input) + 1] = '\0';
+
+ char *function_name = NULL, *function_type = NULL;
+ char *old_input_with_space = input_with_space;
+ printf("Parsing '%s'\n", input);
+ struct btp_location location;
+ btp_location_init(&location);
+ assert(success == btp_frame_parse_function_name(&input_with_space,
+ &function_name,
+ &function_type,
+ &location));
+
+ if (success)
+ {
+ assert(function_name);
+ printf("Function name '%s'\n", function_name);
+ assert(strcmp(function_name, input) == 0);
+ assert(function_type == NULL);
+ free(function_name);
+ assert(*input_with_space == ' ');
+ }
+ else
+ {
+ /* Check that the pointer is not moved. */
+ assert(old_input_with_space == input_with_space);
+ }
+
+ free(old_input_with_space);
+}
+
+int main(void)
+{
+ check(true, "??");
+ check(true, "IA__g_bookmark_file_to_file");
+ check(true, "pthread_cond_timedwait@@GLIBC_2.3.2");
+ check(true, "_pixman_walk_composite_region");
+ check(true, "CairoOutputDev::tilingPatternFill");
+ check(true, "sdr::(anonymous namespace)::ViewContact::~ViewContact");
+ check(true, "operator==<nsIAtom, nsICSSPseudoClass>");
+ return 0;
+}
+]])
+
+## ---------------------------- ##
+## btp_frame_skip_function_args ##
+## ---------------------------- ##
+
+AT_TESTFUN([btp_frame_skip_function_args],
+[[
+#include <lib/frame.h>
+#include <lib/location.h>
+#include <assert.h>
+
+void check(bool success, char *input)
+{
+ char *old_input = input;
+ struct btp_location location;
+ btp_location_init(&location);
+ assert(success == btp_frame_skip_function_args(&input, &location));
+ if (success)
+ {
+ assert(*input == '\0');
+ }
+ else
+ {
+ /* Check that the pointer is not moved. */
+ assert(old_input == input);
+ }
+}
+
+int main(void)
+{
+ /* minimal */
+ check(true, "()");
+ /* newline */
+ check(true, "(\n"
+ "page=0x7f186003e280, \n"
+ "cairo=0x7f18600efd10, printing=0)");
+ /* value optimized out */
+ check(true, "(this=0x7f1860023400, DPI=<value optimized out>)");
+ /* string */
+ check(true, "(filename=0x18971b0 \"/home/jfclere/.recently-used.xbel\")");
+ /* TODO: parentesis balance */
+ return 0;
+}
+]])
+
+## ----------------------------- ##
+## btp_frame_parse_function_call ##
+## ----------------------------- ##
+
+AT_TESTFUN([btp_frame_parse_function_call],
+[[
+#include <lib/frame.h>
+#include <lib/location.h>
+#include <assert.h>
+#include <stdlib.h>
+void check(bool success,
+ char *input,
+ char *expected_function_name,
+ char *expected_function_type)
+{
+ char *old_input = input;
+ char *function_name, *function_type;
+ struct btp_location location;
+ btp_location_init(&location);
+ assert(success == btp_frame_parse_function_call(&input,
+ &function_name,
+ &function_type,
+ &location));
+ if (success)
+ {
+ printf("Expected: '%s', got '%s'\n", expected_function_name, function_name);
+ assert(0 == strcmp(expected_function_name, function_name));
+ assert((!expected_function_type && !function_type) ||
+ 0 == strcmp(expected_function_type, function_type));
+ assert(*input == '\0');
+ free(function_name);
+ }
+ else
+ {
+ /* Check that the pointer is not moved. */
+ assert(old_input == input);
+ }
+}
+
+int main(void)
+{
+ /* minimal */
+ check(true, "?? ()", "??", NULL);
+ check(true, "fsync ()", "fsync", NULL);
+ /* newlines */
+ check(true,
+ "write_to_temp_file (\n"
+ "filename=0x18971b0 \"/home/jfclere/.recently-used.xbel\", \n"
+ "contents=<value optimized out>, length=29917, error=0x7fff3cbe4110)",
+ "write_to_temp_file",
+ NULL);
+ /* C++ */
+ check(true,
+ "osgText::Font::GlyphTexture::apply(osg::State&) const ()",
+ "osgText::Font::GlyphTexture::apply(osg::State&) const",
+ NULL);
+ check(true,
+ "osgUtil::RenderStage::drawInner(osg::RenderInfo&, osgUtil::RenderLeaf*&, bool&) ()",
+ "osgUtil::RenderStage::drawInner(osg::RenderInfo&, osgUtil::RenderLeaf*&, bool&)",
+ NULL);
+ check(true,
+ "nsRegion::RgnRect::operator new ()",
+ "nsRegion::RgnRect::operator new",
+ NULL);
+ check(true,
+ "sigc::internal::slot_call0<sigc::bound_mem_functor0<void, Driver>, void>::call_it (this=0x6c)",
+ "sigc::internal::slot_call0<sigc::bound_mem_functor0<void, Driver>, void>::call_it",
+ NULL);
+ check(true,
+ "sigc::internal::slot_call0<sigc::bound_mem_functor0<void, GameWindow>, void>::call_it(sigc::internal::slot_rep*) ()",
+ "sigc::internal::slot_call0<sigc::bound_mem_functor0<void, GameWindow>, void>::call_it(sigc::internal::slot_rep*)",
+ NULL);
+ /* C++ operator< and templates */
+ check(true,
+ "operator< <char, std::char_traits<char>, std::allocator<char> > (__s1=<value optimized out>)",
+ "operator< <char, std::char_traits<char>, std::allocator<char> >",
+ NULL);
+ /* C++ plain operator-> */
+ check(true, "operator-> ()", "operator->", NULL);
+ /* Not an operator, but includes the keyword 'operator' (Red Hat Bugzilla bug #542445) */
+ check(true,
+ "cairo_set_operator (cr=0x0, op=CAIRO_OPERATOR_OVER)",
+ "cairo_set_operator",
+ NULL);
+ /* type included */
+ #define TYPE "void"
+ #define FUNCTION "boost::throw_exception<" \
+ "boost::filesystem::basic_filesystem_error<" \
+ "boost::filesystem::basic_path<" \
+ "std::basic_string<" \
+ "char, std::char_traits<char>, " \
+ "std::allocator<char> >, " \
+ "boost::filesystem::path_traits> > >" \
+ "(boost::filesystem::basic_filesystem_error<" \
+ "boost::filesystem::basic_path<" \
+ "std::basic_string<char, std::char_traits<char>, " \
+ "std::allocator<char> >, " \
+ "boost::filesystem::path_traits> > const&)"
+ #define ARGS "()"
+ #define FUNCALL TYPE " " FUNCTION " " ARGS
+ check(true, FUNCALL, FUNCTION, TYPE);
+ return 0;
+}
+]])
+
+## ----------------------------------- ##
+## btp_frame_parse_address_in_function ##
+## ----------------------------------- ##
+
+AT_TESTFUN([btp_frame_parse_address_in_function],
+[[
+#include <lib/frame.h>
+#include <lib/location.h>
+#include <assert.h>
+#include <stdlib.h>
+void check(bool success,
+ char *input,
+ uint64_t expected_address,
+ char *expected_function)
+{
+ char *old_input = input;
+ char *function;
+ char *type;
+ uint64_t address;
+ struct btp_location location;
+ btp_location_init(&location);
+ assert(success == btp_frame_parse_address_in_function(&input,
+ &address,
+ &function,
+ &type,
+ &location));
+ if (success)
+ {
+ assert(strcmp(function, expected_function) == 0);
+ assert(address == expected_address);
+ assert(*input == '\0');
+ free(function);
+ free(type);
+ }
+ else
+ {
+ /* Check that the pointer is not moved. */
+ assert(old_input == input);
+ }
+}
+
+int main(void)
+{
+ /* minimal */
+ check(true, "0x00ad0a91 in raise (sig=6)", 0xad0a91, "raise");
+ /* longnum */
+ check(true, "0xf00000322221730e in IA__g_bookmark_file_to_file (\n"
+ "filename=0x18971b0 \"/home/jfclere/.recently-used.xbel\", \n"
+ "error=0x7fff3cbe4160)", 0xf00000322221730eULL,
+ "IA__g_bookmark_file_to_file");
+ return 0;
+}
+]])
+
+## ----------------------------- ##
+## btp_frame_parse_file_location ##
+## ----------------------------- ##
+
+AT_TESTFUN([btp_frame_parse_file_location],
+[[
+#include <lib/frame.h>
+#include <lib/location.h>
+#include <assert.h>
+#include <stdlib.h>
+void check(bool success,
+ char *input,
+ char *expected_file,
+ unsigned expected_line)
+{
+ char *old_input = input;
+ char *file;
+ unsigned line;
+ struct btp_location location;
+ btp_location_init(&location);
+ assert(success == btp_frame_parse_file_location(&input,
+ &file,
+ &line,
+ &location));
+ if (success)
+ {
+ assert(strcmp(file, expected_file) == 0);
+ assert(line == expected_line);
+ assert(*input == '\0');
+ free(file);
+ }
+ else
+ {
+ /* Check that the pointer is not moved. */
+ assert(old_input == input);
+ }
+}
+
+int main(void)
+{
+ /* Test with a newline and without a line number. */
+ check(true, "\n at gtkrecentmanager.c", "gtkrecentmanager.c", -1);
+
+ /* Test with a newline and with a line number. */
+ check(true, "\n at gtkrecentmanager.c:1377", "gtkrecentmanager.c", 1377);
+
+ /* Test without a newline and a file name with a dash and an upper letter. */
+ check(true,
+ " at ../sysdeps/unix/syscall-template.S:82",
+ "../sysdeps/unix/syscall-template.S",
+ 82);
+
+ /* A file name starting with an underscore: Red Hat Bugzilla bug #530678. */
+ check(true,
+ " at _polkitauthenticationagent.c:885",
+ "_polkitauthenticationagent.c",
+ 885);
+
+ return 0;
+}
+]])
+
+## ---------------------- ##
+## btp_frame_parse_header ##
+## ---------------------- ##
+
+AT_TESTFUN([btp_frame_parse_header],
+[[
+#include <lib/frame.h>
+#include <lib/location.h>
+#include <assert.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+void check(char *input,
+ struct btp_frame *expected_frame)
+{
+ printf("=================================================\n"
+ "Testing %s\n",
+ input);
+
+ char *old_input = input;
+ struct btp_location location;
+ btp_location_init(&location);
+ struct btp_frame *frame = btp_frame_parse_header(&input, &location);
+ if (frame)
+ {
+ assert(*input == '\0');
+ assert(btp_frame_cmp(frame, expected_frame, true) == 0);
+ btp_frame_free(frame);
+ }
+ else
+ {
+ printf(" - parsing failed: %d:%d %s\n", location.line, location.column, location.message);
+
+ /* Check that the pointer is not moved. */
+ assert(old_input == input);
+ assert(!expected_frame);
+ }
+}
+
+int main(void)
+{
+ /* basic */
+ struct btp_frame frame;
+ btp_frame_init(&frame);
+ frame.function_name = "fsync";
+ frame.number = 1;
+ frame.source_file = "../sysdeps/unix/syscall-template.S";
+ frame.source_line = 82;
+ frame.address = 0x322160e7fdULL;
+ check("#1 0x000000322160e7fd in fsync () at ../sysdeps/unix/syscall-template.S:82", &frame);
+
+ /* C++ */
+ btp_frame_init(&frame);
+ frame.function_name = "nsRegion::RgnRect::operator new";
+ frame.number = 4;
+ frame.source_file = "nsRegion.cpp";
+ frame.source_line = 214;
+ frame.address = 0x3f96d71056ULL;
+ check("#4 0x0000003f96d71056 in nsRegion::RgnRect::operator new ()\n"
+ " at nsRegion.cpp:214", &frame);
+
+ /* Templates and no filename. */
+ btp_frame_init(&frame);
+ frame.function_name = "sigc::internal::slot_call0<sigc::bound_mem_functor0<void, GameWindow>, void>::call_it(sigc::internal::slot_rep*)";
+ frame.number = 15;
+ frame.address = 0x08201bdfULL;
+ check("#15 0x08201bdf in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, GameWindow>,"
+ " void>::call_it(sigc::internal::slot_rep*) ()", &frame);
+
+ /* No address, just the function call. Red Hat Bugzilla bug #530678 */
+ btp_frame_init(&frame);
+ frame.function_name = "handle_message";
+ frame.number = 30;
+ frame.source_file = "_polkitauthenticationagent.c";
+ frame.source_line = 885;
+ check("#30 handle_message (message=<value optimized out>,\n"
+ "interface=<value optimized out>) at _polkitauthenticationagent.c:885", &frame);
+
+ return 0;
+}
+]])
+
+## --------------- ##
+## btp_frame_parse ##
+## --------------- ##
+
+AT_TESTFUN([btp_frame_parse],
+[[
+#include <lib/frame.h>
+#include <lib/location.h>
+#include <assert.h>
+#include <stdlib.h>
+#include <string.h>
+void check(char *input,
+ struct btp_frame *expected_frame,
+ char *expected_input)
+{
+ char *old_input = input;
+ struct btp_location location;
+ btp_location_init(&location);
+ struct btp_frame *frame = btp_frame_parse(&input, &location);
+ assert(input == expected_input);
+ if (frame)
+ {
+ assert(btp_frame_cmp(frame, expected_frame, true) == 0);
+ btp_frame_free(frame);
+ }
+ else
+ {
+ /* Check that the pointer is not moved. */
+ assert(old_input == input);
+ assert(!expected_frame);
+ }
+}
+
+int main(void)
+{
+ /* basic */
+ struct btp_frame frame;
+ btp_frame_init(&frame);
+ frame.function_name = "fsync";
+ frame.number = 1;
+ frame.source_file = "../sysdeps/unix/syscall-template.S";
+ frame.source_line = 82;
+ frame.address = 0x322160e7fdULL;
+ char *c = "#1 0x000000322160e7fd in fsync () at ../sysdeps/unix/syscall-template.S:82\n"
+ "No locals.";
+ check(c, &frame, c + strlen(c));
+ c = "#1 0x000000322160e7fd in fsync () at ../sysdeps/unix/syscall-template.S:82\n"
+ "No locals.\n"
+ "#2 0x003f4f3f in IA__g_main_loop_run (loop=0x90e2c50) at gmain.c:2799\n"
+ " self = 0x8b80038\n"
+ " __PRETTY_FUNCTION__ = \"IA__g_main_loop_run\"\n";
+ check(c, &frame, strstr(c, "#2"));
+ return 0;
+}
+]])
diff --git a/tests/btparser/strbuf.at b/tests/btparser/strbuf.at
new file mode 100644
index 00000000..18535c15
--- /dev/null
+++ b/tests/btparser/strbuf.at
@@ -0,0 +1,73 @@
+# Checking the btparser. -*- Autotest -*-
+
+AT_BANNER([strbuf])
+
+## ---------------------- ##
+## btp_strbuf_append_char ##
+## ---------------------- ##
+
+AT_TESTFUN([btp_strbuf_append_char],
+[[
+#include <lib/strbuf.h>
+#include <assert.h>
+int main(void)
+{
+ int i;
+ struct btp_strbuf *strbuf = btp_strbuf_new();
+ for (i = 0; i < 100; ++i)
+ {
+ assert(strbuf->len == i);
+ assert(strbuf->alloc > strbuf->len);
+ assert(strbuf->buf[i] == '\0');
+ btp_strbuf_append_char(strbuf, 'a');
+ assert(strbuf->buf[i] == 'a');
+ assert(strbuf->buf[i+1] == '\0');
+ assert(strbuf->len == i + 1);
+ assert(strbuf->alloc > strbuf->len);
+ }
+ btp_strbuf_free(strbuf);
+ return 0;
+}
+]])
+
+## --------------------- ##
+## btp_strbuf_append_str ##
+## --------------------- ##
+
+AT_TESTFUN([btp_strbuf_append_str],
+[[
+#include <lib/strbuf.h>
+#include <assert.h>
+
+/* Test appending strings of certain length. 'len' must be < 50. */
+void test(int len)
+{
+ int i;
+ char str[50];
+ for (i = 0; i < len; ++i)
+ str[i] = 'a';
+ str[i] = '\0';
+
+ struct btp_strbuf *strbuf = btp_strbuf_new();
+ for (i = 0; i < 100; ++i)
+ {
+ assert(strbuf->len == i*len);
+ assert(strbuf->alloc > strbuf->len);
+ assert(strbuf->buf[i*len] == '\0');
+ btp_strbuf_append_str(strbuf, str);
+ assert(strbuf->buf[i*len] == str[0]);
+ assert(strbuf->buf[i*len+len] == '\0');
+ assert(strbuf->len == i*len + len);
+ assert(strbuf->alloc > strbuf->len);
+ }
+ btp_strbuf_free(strbuf);
+}
+
+int main(void)
+{
+ int i;
+ for (i = 0; i < 50; ++i)
+ test(i);
+ return 0;
+}
+]])
diff --git a/tests/btparser/thread.at b/tests/btparser/thread.at
new file mode 100644
index 00000000..143a8e1f
--- /dev/null
+++ b/tests/btparser/thread.at
@@ -0,0 +1,349 @@
+# Checking the btparser. -*- Autotest -*-
+
+AT_BANNER([Threads])
+
+## ----------------------- ##
+## btp_thread_remove_frame ##
+## ----------------------- ##
+AT_TESTFUN([btp_thread_remove_frame],
+[[
+#include <lib/thread.h>
+#include <lib/frame.h>
+#include <lib/location.h>
+#include <lib/utils.h>
+#include <assert.h>
+#include <stdlib.h>
+
+int main(void)
+{
+ struct btp_frame *frame2 = btp_frame_new();
+ frame2->function_name = btp_strdup("write");
+ frame2->number = 2;
+ frame2->source_file = btp_strdup("gfileutils.c");
+ frame2->source_line = 120;
+ frame2->address = 0x322160e7fdULL;
+
+ struct btp_frame *frame1 = btp_frame_new();
+ frame1->function_name = btp_strdup("write_to_temp_file");
+ frame1->number = 1;
+ frame1->source_file = btp_strdup("gfileutils.c");
+ frame1->source_line = 980;
+ frame1->address = 0x322160e7fdULL;
+ frame1->next = frame2;
+
+ struct btp_frame *frame0 = btp_frame_new();
+ frame0->function_name = btp_strdup("fsync");
+ frame0->number = 0;
+ frame0->source_file = btp_strdup("../sysdeps/unix/syscall-template.S");
+ frame0->source_line = 82;
+ frame0->address = 0x322160e7fdULL;
+ frame0->next = frame1;
+
+ struct btp_thread thread;
+ btp_thread_init(&thread);
+ thread.number = 3;
+ thread.frames = frame0;
+
+ /* Remove the frame from the top of the stack. */
+ assert(btp_thread_remove_frame(&thread, frame0));
+ assert(frame1 == thread.frames);
+ assert(frame2 == thread.frames->next);
+
+ /* Remove the frame from the bottom of the stack. */
+ assert(btp_thread_remove_frame(&thread, frame2));
+ assert(frame1 == thread.frames);
+ assert(NULL == thread.frames->next);
+
+ /* Remove the last remaining frame. */
+ assert(btp_thread_remove_frame(&thread, frame1));
+ assert(NULL == thread.frames);
+
+ /* Remove nonexistant frame -> should return false. */
+ assert(!btp_thread_remove_frame(&thread, frame0));
+ assert(NULL == thread.frames);
+
+ return 0;
+}
+]])
+
+## ------------------------------ ##
+## btp_thread_remove_frames_above ##
+## ------------------------------ ##
+AT_TESTFUN([btp_thread_remove_frames_above],
+[[
+#include <lib/thread.h>
+#include <lib/frame.h>
+#include <lib/location.h>
+#include <lib/utils.h>
+#include <assert.h>
+#include <stdlib.h>
+
+int main(void)
+{
+ struct btp_frame *frame2 = btp_frame_new();
+ frame2->function_name = btp_strdup("write");
+ frame2->number = 2;
+ frame2->source_file = btp_strdup("gfileutils.c");
+ frame2->source_line = 120;
+ frame2->address = 0x322160e7fdULL;
+
+ struct btp_frame *frame1 = btp_frame_new();
+ frame1->function_name = btp_strdup("write_to_temp_file");
+ frame1->number = 1;
+ frame1->source_file = btp_strdup("gfileutils.c");
+ frame1->source_line = 980;
+ frame1->address = 0x322160e7fdULL;
+ frame1->next = frame2;
+
+ struct btp_frame *frame0 = btp_frame_new();
+ frame0->function_name = btp_strdup("fsync");
+ frame0->number = 0;
+ frame0->source_file = btp_strdup("../sysdeps/unix/syscall-template.S");
+ frame0->source_line = 82;
+ frame0->address = 0x322160e7fdULL;
+ frame0->next = frame1;
+
+ struct btp_thread thread;
+ btp_thread_init(&thread);
+ thread.number = 3;
+ thread.frames = frame0;
+
+ /* Remove the frames above the top of the stack. */
+ assert(btp_thread_remove_frames_above(&thread, frame0));
+ assert(frame0 == thread.frames);
+ assert(frame1 == thread.frames->next);
+
+ /* Remove the frames above the second frame from the top of the stack. */
+ assert(btp_thread_remove_frames_above(&thread, frame1));
+ assert(frame1 == thread.frames);
+ assert(frame2 == thread.frames->next);
+
+ /* Remove the frames above the bottom of the stack. */
+ assert(btp_thread_remove_frames_above(&thread, frame2));
+ assert(frame2 == thread.frames);
+ assert(NULL == thread.frames->next);
+
+ /* Remove frames above a nonexistant frame -> should return false. */
+ assert(!btp_thread_remove_frames_above(&thread, frame0));
+ assert(frame2 == thread.frames);
+
+ return 0;
+}
+]])
+
+## -------------------------------- ##
+## btp_thread_remove_frames_below_n ##
+## -------------------------------- ##
+AT_TESTFUN([btp_thread_remove_frames_below_n],
+[[
+#include <lib/thread.h>
+#include <lib/frame.h>
+#include <lib/location.h>
+#include <lib/utils.h>
+#include <assert.h>
+#include <stdlib.h>
+
+int main(void)
+{
+ struct btp_frame *frame2 = btp_frame_new();
+ frame2->function_name = btp_strdup("write");
+ frame2->number = 2;
+ frame2->source_file = btp_strdup("gfileutils.c");
+ frame2->source_line = 120;
+ frame2->address = 0x322160e7fdULL;
+
+ struct btp_frame *frame1 = btp_frame_new();
+ frame1->function_name = btp_strdup("write_to_temp_file");
+ frame1->number = 1;
+ frame1->source_file = btp_strdup("gfileutils.c");
+ frame1->source_line = 980;
+ frame1->address = 0x322160e7fdULL;
+ frame1->next = frame2;
+
+ struct btp_frame *frame0 = btp_frame_new();
+ frame0->function_name = btp_strdup("fsync");
+ frame0->number = 0;
+ frame0->source_file = btp_strdup("../sysdeps/unix/syscall-template.S");
+ frame0->source_line = 82;
+ frame0->address = 0x322160e7fdULL;
+ frame0->next = frame1;
+
+ struct btp_thread thread;
+ btp_thread_init(&thread);
+ thread.number = 3;
+ thread.frames = frame0;
+
+ /* Remove no frame as n is too large. */
+ btp_thread_remove_frames_below_n(&thread, 5);
+ assert(frame0 == thread.frames);
+ assert(frame1 == thread.frames->next);
+ assert(frame2 == thread.frames->next->next);
+ assert(NULL == thread.frames->next->next->next);
+
+ /* Remove the frames below 1. */
+ btp_thread_remove_frames_below_n(&thread, 1);
+ assert(frame0 == thread.frames);
+ assert(NULL == thread.frames->next);
+
+ /* Remove the frames below 0. */
+ btp_thread_remove_frames_below_n(&thread, 0);
+ assert(NULL == thread.frames);
+
+ /* Try to remove frames when no frame is present. */
+ btp_thread_remove_frames_below_n(&thread, 4);
+ assert(NULL == thread.frames);
+
+ return 0;
+}
+]])
+
+## ---------------- ##
+## btp_thread_parse ##
+## ---------------- ##
+
+AT_TESTFUN([btp_thread_parse],
+[[
+#include <lib/thread.h>
+#include <lib/frame.h>
+#include <lib/location.h>
+#include <assert.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+void check(char *input,
+ struct btp_thread *expected_thread)
+{
+ printf("===============================================\n"
+ "Testing input: %s",
+ input);
+
+ char *old_input = input;
+ struct btp_location location;
+ btp_location_init(&location);
+ struct btp_thread *thread = btp_thread_parse(&input, &location);
+ assert(!expected_thread || thread);
+ if (thread)
+ {
+ assert(*input == '\0');
+ assert(btp_thread_cmp(thread, expected_thread) == 0);
+ btp_thread_free(thread);
+ }
+ else
+ {
+ /* Check that the pointer is not moved. */
+ assert(old_input == input);
+ assert(!expected_thread);
+ }
+}
+
+int main(void)
+{
+ /* Basic test. */
+ struct btp_frame frame0, frame1;
+ btp_frame_init(&frame0);
+ frame0.function_name = "fsync";
+ frame0.number = 0;
+ frame0.source_file = "../sysdeps/unix/syscall-template.S";
+ frame0.source_line = 82;
+ frame0.address = 0x322160e7fdULL;
+ frame0.next = &frame1;
+
+ btp_frame_init(&frame1);
+ frame1.function_name = "write_to_temp_file";
+ frame1.number = 1;
+ frame1.source_file = "gfileutils.c";
+ frame1.source_line = 980;
+ frame1.address = 0x322160e7fdULL;
+
+ struct btp_thread thread;
+ btp_thread_init(&thread);
+ thread.number = 3;
+ thread.frames = &frame0;
+
+ check("Thread 3 (Thread 11917):\n"
+ "#0 0x000000322160e7fd in fsync () at ../sysdeps/unix/syscall-template.S:82\n"
+ "No locals.\n"
+ "#1 0x000000322222987a in write_to_temp_file (\n"
+ " filename=0x18971b0 \"/home/jfclere/.recently-used.xbel\", \n"
+ " contents=<value optimized out>, length=29917, error=0x7fff3cbe4110)\n"
+ " at gfileutils.c:980\n"
+ " statbuf = {st_dev = 64768, st_ino = 13709, st_nlink = 1, \n"
+ " st_mode = 33152, st_uid = 500, st_gid = 500, __pad0 = 0, \n"
+ " st_rdev = 0, st_size = 29917, st_blksize = 4096, st_blocks = 64, \n"
+ " st_atim = {tv_sec = 1273231242, tv_nsec = 73521863}, st_mtim = {\n"
+ " tv_sec = 1273231242, tv_nsec = 82521015}, st_ctim = {\n"
+ " tv_sec = 1273231242, tv_nsec = 190522021}, __unused = {0, 0, 0}}\n",
+ &thread);
+
+ return 0;
+}
+]])
+
+## -------------------------- ##
+## btp_thread_parse-locations ##
+## -------------------------- ##
+
+AT_TESTFUN([btp_thread_parse-locations],
+[[
+#include <lib/thread.h>
+#include <lib/frame.h>
+#include <lib/location.h>
+#include <assert.h>
+#include <stdlib.h>
+
+/**
+ * Checks that the thread parser fails on ceratin location
+ * (line and column), with an error message.
+ */
+void check(char *input,
+ int expected_line,
+ int expected_column)
+{
+ char *old_input = input;
+ struct btp_location location;
+ btp_location_init(&location);
+ assert(NULL == btp_thread_parse(&input, &location));
+
+ /* Check that the pointer is not moved. */
+ assert(old_input == input);
+
+ /* Check the location. */
+ printf("location %d:%d '%s', expected %d:%d\n",
+ location.line, location.column, location.message,
+ expected_line, expected_column);
+
+ assert(location.line == expected_line);
+ assert(location.column == expected_column);
+ assert(location.message);
+ assert(location.message[0] != '\0');
+}
+
+int main(void)
+{
+ /* Thread keyword */
+ check("Thraed 3 (Thread 11917):\n", 1, 0);
+
+ /* Spaces after the thread keyword. */
+ check("Thread3 (Thread 11917):\n", 1, 6);
+
+ /* Thread number. */
+ check("Thread a (Thread 11917):\n", 1, 8);
+
+ /* Spaces after the thread number. */
+ check("Thread 8(Thread 11917):\n", 1, 8);
+
+ /* A parenthesis. */
+ check("Thread 8 (11917):\n", 1, 9);
+
+ /* Second number. */
+ check("Thread 8 (Thread ffff):\n", 1, 17);
+
+ /* Semicolon missing. */
+ check("Thread 8 (Thread 1)\n", 1, 18);
+
+ /* Not a single frame. */
+ check("Thread 3 (Thread 11917):\n\n", 2, 0);
+
+ return 0;
+}
+]])
diff --git a/tests/btparser/utils.at b/tests/btparser/utils.at
new file mode 100644
index 00000000..c12d05fa
--- /dev/null
+++ b/tests/btparser/utils.at
@@ -0,0 +1,442 @@
+# Checking the btparser. -*- Autotest -*-
+
+AT_BANNER([Utils])
+
+## ------------ ##
+## btp_strcmp0 ##
+## ------------ ##
+
+AT_TESTFUN([btp_strcmp0],
+[[
+#include <lib/utils.h>
+#include <assert.h>
+int main(void)
+{
+ assert(0 == btp_strcmp0(NULL, NULL));
+ assert(0 == btp_strcmp0("abab", "abab"));
+ assert(0 > btp_strcmp0("aba", "abab"));
+ assert(0 > btp_strcmp0(NULL, "abab"));
+ assert(0 < btp_strcmp0("abab", NULL));
+ assert(0 < btp_strcmp0("abab", "aba"));
+ return 0;
+}
+]])
+
+## ------------------- ##
+## btp_strchr_location ##
+## ------------------- ##
+
+AT_TESTFUN([btp_strchr_location],
+[[
+#include <lib/utils.h>
+#include <assert.h>
+int main(void)
+{
+ /* The character is on the first line.*/
+ int line, column;
+ char *result = btp_strchr_location("test string", 'r', &line, &column);
+ assert(0 == strcmp(result, "ring"));
+ assert(1 == line);
+ assert(7 == column);
+
+ /* The character is on the third line. */
+ result = btp_strchr_location("\ntest\n string", 'r', &line, &column);
+ assert(0 == strcmp(result, "ring"));
+ assert(3 == line);
+ assert(3 == column);
+
+ /* The character is not found. */
+ result = btp_strchr_location("\ntest\n string", 'z', &line, &column);
+ assert(!result);
+
+ /* The character _is_ a newline. */
+ result = btp_strchr_location("abcd\nefgh", '\n', &line, &column);
+ assert(0 == strcmp(result, "\nefgh"));
+ assert(1 == line);
+ assert(4 == column);
+ return 0;
+}
+]])
+
+## ------------------- ##
+## btp_strstr_location ##
+## ------------------- ##
+
+AT_TESTFUN([btp_strstr_location],
+[[
+#include <lib/utils.h>
+#include <assert.h>
+int main(void)
+{
+ /* The substring is on the first line.*/
+ int line, column;
+ char *result = btp_strstr_location("test string", "ri", &line, &column);
+ assert(0 == strcmp(result, "ring"));
+ assert(1 == line);
+ assert(7 == column);
+
+ /* The substring is on the third line. */
+ result = btp_strstr_location("\ntest\n string", "ri", &line, &column);
+ assert(0 == strcmp(result, "ring"));
+ assert(3 == line);
+ assert(3 == column);
+
+ /* The substring is not found, but the first char is. */
+ result = btp_strstr_location("\ntest\n string", "rz", &line, &column);
+ assert(!result);
+
+ /* The substring is not found. */
+ result = btp_strstr_location("\ntest\n string", "zr", &line, &column);
+ assert(!result);
+
+ /* The substring _is_ a newline. */
+ result = btp_strstr_location("abcd\nefgh", "\n", &line, &column);
+ assert(0 == strcmp(result, "\nefgh"));
+ assert(1 == line);
+ assert(4 == column);
+ return 0;
+}
+]])
+
+## ------------------- ##
+## btp_strspn_location ##
+## ------------------- ##
+
+AT_TESTFUN([btp_strspn_location],
+[[
+#include <lib/utils.h>
+#include <assert.h>
+int main(void)
+{
+ /* No newline in the input.*/
+ int line, column;
+ size_t count = btp_strspn_location("test string",
+ "tes ",
+ &line,
+ &column);
+ assert(7 == count);
+ assert(1 == line);
+ assert(7 == column);
+
+ /* With some newlines. */
+ count = btp_strspn_location("te\nst \nstring",
+ "tes \n",
+ &line,
+ &column);
+ assert(9 == count);
+ assert(3 == line);
+ assert(2 == column);
+
+ return 0;
+}
+]])
+
+## ------------- ##
+## btp_skip_char ##
+## ------------- ##
+
+AT_TESTFUN([btp_skip_char],
+[[
+#include <lib/utils.h>
+#include <assert.h>
+int main(void)
+{
+ char *input = "abc";
+ assert(btp_skip_char(&input, 'a'));
+ assert(!btp_skip_char(&input, 'c'));
+ return 0;
+}
+]])
+
+## --------------------- ##
+## btp_skip_char_limited ##
+## --------------------- ##
+
+AT_TESTFUN([btp_skip_char_limited],
+[[
+#include <lib/utils.h>
+#include <assert.h>
+int main(void)
+{
+ char *input = "abc";
+ assert(btp_skip_char_limited(&input, "ab"));
+ assert(btp_skip_char_limited(&input, "ab"));
+ assert(!btp_skip_char_limited(&input, "ab"));
+ return 0;
+}
+]])
+
+## ---------------------- ##
+## btp_parse_char_limited ##
+## ---------------------- ##
+
+AT_TESTFUN([btp_parse_char_limited],
+[[
+#include <lib/utils.h>
+#include <assert.h>
+int main(void)
+{
+ char *input = "abc";
+ char result;
+
+ /* First char in allowed is used. */
+ assert(btp_parse_char_limited(&input, "ab", &result));
+ assert(*input == 'b' && result == 'a');
+
+ /* No char in allowed is used. */
+ assert(!btp_parse_char_limited(&input, "cd", &result));
+ assert(*input == 'b' && result == 'a');
+
+ /* Second char in allowed is used. */
+ assert(btp_parse_char_limited(&input, "ab", &result));
+ assert(*input == 'c' && result == 'b');
+
+ /* Empty set of allowed chars. */
+ assert(!btp_parse_char_limited(&input, "", &result));
+ assert(*input == 'c' && result == 'b');
+
+ /* Char is multiple times in allowed. */
+ assert(btp_parse_char_limited(&input, "cdc", &result));
+ assert(*input == '\0' && result == 'c');
+
+ return 0;
+}
+]])
+
+## ---------------------- ##
+## btp_skip_char_sequence ##
+## ---------------------- ##
+
+AT_TESTFUN([btp_skip_char_sequence],
+[[
+#include <lib/utils.h>
+#include <assert.h>
+int main(void)
+{
+ char *input = "aaaaabc";
+ assert(5 == btp_skip_char_sequence(&input, 'a'));
+ assert(1 == btp_skip_char_sequence(&input, 'b'));
+ assert(0 == btp_skip_char_sequence(&input, 'b'));
+ return 0;
+}
+]])
+
+## ------------------ ##
+## btp_skip_char_span ##
+## ------------------ ##
+
+AT_TESTFUN([btp_skip_char_span],
+[[
+#include <lib/utils.h>
+#include <assert.h>
+int main(void)
+{
+ char *input = "aabaabc";
+ assert(6 == btp_skip_char_span(&input, "ba"));
+ assert(0 == btp_skip_char_span(&input, "b"));
+ assert(1 == btp_skip_char_span(&input, "bc"));
+
+ /* Test that it can parse empty string. */
+ assert(0 == btp_skip_char_span(&input, "abc"));
+
+ return 0;
+}
+]])
+
+## --------------------------- ##
+## btp_skip_char_span_location ##
+## --------------------------- ##
+
+AT_TESTFUN([btp_skip_char_span_location],
+[[
+#include <lib/utils.h>
+#include <assert.h>
+int main(void)
+{
+ char *input = "aab\naabc";
+ int line, column;
+
+ assert(7 == btp_skip_char_span_location(&input, "ba\n", &line, &column));
+ assert(2 == line);
+ assert(3 == column);
+
+ assert(0 == btp_skip_char_span_location(&input, "b", &line, &column));
+ assert(1 == line);
+ assert(0 == column);
+
+ assert(1 == btp_skip_char_span_location(&input, "bc", &line, &column));
+ assert(1 == line);
+ assert(1 == column);
+
+ /* Test that it can parse empty string. */
+ assert(0 == btp_skip_char_span_location(&input, "abc", &line, &column));
+ assert(1 == line);
+ assert(0 == column);
+
+ return 0;
+}
+]])
+
+## ------------------- ##
+## btp_parse_char_span ##
+## ------------------- ##
+
+AT_TESTFUN([btp_parse_char_span],
+[[
+#include <lib/utils.h>
+#include <assert.h>
+int main(void)
+{
+ char *input = "abcd";
+ char *result;
+ assert(2 == btp_parse_char_span(&input, "ba", &result));
+ assert(*input == 'c' && strcmp(result, "ab") == 0);
+ assert(0 == btp_parse_char_span(&input, "ba", &result));
+ assert(*input == 'c' && strcmp(result, "ab") == 0);
+ free(result);
+ assert(2 == btp_parse_char_span(&input, "ecfd", &result));
+ assert(*input == '\0' && strcmp(result, "cd") == 0);
+ free(result);
+ return 0;
+}
+]])
+
+## -------------------- ##
+## btp_parse_char_cspan ##
+## -------------------- ##
+
+AT_TESTFUN([btp_parse_char_cspan],
+[[
+#include <lib/utils.h>
+#include <assert.h>
+int main(void)
+{
+ char *input = "abcd";
+ char *result;
+ assert(btp_parse_char_cspan(&input, "c", &result));
+ assert(*input == 'c' && strcmp(result, "ab") == 0);
+ assert(!btp_parse_char_cspan(&input, "c", &result));
+ assert(*input == 'c' && strcmp(result, "ab") == 0);
+ free(result);
+ assert(btp_parse_char_cspan(&input, "e", &result));
+ assert(*input == '\0' && strcmp(result, "cd") == 0);
+ free(result);
+ return 0;
+}
+]])
+
+## --------------- ##
+## btp_skip_string ##
+## --------------- ##
+
+AT_TESTFUN([btp_skip_string],
+[[
+#include <lib/utils.h>
+#include <assert.h>
+int main(void)
+{
+ char *input = "abcd";
+ assert(2 == btp_skip_string(&input, "ab"));
+ assert(*input == 'c');
+ assert(0 == btp_skip_string(&input, "cde"));
+ assert(2 == btp_skip_string(&input, "cd"));
+ assert(0 == btp_skip_string(&input, "cd"));
+ return 0;
+}
+]])
+
+## ---------------- ##
+## btp_parse_string ##
+## ---------------- ##
+
+AT_TESTFUN([btp_parse_string],
+[[
+#include <lib/utils.h>
+#include <assert.h>
+int main(void)
+{
+ char *input = "abcd";
+ char *result;
+ assert(btp_parse_string(&input, "ab", &result));
+ assert(0 == strcmp(result, "ab"));
+ assert(*input == 'c');
+ free(result);
+ return 0;
+}
+]])
+
+## ------------------------- ##
+## btp_skip_unsigned_integer ##
+## ------------------------- ##
+
+AT_TESTFUN([btp_skip_unsigned_integer],
+[[
+#include <lib/utils.h>
+#include <assert.h>
+int main(void)
+{
+ char *input = "10";
+ assert(2 == btp_skip_unsigned_integer(&input));
+ assert(*input == '\0');
+ return 0;
+}
+]])
+
+## ------------------------- ##
+## btp_parse_unsigned_integer ##
+## ------------------------- ##
+
+AT_TESTFUN([btp_parse_unsigned_integer],
+[[
+#include <lib/utils.h>
+#include <assert.h>
+int main(void)
+{
+ char *input = "10";
+ unsigned result;
+ assert(2 == btp_parse_unsigned_integer(&input, &result));
+ assert('\0' == *input);
+ assert(10 == result);
+ return 0;
+}
+]])
+
+## --------------------------- ##
+## btp_skip_hexadecimal_number ##
+## --------------------------- ##
+
+AT_TESTFUN([btp_skip_hexadecimal_number],
+[[
+#include <lib/utils.h>
+#include <assert.h>
+int main(void)
+{
+ char *input = "0xffddffddff";
+ assert(12 == btp_skip_hexadecimal_number(&input));
+ assert(*input == '\0');
+ return 0;
+}
+]])
+
+## ---------------------------- ##
+## btp_parse_hexadecimal_number ##
+## ---------------------------- ##
+
+AT_TESTFUN([btp_parse_hexadecimal_number],
+[[
+#include <lib/utils.h>
+#include <assert.h>
+int main(void)
+{
+ char *input = "0x0fafaffff 0x2badf00dbaadf00d";
+ uint64_t num;
+ assert(11 == btp_parse_hexadecimal_number(&input, &num));
+ assert(*input == ' ');
+ assert(num == 0xfafaffff);
+ *input++;
+ assert(18 == btp_parse_hexadecimal_number(&input, &num));
+ assert(*input == '\0');
+ assert(num == 0x2badf00dbaadf00d);
+ return 0;
+}
+]])
diff --git a/tests/local.at b/tests/local.at
new file mode 100644
index 00000000..758906d4
--- /dev/null
+++ b/tests/local.at
@@ -0,0 +1,27 @@
+# Source: bison local.at
+
+# ----------------------------------------
+# AT_COMPILE(OUTPUT, [SOURCES = OUTPUT.c])
+# ----------------------------------------
+# Compile SOURCES into OUTPUT. If OUTPUT does not contain '.',
+# assume that we are linking too; this is a hack.
+m4_define([AT_COMPILE],
+[AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS m4_bmatch([$1], [[.]], [], [$LDFLAGS ])-o $1 m4_default([$2], [$1.c])[]m4_bmatch([$1], [[.]], [], [ $LIBS])],
+ 0, [ignore], [ignore])])
+
+# ------------------------
+# AT_TESTFUN(NAME, SOURCE)
+# ------------------------
+
+# Create a test named NAME by compiling and running C file with
+# contents SOURCE. The stdout and stderr output of the C program is
+# ignored by Autotest.
+
+m4_define([AT_TESTFUN],
+[AT_SETUP([$1])
+AT_DATA([$1.c], [$2])
+AT_COMPILE([$1])
+AT_CHECK([./$1], 0, [ignore], [ignore])
+AT_CLEANUP])
+
+AT_INIT
diff --git a/tests/testsuite.at b/tests/testsuite.at
new file mode 100644
index 00000000..24c2a2b6
--- /dev/null
+++ b/tests/testsuite.at
@@ -0,0 +1,8 @@
+# Test suite for abrt.
+# See http://www.gnu.org/software/hello/manual/autoconf/Writing-Testsuites.html
+
+m4_include([btparser/utils.at])
+m4_include([btparser/strbuf.at])
+m4_include([btparser/frame.at])
+m4_include([btparser/thread.at])
+m4_include([btparser/backtrace.at])