Subject Re: [firebird-support] linux embedding statically linking to firebird libfbstatic.a
Author Todd Fisher
Ann,

Interesting, I guess it is probably a bug in gmail or something I'm
doing wrong... Anyways, I'll just paste it in the mail since it's all
text anyway. Sorry about the trouble before :-(

First here's the stack trace from gdb:
(gdb) bt
#0 0x410007a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
#1 0x410ced86 in __nanosleep_nocancel () from /lib/tls/libc.so.6
#2 0x410ceb83 in sleep () from /lib/tls/libc.so.6
#3 0x0806e9b6 in ah_crap_handler (signum=11) at nsSigHandlers.cpp:135
#4 0x0806f6cf in nsProfileLock::FatalSignalHandler (signo=11) at
nsProfileLock.cpp:209
#5 <signal handler called>
#6 0x410a6ae4 in free () from /lib/tls/libc.so.6
#7 0x41c20445 in operator delete () from /usr/lib/libstdc++.so.6
#8 0x41c20491 in operator delete[] () from /usr/lib/libstdc++.so.6
#9 0x00676b4e in ConfigImpl (this=0xf6dc7fb8, p=@0xf6db9014) at fb_string.h:373
#10 0x0067838d in Config::getRemoteFileOpenAbility () at alloc.h:453
#11 0x00688c35 in ISC_analyze_nfs (expanded_filename=@0xfee38adc,
node_name=@0x0) at ../src/jrd/isc_file.cpp:261
#12 0x006888e8 in expand_filename2 (buff=@0xfee38adc,
expand_mounts=true) at ../src/jrd/isc_file.cpp:1204
#13 0x005da385 in isc_attach_database (user_status=0x0,
file_length=-29988, file_name=0x92bc02c
"/home/taf2/simo2/debug-simo/bin/simo.fdb",
public_handle=0x92bbf30, dpb_length=20, dpb=0x92bbf98
"\001\034\006SYSDBA\035\tmasterkey:24:10 2005\nInterfaces: simoIList
simoIListTask")
at isc_f_proto.h:50
#14 0x005a7933 in ibpp_internals::DatabaseImpl::Connect
(this=0x92bbf28) at /home/taf2/simo2/components/ibpp/database.cpp:121
#15 0x004c66c1 in ConnectToSimoDB (datasource=@0x92c120c) at
/home/taf2/simo2/components/Database.cc:137
#16 0x004fde83 in SimoList::Impl::start (this=0x92c11c8,
statement=@0x92c11d0, transaction=@0x92c11cc, database=@0x92c11c8)
at /home/taf2/simo2/components/SimoList.cc:69
#17 0x004fb274 in SimoList::getNext (this=0x92c11b4,
remove_state=true, _retval=0xfee3af5c) at
/home/taf2/simo2/components/SimoList.cc:297
#18 0x004a453f in SimoPersonList::GetNext (this=0x92c11b0,
_retval=0xfee3b150) at /home/taf2/simo2/components/Person.cc:87
#19 0x009555d1 in XPTC_InvokeByIndex () at
/home/taf2/firefox/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_gcc_x86_unix.cpp:69
#20 0x0023ecc0 in XPCWrappedNative::CallMethod (ccx=@0xfee3b220,
mode=XPCWrappedNative::CALL_METHOD)
at /home/taf2/firefox/mozilla/js/src/xpconnect/src/xpcwrappednative.cpp:2033
#21 0x00248e15 in XPC_WN_CallMethod (cx=0x91c71d8, obj=0x920c138,
argc=0, argv=0x92b3d74, vp=0xfee3b3d0)
at /home/taf2/firefox/mozilla/js/src/xpconnect/src/xpcwrappednativejsops.cpp:1287
#22 0x00e54e77 in js_Invoke (cx=0x91c71d8, argc=0, flags=0) at
/home/taf2/firefox/mozilla/js/src/jsinterp.c:941
#23 0x00e63187 in js_Interpret (cx=0x91c71d8, result=0xfee3b98c) at
/home/taf2/firefox/mozilla/js/src/jsinterp.c:2977
#24 0x00e54ef1 in js_Invoke (cx=0x91c71d8, argc=1, flags=2) at
/home/taf2/firefox/mozilla/js/src/jsinterp.c:958
#25 0x00e55265 in js_InternalInvoke (cx=0x91c71d8, obj=0x91ada78,
fval=153135120, flags=0, argc=1, argv=0xfee3bd28, rval=0xfee3bbd4)
at /home/taf2/firefox/mozilla/js/src/jsinterp.c:1035
#26 0x00e24884 in JS_CallFunctionValue (cx=0x91c71d8, obj=0x91ada78,
fval=153135120, argc=1, argv=0xfee3bd28, rval=0xfee3bbd4)
at /home/taf2/firefox/mozilla/js/src/jsapi.c:3698
#27 0x079045b1 in nsJSContext::CallEventHandler (this=0x8fa4e08,
aTarget=0x91ada78, aHandler=0x920a810, argc=1, argv=0xfee3bd28,
rval=0xfee3bbd4)
at /home/taf2/firefox/mozilla/dom/src/base/nsJSEnvironment.cpp:1296
#28 0x079634d4 in nsJSEventListener::HandleEvent (this=0x92603f0,
aEvent=0x9269858)
at /home/taf2/firefox/mozilla/dom/src/events/nsJSEventListener.cpp:174
#29 0x0773b838 in nsEventListenerManager::HandleEventSubType
(this=0x925fad0, aListenerStruct=0x9260418, aDOMEvent=0x9269858,
aCurrentTarget=0x8fa4d18,
aSubType=1, aPhaseFlags=7) at
/home/taf2/firefox/mozilla/content/events/src/nsEventListenerManager.cpp:1436
#30 0x0773bbda in nsEventListenerManager::HandleEvent (this=0x925fad0,
aPresContext=0x923b790, aEvent=0xfee3c0d0, aDOMEvent=0xfee3c024,
aCurrentTarget=0x8fa4d18, aFlags=7, aEventStatus=0xfee3c10c) at
/home/taf2/firefox/mozilla/content/events/src/nsEventListenerManager.cpp:1529
#31 0x0790de32 in GlobalWindowImpl::HandleDOMEvent (this=0x8fa4d08,
aPresContext=0x923b790, aEvent=0xfee3c0d0, aDOMEvent=0xfee3c024,
aFlags=7,
aEventStatus=0xfee3c10c) at
/home/taf2/firefox/mozilla/dom/src/base/nsGlobalWindow.cpp:925
#32 0x0769656a in DocumentViewerImpl::LoadComplete (this=0x9143068,
aStatus=0) at /home/taf2/firefox/mozilla/content/base/src/nsDocumentViewer.cpp:916
#33 0x00cde407 in nsDocShell::EndPageLoad (this=0x8fa4b78,
aProgress=0x91cb524, aChannel=0x91cbbd0, aStatus=0)


Here's the info I got when running the application through valgrind:

program init:



Invalid free() / delete / delete[]

==4461== at 0x1B90513F: operator delete(void*) (vg_replace_malloc.c:156)

==4461== by 0x1E3867AF: garbage_collect (vio.cpp:3338)

==4461== by 0x1E388477: purge (vio.cpp:4318)

==4461== by 0x1E389DC9: VIO_chase_record_version (vio.cpp:861)

==4461== by 0x1E38D7B6: VIO_get (vio.cpp:1672)

==4461== by 0x1E46AD1A: get_record(tdbb*, Rsb*, Rsb*,
rse_get_mode) (rse.cpp:2302)

==4461== by 0x1E46B5C9: get_record(tdbb*, Rsb*, Rsb*,
rse_get_mode) (rse.cpp:2583)

==4461== by 0x1E46D483: RSE_get_record(tdbb*, Rsb*, rse_get_mode)
(rse.cpp:478)

==4461== by 0x1E444EED: looper (exe.cpp:1959)

==4461== by 0x1E4472D2: EXE_send (exe.cpp:1355)

==4461== by 0x1E35A146: jrd8_start_and_send (jrd.cpp:3626)

==4461== by 0x1E34F62F: isc_start_and_send (why.cpp:4520)

==4461== by 0x1E472076: METD_get_relation (metd.cpp:2359)

==4461== by 0x1E3B2A85: PASS1_make_context (pass1.cpp:303)

==4461== by 0x1E3AD4A1: PASS1_node (pass1.cpp:4010)

==4461== by 0x1E3ACC1D: PASS1_node (pass1.cpp:820)

==4461== by 0x1E3ACC1D: PASS1_node (pass1.cpp:820)

==4461== by 0x1E3ACC1D: PASS1_node (pass1.cpp:820)

==4461== by 0x1E3ACC1D: PASS1_node (pass1.cpp:820)

==4461== by 0x1E3ACC1D: PASS1_node (pass1.cpp:820)

==4461== Address 0x1E18A524 is 8420 bytes inside a block of size 16384 alloc'd

==4461== at 0x1B904A80: malloc (vg_replace_malloc.c:131)

==4461== by 0x1E49013C:
Firebird::MemoryPool::external_alloc(unsigned) (alloc.cpp:114)

==4461== by 0x1E49130B:
Firebird::MemoryPool::internal_create(unsigned, int*, int*)
(alloc.cpp:263)

==4461== by 0x1E413755: JrdMemoryPool::createPool() (all.cpp:118)

==4461== by 0x1E42D15A: CMP_compile2(tdbb*, unsigned char*,
unsigned short) (cmp.cpp:566)

==4461== by 0x1E35C898: jrd8_compile_request (jrd.cpp:1700)

==4461== by 0x1E3560E4: isc_compile_request (why.cpp:1157)

==4461== by 0x1E472033: METD_get_relation (metd.cpp:2356)

==4461== by 0x1E3B2A85: PASS1_make_context (pass1.cpp:303)

==4461== by 0x1E3AD4A1: PASS1_node (pass1.cpp:4010)

==4461== by 0x1E3ACC1D: PASS1_node (pass1.cpp:820)

==4461== by 0x1E3ACC1D: PASS1_node (pass1.cpp:820)

==4461== by 0x1E3ACC1D: PASS1_node (pass1.cpp:820)

==4461== by 0x1E3ACC1D: PASS1_node (pass1.cpp:820)

==4461== by 0x1E3ACC1D: PASS1_node (pass1.cpp:820)

==4461== by 0x1E3ACC1D: PASS1_node (pass1.cpp:820)

==4461== by 0x1E3B058D: PASS1_rse (pass1.cpp:4274)

==4461== by 0x1E3B1ABC: PASS1_rse (pass1.cpp:4258)

==4461== by 0x1E3B3749: PASS1_statement (pass1.cpp:1350)

==4461== by 0x1E395C61: prepare (dsql.cpp:4363)





program shutdown:

==4461== Invalid free() / delete / delete[]

==4461== at 0x1B90513F: operator delete(void*) (vg_replace_malloc.c:156)

==4461== by 0x1E4725AE: ALLD_fini() (alloc.h:341)

==4461== by 0x1E393620: cleanup (dsql.cpp:2533)

==4461== by 0x1E34AD8C: gds__cleanup (gds.cpp:3372)

==4461== by 0x4106F5D6: exit (in /lib/tls/libc-2.3.4.so)

==4461== by 0x41059E3C: __libc_start_main (in /lib/tls/libc-2.3.4.so)

==4461== by 0x8057ABC: (within /home/taf2/simo2/debug-simo/bin/firefox-bin)

==4461== Address 0x1E01EEB8 is 14264 bytes inside a block of size 16384 alloc'd

==4461== at 0x1B904A80: malloc (vg_replace_malloc.c:131)

==4461== by 0x1E49013C:
Firebird::MemoryPool::external_alloc(unsigned) (alloc.cpp:114)

==4461== by 0x1E49130B:
Firebird::MemoryPool::internal_create(unsigned, int*, int*)
(alloc.cpp:263)

==4461== by 0x1E47263B: DsqlMemoryPool::createPool() (alld.cpp:142)

==4461== by 0x1E4727A2: ALLD_init() (alld.cpp:109)

==4461== by 0x1E394368: init (dsql.cpp:3810)

==4461== by 0x1E3957FF: dsql8_allocate_statement (dsql.cpp:474)

==4461== by 0x1E354D0D: isc_dsql_allocate_statement (why.cpp:1928)

==4461== by 0x1E3371C1:
ibpp_internals::StatementImpl::Prepare(std::string const&)
(statement.cpp:76)

==4461== by 0x1E338483:
ibpp_internals::StatementImpl::Execute(std::string const&)
(statement.cpp:256)

==4461== by 0x1E2823C1:
SimoList::Impl::start(IBPP::Ptr<IBPP::IStatement>&,
IBPP::Ptr<IBPP::ITransaction>&, IBPP::Ptr<IBPP::IDatabase>&)
(SimoList.cc:139)

==4461== by 0x1E27F273: SimoList::getNext(bool,
simoIDataSupports**) (SimoList.cc:297)

==4461== by 0x1E22853E: SimoPersonList::GetNext(simoIPerson**) (Person.cc:87)

==4461== by 0x1BACE5D0: XPTC_InvokeByIndex (xptcinvoke_gcc_x86_unix.cpp:69)

==4461== by 0x1C03FCBF:
XPCWrappedNative::CallMethod(XPCCallContext&,
XPCWrappedNative::CallMode) (xpcwrappednative.cpp:2033)

==4461== by 0x1C049E14: XPC_WN_CallMethod(JSContext*, JSObject*,
unsigned, long*, long*) (xpcwrappednativejsops.cpp:1287)

==4461== by 0x1B951E76: js_Invoke (jsinterp.c:941)

==4461== by 0x1B960186: js_Interpret (jsinterp.c:2977)

==4461== by 0x1B951EF0: js_Invoke (jsinterp.c:958)

==4461== by 0x1B952264: js_InternalInvoke (jsinterp.c:1035)







larger stack trace:

==4552==

==4552== Invalid free() / delete / delete[]

==4552== at 0x1B90513F: operator delete(void*) (vg_replace_malloc.c:156)

==4552== by 0x1E3867AF: garbage_collect (vio.cpp:3338)

==4552== by 0x1E388477: purge (vio.cpp:4318)

==4552== by 0x1E389DC9: VIO_chase_record_version (vio.cpp:861)

==4552== by 0x1E38D7B6: VIO_get (vio.cpp:1672)

==4552== by 0x1E46AD1A: get_record(tdbb*, Rsb*, Rsb*, rse_get_mode)
(rse.cpp:2302)

==4552== by 0x1E46B5C9: get_record(tdbb*, Rsb*, Rsb*, rse_get_mode)
(rse.cpp:2583)

==4552== by 0x1E46D483: RSE_get_record(tdbb*, Rsb*, rse_get_mode)
(rse.cpp:478)

==4552== by 0x1E444EED: looper (exe.cpp:1959)

==4552== by 0x1E4472D2: EXE_send (exe.cpp:1355)

==4552== by 0x1E35A146: jrd8_start_and_send (jrd.cpp:3626)

==4552== by 0x1E34F62F: isc_start_and_send (why.cpp:4520)

==4552== by 0x1E472076: METD_get_relation (metd.cpp:2359)

==4552== by 0x1E3B2A85: PASS1_make_context (pass1.cpp:303)

==4552== by 0x1E3AD4A1: PASS1_node (pass1.cpp:4010)

==4552== by 0x1E3ACC1D: PASS1_node (pass1.cpp:820)

==4552== by 0x1E3ACC1D: PASS1_node (pass1.cpp:820)

==4552== by 0x1E3ACC1D: PASS1_node (pass1.cpp:820)

==4552== by 0x1E3ACC1D: PASS1_node (pass1.cpp:820)

==4552== by 0x1E3ACC1D: PASS1_node (pass1.cpp:820)

==4552== by 0x1E3B058D: PASS1_rse (pass1.cpp:4274)

==4552== by 0x1E3B1ABC: PASS1_rse (pass1.cpp:4258)

==4552== by 0x1E3B3749: PASS1_statement (pass1.cpp:1350)

==4552== by 0x1E395C61: prepare (dsql.cpp:4363)

==4552== by 0x1E397A97: dsql8_prepare (dsql.cpp:1464)

==4552== by 0x1E352C41: isc_dsql_prepare_m (why.cpp:3255)

==4552== by 0x1E352EFA: isc_dsql_prepare (why.cpp:3174)

==4552== by 0x1E33749B:
ibpp_internals::StatementImpl::Prepare(std::string const&)
(statement.cpp:102)

==4552== by 0x1E338483:
ibpp_internals::StatementImpl::Execute(std::string const&)
(statement.cpp:256)

==4552== by 0x1E2823C1:
SimoList::Impl::start(IBPP::Ptr<IBPP::IStatement>&,
IBPP::Ptr<IBPP::ITransaction>&, IBPP::Ptr<IBPP::IDatabase>&)
(SimoList.cc:139)

==4552== by 0x1E27F273: SimoList::getNext(bool,
simoIDataSupports**) (SimoList.cc:297)

==4552== by 0x1E21BCFA: SimoPlanList::GetNext(simoIPlan**) (Plan.cc:87)

==4552== by 0x1BACE5D0: XPTC_InvokeByIndex (xptcinvoke_gcc_x86_unix.cpp:69)

==4552== by 0x1C03FCBF:
XPCWrappedNative::CallMethod(XPCCallContext&,
XPCWrappedNative::CallMode) (xpcwrappednative.cpp:2033)

==4552== by 0x1C049E14: XPC_WN_CallMethod(JSContext*, JSObject*,
unsigned, long*, long*) (xpcwrappednativejsops.cpp:1287)

==4552== by 0x1B951E76: js_Invoke (jsinterp.c:941)

==4552== by 0x1B960186: js_Interpret (jsinterp.c:2977)

==4552== by 0x1B951EF0: js_Invoke (jsinterp.c:958)

==4552== by 0x1B952264: js_InternalInvoke (jsinterp.c:1035)

==4552== by 0x1B921883: JS_CallFunctionValue (jsapi.c:3698)

==4552== by 0x1CF165B0: nsJSContext::CallEventHandler(JSObject*,
JSObject*, unsigned, long*, long*) (nsJSEnvironment.cpp:1296)

==4552== by 0x1CF754D3:
nsJSEventListener::HandleEvent(nsIDOMEvent*)
(nsJSEventListener.cpp:174)

==4552== by 0x1CD4D837:
nsEventListenerManager::HandleEventSubType(nsListenerStruct*,
nsIDOMEvent*, nsIDOMEventTarget*, unsigned, unsigned)
(nsEventListenerManager.cpp:1436)

==4552== by 0x1CD4DBD9:
nsEventListenerManager::HandleEvent(nsIPresContext*, nsEvent*,
nsIDOMEvent**, nsIDOMEventTarget*, unsigned, nsEventStatus*)
(nsEventListenerManager.cpp:1529)

==4552== by 0x1CF1FE31:
GlobalWindowImpl::HandleDOMEvent(nsIPresContext*, nsEvent*,
nsIDOMEvent**, unsigned, nsEventStatus*) (nsGlobalWindow.cpp:925)

==4552== by 0x1CCA8569: DocumentViewerImpl::LoadComplete(unsigned)
(nsDocumentViewer.cpp:916)

==4552== by 0x1C7CC406: nsDocShell::EndPageLoad(nsIWebProgress*,
nsIChannel*, unsigned) (nsDocShell.cpp:4440)

==4552== by 0x1C7F3C2C: nsWebShell::EndPageLoad(nsIWebProgress*,
nsIChannel*, unsigned) (nsWebShell.cpp:750)

==4552== by 0x1C7CC120: nsDocShell::OnStateChange(nsIWebProgress*,
nsIRequest*, unsigned, unsigned) (nsDocShell.cpp:4372)

==4552== by 0x1C80B208:
nsDocLoaderImpl::FireOnStateChange(nsIWebProgress*, nsIRequest*, int,
unsigned) (nsDocLoader.cpp:1263)

==4552== Address 0x1E18FCCC is 8420 bytes inside a block of size 16384 alloc'd

==4552== at 0x1B904A80: malloc (vg_replace_malloc.c:131)

==4552== by 0x1E49013C:
Firebird::MemoryPool::external_alloc(unsigned) (alloc.cpp:114)

==4552== by 0x1E49130B:
Firebird::MemoryPool::internal_create(unsigned, int*, int*)
(alloc.cpp:263)

==4552== by 0x1E413755: JrdMemoryPool::createPool() (all.cpp:118)

==4552== by 0x1E42D15A: CMP_compile2(tdbb*, unsigned char*,
unsigned short) (cmp.cpp:566)

==4552== by 0x1E35C898: jrd8_compile_request (jrd.cpp:1700)

==4552== by 0x1E3560E4: isc_compile_request (why.cpp:1157)

==4552== by 0x1E472033: METD_get_relation (metd.cpp:2356)

==4552== by 0x1E3B2A85: PASS1_make_context (pass1.cpp:303)

==4552== by 0x1E3AD4A1: PASS1_node (pass1.cpp:4010)

==4552== by 0x1E3ACC1D: PASS1_node (pass1.cpp:820)

==4552== by 0x1E3ACC1D: PASS1_node (pass1.cpp:820)

==4552== by 0x1E3ACC1D: PASS1_node (pass1.cpp:820)

==4552== by 0x1E3ACC1D: PASS1_node (pass1.cpp:820)

==4552== by 0x1E3ACC1D: PASS1_node (pass1.cpp:820)

==4552== by 0x1E3ACC1D: PASS1_node (pass1.cpp:820)

==4552== by 0x1E3B058D: PASS1_rse (pass1.cpp:4274)

==4552== by 0x1E3B1ABC: PASS1_rse (pass1.cpp:4258)

==4552== by 0x1E3B3749: PASS1_statement (pass1.cpp:1350)

==4552== by 0x1E395C61: prepare (dsql.cpp:4363)

==4552== by 0x1E397A97: dsql8_prepare (dsql.cpp:1464)

==4552== by 0x1E352C41: isc_dsql_prepare_m (why.cpp:3255)

==4552== by 0x1E352EFA: isc_dsql_prepare (why.cpp:3174)

==4552== by 0x1E33749B:
ibpp_internals::StatementImpl::Prepare(std::string const&)
(statement.cpp:102)

==4552== by 0x1E338483:
ibpp_internals::StatementImpl::Execute(std::string const&)
(statement.cpp:256)

==4552== by 0x1E2823C1:
SimoList::Impl::start(IBPP::Ptr<IBPP::IStatement>&,
IBPP::Ptr<IBPP::ITransaction>&, IBPP::Ptr<IBPP::IDatabase>&)
(SimoList.cc:139)

==4552== by 0x1E27F273: SimoList::getNext(bool,
simoIDataSupports**) (SimoList.cc:297)

==4552== by 0x1E22853E: SimoPersonList::GetNext(simoIPerson**) (Person.cc:87)

==4552== by 0x1BACE5D0: XPTC_InvokeByIndex (xptcinvoke_gcc_x86_unix.cpp:69)

==4552== by 0x1C03FCBF:
XPCWrappedNative::CallMethod(XPCCallContext&,
XPCWrappedNative::CallMode) (xpcwrappednative.cpp:2033)

==4552== by 0x1C049E14: XPC_WN_CallMethod(JSContext*, JSObject*,
unsigned, long*, long*) (xpcwrappednativejsops.cpp:1287)

==4552== by 0x1B951E76: js_Invoke (jsinterp.c:941)

==4552== by 0x1B960186: js_Interpret (jsinterp.c:2977)

==4552== by 0x1B951EF0: js_Invoke (jsinterp.c:958)

==4552== by 0x1B952264: js_InternalInvoke (jsinterp.c:1035)

==4552== by 0x1B921883: JS_CallFunctionValue (jsapi.c:3698)

==4552== by 0x1CF165B0: nsJSContext::CallEventHandler(JSObject*,
JSObject*, unsigned, long*, long*) (nsJSEnvironment.cpp:1296)

==4552== by 0x1CF754D3:
nsJSEventListener::HandleEvent(nsIDOMEvent*)
(nsJSEventListener.cpp:174)

==4552== by 0x1CD4D837:
nsEventListenerManager::HandleEventSubType(nsListenerStruct*,
nsIDOMEvent*, nsIDOMEventTarget*, unsigned, unsigned)
(nsEventListenerManager.cpp:1436)

==4552== by 0x1CD4DBD9:
nsEventListenerManager::HandleEvent(nsIPresContext*, nsEvent*,
nsIDOMEvent**, nsIDOMEventTarget*, unsigned, nsEventStatus*)
(nsEventListenerManager.cpp:1529)

==4552== by 0x1CF1FE31:
GlobalWindowImpl::HandleDOMEvent(nsIPresContext*, nsEvent*,
nsIDOMEvent**, unsigned, nsEventStatus*) (nsGlobalWindow.cpp:925)

==4552== by 0x1CCA8569: DocumentViewerImpl::LoadComplete(unsigned)
(nsDocumentViewer.cpp:916)

==4552== by 0x1C7CC406: nsDocShell::EndPageLoad(nsIWebProgress*,
nsIChannel*, unsigned) (nsDocShell.cpp:4440)

==4552== by 0x1C7F3C2C: nsWebShell::EndPageLoad(nsIWebProgress*,
nsIChannel*, unsigned) (nsWebShell.cpp:750)

==4552== by 0x1C7CC120: nsDocShell::OnStateChange(nsIWebProgress*,
nsIRequest*, unsigned, unsigned) (nsDocShell.cpp:4372)

==4552== by 0x1C80B208:
nsDocLoaderImpl::FireOnStateChange(nsIWebProgress*, nsIRequest*, int,
unsigned) (nsDocLoader.cpp:1263)

==4552== by 0x1C80A48B:
nsDocLoaderImpl::doStopDocumentLoad(nsIRequest*, unsigned)
(nsDocLoader.cpp:853)

==4552== by 0x1C80A1D9: nsDocLoaderImpl::DocLoaderIsEmpty()
(nsDocLoader.cpp:764)

==4552== by 0x1C809FAB: nsDocLoaderImpl::OnStopRequest(nsIRequest*,
nsISupports*, unsigned) (nsDocLoader.cpp:693)

==4552== by 0x1C2FF300: nsLoadGroup::RemoveRequest(nsIRequest*,
nsISupports*, unsigned) (nsLoadGroup.cpp:695)