I have been looking to use cxxtools in some projects that require both Linux
and Windows support. As part of doing some testing in compiling with
Cygwin, I was getting segmentation faults with the rpcechoclient demo. The
application runs but then generates faults when cleaning up at the end of
execution. I went back to the standard Linux version (master branch) and
was able to recreate the problem compiling with Address Sanitizer. I don't
get this problem with the 2.2.1 release.
What seems to be happening is that Connection::close() is being called with
an object that is part of the list in the Connectable class. Inside
Connectable::onConnectionClose(), it finds the element and removes it which
calls the destructor. When it returns back, you are in the object that you
just called the destructor for.
With the standard Linux compilation, it basically ignores it. With Address
Sanitizer added, it will detect that the object has already been deleted and
generate an error.
Below is a trace the code with various trace and debug statements added.
The object that is a problem is at address 0x60300000abe0.
At 2015-02-03 15:00:40.52715, it is created.
At 2015-02-03 15:00:40.53251, it's close function is called.
At 2015-02-03 15:00:40.53268, it's destructor is called.
It is still accessed when returning and causes a Heap Use After Free error.
Steve
2015-02-03 14:54:18.09023 [62690.140737353938880] DEBUG main - create
clients
2015-02-03 14:54:18.09505 [62690.140737353938880] TRACE
cxxtools.json.rpcclient - ENTER RpcClient::RpcClient
2015-02-03 14:54:18.09509 [62690.140737353938880] TRACE
cxxtools.json.rpcclient - ENTER prepareConnect(host,port)
2015-02-03 14:54:18.09586 [62690.140737353938880] DEBUG
cxxtools.net.addrinfo - host=localhost port=7002
2015-02-03 14:54:18.11993 [62690.140737353938880] TRACE
cxxtools.json.rpcclient - ENTER prepareConnect(addrinfo)
2015-02-03 14:54:18.12000 [62690.140737353938880] TRACE
cxxtools.json.rpcclient - ENTER getImpl
2015-02-03 14:54:18.12003 [62690.140737353938880] DEBUG
cxxtools.json.rpcclient - create new client impl
2015-02-03 14:54:18.12021 [62690.140737353938880] TRACE
cxxtools.streambuffer - ENTER Create
StreamBuffer(ioDevice,bufferSize,extend)
2015-02-03 14:55:50.81774 [62690.140737353938880] TRACE
cxxtools.streambuffer - ENTER attach
2015-02-03 14:55:50.81800 [62690.140737353938880] DEBUG
cxxtools.streambuffer - connect onRead
2015-02-03 15:00:40.52682 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Create Connection(sender,slot)
2015-02-03 15:00:40.52694 [62690.140737353938880] DEBUG cxxtools.connection
- this 0x7fffffffb0a0
2015-02-03 15:00:40.52703 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Create Connection(connection): from this = 0x7fffffffb0a0, _data ptr
= 0x60300000ac30
2015-02-03 15:00:40.52707 [62690.140737353938880] DEBUG cxxtools.connection
- this = 0x60300000ac10
2015-02-03 15:00:40.52709 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Create Connection(connection): from this = 0x7fffffffb0a0, _data ptr
= 0x60300000ac30
2015-02-03 15:00:40.52713 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Create Connection(connection): from this = 0x7fffffffb0a0, _data ptr
= 0x60300000ac30
2015-02-03 15:00:40.52715 [62690.140737353938880] DEBUG cxxtools.connection
- this = 0x60300000abe0
2015-02-03 15:00:40.52718 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Create Connection(connection): from this = 0x7fffffffb0a0, _data ptr
= 0x60300000ac30
2015-02-03 15:00:40.52720 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Create Connection(sender,slot)
2015-02-03 15:00:40.52727 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Destroy Connection: 0x7fffffffb0a0
2015-02-03 15:00:40.52731 [62690.140737353938880] DEBUG cxxtools.connection
- releaseCount = 2
2015-02-03 15:00:40.52734 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Destroy Connection: 0x7fffffffb0a0
2015-02-03 15:00:40.52736 [62690.140737353938880] DEBUG
cxxtools.streambuffer - connect onWrite
2015-02-03 15:00:40.52741 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Create Connection(sender,slot)
2015-02-03 15:00:40.52743 [62690.140737353938880] DEBUG cxxtools.connection
- this 0x7fffffffb1a0
2015-02-03 15:00:40.52747 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Create Connection(connection): from this = 0x7fffffffb1a0, _data ptr
= 0x60300000aba0
2015-02-03 15:00:40.52750 [62690.140737353938880] DEBUG cxxtools.connection
- this = 0x60300000ab80
2015-02-03 15:00:40.52753 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Create Connection(connection): from this = 0x7fffffffb1a0, _data ptr
= 0x60300000aba0
2015-02-03 15:00:40.52755 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Create Connection(connection): from this = 0x7fffffffb1a0, _data ptr
= 0x60300000aba0
2015-02-03 15:00:40.52758 [62690.140737353938880] DEBUG cxxtools.connection
- this = 0x60300000ab50
2015-02-03 15:00:40.52760 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Create Connection(connection): from this = 0x7fffffffb1a0, _data ptr
= 0x60300000aba0
2015-02-03 15:00:40.52762 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Create Connection(sender,slot)
2015-02-03 15:00:40.52765 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Destroy Connection: 0x7fffffffb1a0
2015-02-03 15:00:40.52768 [62690.140737353938880] DEBUG cxxtools.connection
- releaseCount = 2
2015-02-03 15:00:40.52770 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Destroy Connection: 0x7fffffffb1a0
2015-02-03 15:00:40.52773 [62690.140737353938880] TRACE
cxxtools.streambuffer - EXIT attach
2015-02-03 15:00:40.52776 [62690.140737353938880] TRACE
cxxtools.streambuffer - EXIT Create StreamBuffer(ioDevice,bufferSize,extend)
2015-02-03 15:00:40.52783 [62690.140737353938880] TRACE cxxtools.stream -
ENTER Create IOStream(device,bufferSize,extend)
2015-02-03 15:00:40.52786 [62690.140737353938880] TRACE cxxtools.stream -
EXIT Create IOStream(device,bufferSize,extend)
2015-02-03 15:00:40.52800 [62690.140737353938880] TRACE
cxxtools.json.rpcclient.impl - ENTER RpcClientImpl::RpcClientImpl()
2015-02-03 15:00:40.52809 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Create Connection(sender,slot)
2015-02-03 15:00:40.52812 [62690.140737353938880] DEBUG cxxtools.connection
- this 0x7fffffffbe80
2015-02-03 15:00:40.52817 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Create Connection(connection): from this = 0x7fffffffbe80, _data ptr
= 0x60300000aae0
2015-02-03 15:00:40.52819 [62690.140737353938880] DEBUG cxxtools.connection
- this = 0x60300000aac0
2015-02-03 15:00:40.52821 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Create Connection(connection): from this = 0x7fffffffbe80, _data ptr
= 0x60300000aae0
2015-02-03 15:00:40.52829 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Create Connection(connection): from this = 0x7fffffffbe80, _data ptr
= 0x60300000aae0
2015-02-03 15:00:40.52833 [62690.140737353938880] DEBUG cxxtools.connection
- this = 0x60300000aa90
2015-02-03 15:00:40.52835 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Create Connection(connection): from this = 0x7fffffffbe80, _data ptr
= 0x60300000aae0
2015-02-03 15:00:40.52837 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Create Connection(sender,slot)
2015-02-03 15:00:40.52841 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Destroy Connection: 0x7fffffffbe80
2015-02-03 15:00:40.52843 [62690.140737353938880] DEBUG cxxtools.connection
- releaseCount = 2
2015-02-03 15:00:40.52845 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Destroy Connection: 0x7fffffffbe80
2015-02-03 15:00:40.52848 [62690.140737353938880] DEBUG
cxxtools.json.rpcclient.impl - connect onOutput
2015-02-03 15:00:40.52858 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Create Connection(sender,slot)
2015-02-03 15:00:40.52861 [62690.140737353938880] DEBUG cxxtools.connection
- this 0x7fffffffbf80
2015-02-03 15:00:40.52864 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Create Connection(connection): from this = 0x7fffffffbf80, _data ptr
= 0x60300000aa50
2015-02-03 15:00:40.52867 [62690.140737353938880] DEBUG cxxtools.connection
- this = 0x60300000aa30
2015-02-03 15:00:40.52869 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Create Connection(connection): from this = 0x7fffffffbf80, _data ptr
= 0x60300000aa50
2015-02-03 15:00:40.52872 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Create Connection(connection): from this = 0x7fffffffbf80, _data ptr
= 0x60300000aa50
2015-02-03 15:00:40.52875 [62690.140737353938880] DEBUG cxxtools.connection
- this = 0x60300000aa00
2015-02-03 15:00:40.52877 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Create Connection(connection): from this = 0x7fffffffbf80, _data ptr
= 0x60300000aa50
2015-02-03 15:00:40.52879 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Create Connection(sender,slot)
2015-02-03 15:00:40.52883 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Destroy Connection: 0x7fffffffbf80
2015-02-03 15:00:40.52885 [62690.140737353938880] DEBUG cxxtools.connection
- releaseCount = 2
2015-02-03 15:00:40.52887 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Destroy Connection: 0x7fffffffbf80
2015-02-03 15:00:40.52891 [62690.140737353938880] DEBUG
cxxtools.json.rpcclient.impl - connect onInput
2015-02-03 15:00:40.52894 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Create Connection(sender,slot)
2015-02-03 15:00:40.52897 [62690.140737353938880] DEBUG cxxtools.connection
- this 0x7fffffffc080
2015-02-03 15:00:40.52900 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Create Connection(connection): from this = 0x7fffffffc080, _data ptr
= 0x60300000a9c0
2015-02-03 15:00:40.52902 [62690.140737353938880] DEBUG cxxtools.connection
- this = 0x60300000a9a0
2015-02-03 15:00:40.52904 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Create Connection(connection): from this = 0x7fffffffc080, _data ptr
= 0x60300000a9c0
2015-02-03 15:00:40.52908 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Create Connection(connection): from this = 0x7fffffffc080, _data ptr
= 0x60300000a9c0
2015-02-03 15:00:40.52911 [62690.140737353938880] DEBUG cxxtools.connection
- this = 0x60300000a970
2015-02-03 15:00:40.52912 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Create Connection(connection): from this = 0x7fffffffc080, _data ptr
= 0x60300000a9c0
2015-02-03 15:00:40.52926 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Create Connection(sender,slot)
2015-02-03 15:00:40.52930 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Destroy Connection: 0x7fffffffc080
2015-02-03 15:00:40.52932 [62690.140737353938880] DEBUG cxxtools.connection
- releaseCount = 2
2015-02-03 15:00:40.52934 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Destroy Connection: 0x7fffffffc080
2015-02-03 15:00:40.52935 [62690.140737353938880] TRACE
cxxtools.json.rpcclient.impl - EXIT RpcClientImpl::RpcClientImpl()
2015-02-03 15:00:40.52938 [62690.140737353938880] TRACE
cxxtools.json.rpcclient - EXIT getImpl
2015-02-03 15:00:40.52942 [62690.140737353938880] TRACE
cxxtools.json.rpcclient - EXIT prepareConnect(addrinfo)
2015-02-03 15:00:40.52945 [62690.140737353938880] TRACE
cxxtools.json.rpcclient - EXIT prepareConnect(host,port)
2015-02-03 15:00:40.52946 [62690.140737353938880] TRACE
cxxtools.json.rpcclient - EXIT RpcClient::RpcClient
2015-02-03 15:00:40.52948 [62690.140737353938880] DEBUG main - client
created
2015-02-03 15:00:40.52950 [62690.140737353938880] DEBUG main - client
configured
2015-02-03 15:00:40.52955 [62690.140737353938880] DEBUG main - RPC call
defined
2015-02-03 15:00:40.52958 [62690.140737353938880] DEBUG main - RPC call
finished
2015-02-03 15:00:40.52964 [62690.140737353938880] TRACE cxxtools.connectable
- ENTER Destroy Connectable
2015-02-03 15:00:40.52967 [62690.140737353938880] TRACE cxxtools.connectable
- ENTER Clear
2015-02-03 15:00:40.52969 [62690.140737353938880] TRACE cxxtools.connectable
- EXIT Clear
2015-02-03 15:00:40.52971 [62690.140737353938880] TRACE cxxtools.connectable
- EXIT Destroy Connectable
2015-02-03 15:00:40.52975 [62690.140737353938880] TRACE
cxxtools.json.rpcclient - ENTER Destroy RpcClient
2015-02-03 15:00:40.52977 [62690.140737353938880] TRACE
cxxtools.json.rpcclient.impl - ENTER Destroy RpcClientImpl
2015-02-03 15:00:40.52980 [62690.140737353938880] TRACE
cxxtools.json.rpcclient.impl - EXIT Destroy RpcClientImpl
2015-02-03 15:00:40.52987 [62690.140737353938880] TRACE cxxtools.stream -
ENTER Destroy IOStream
2015-02-03 15:00:40.52990 [62690.140737353938880] TRACE cxxtools.stream -
EXIT Destroy IOStream
2015-02-03 15:00:40.52994 [62690.140737353938880] TRACE
cxxtools.streambuffer - ENTER Destroy StreamBuffer
2015-02-03 15:00:40.52996 [62690.140737353938880] DEBUG
cxxtools.streambuffer - delet _ibuffer
2015-02-03 15:00:40.52999 [62690.140737353938880] DEBUG
cxxtools.streambuffer - delet _obuffer
2015-02-03 15:00:40.53000 [62690.140737353938880] DEBUG
cxxtools.streambuffer - exit streambuffer
2015-02-03 15:00:40.53002 [62690.140737353938880] TRACE
cxxtools.streambuffer - EXIT Destroy StreamBuffer
2015-02-03 15:00:40.53006 [62690.140737353938880] TRACE cxxtools.connectable
- ENTER Destroy Connectable
2015-02-03 15:00:40.53009 [62690.140737353938880] TRACE cxxtools.connectable
- ENTER Clear
2015-02-03 15:00:40.53012 [62690.140737353938880] DEBUG cxxtools.connectable
- Clear loopCount = 0
2015-02-03 15:00:40.53015 [62690.140737353938880] TRACE cxxtools.connection
- ENTER close: 0x60300000aa30
2015-02-03 15:00:40.53019 [62690.140737353938880] DEBUG cxxtools.connection
- onDisconnect
2015-02-03 15:00:40.53022 [62690.140737353938880] TRACE cxxtools.connectable
- ENTER onConnectionClose: Connection this = 0x60300000aa30, _data ptr =
0x60300000aa50
2015-02-03 15:00:40.53026 [62690.140737353938880] DEBUG cxxtools.connectable
- List of current connections
2015-02-03 15:00:40.53029 [62690.140737353938880] DEBUG cxxtools.connectable
- Connection[] = this = 0x60300000aa90, _data ptr = 0x60300000aae0
2015-02-03 15:00:40.53033 [62690.140737353938880] DEBUG cxxtools.connectable
- Connection[] = this = 0x60300000aa00, _data ptr = 0x60300000aa50
2015-02-03 15:00:40.53035 [62690.140737353938880] DEBUG cxxtools.connectable
- Connection[] = this = 0x60300000a970, _data ptr = 0x60300000a9c0
2015-02-03 15:00:40.53038 [62690.140737353938880] DEBUG cxxtools.connectable
- Remove and destroy connection: this = 0x60300000aa30, _data ptr =
0x60300000aa50
2015-02-03 15:00:40.53042 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Destroy Connection: 0x60300000aa00
2015-02-03 15:00:40.53045 [62690.140737353938880] DEBUG cxxtools.connection
- releaseCount = 1
2015-02-03 15:00:40.53046 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Destroy Connection: 0x60300000aa00
2015-02-03 15:00:40.53049 [62690.140737353938880] DEBUG cxxtools.connectable
- List of connections after remove
2015-02-03 15:00:40.53051 [62690.140737353938880] DEBUG cxxtools.connectable
- Connection[] = this = 0x60300000aa90, _data ptr = 0x60300000aae0
2015-02-03 15:00:40.53055 [62690.140737353938880] DEBUG cxxtools.connectable
- Connection[] = this = 0x60300000a970, _data ptr = 0x60300000a9c0
2015-02-03 15:00:40.53057 [62690.140737353938880] TRACE cxxtools.connectable
- EXIT onConnectionClose: Connection this = 0x60300000aa30, _data ptr =
0x60300000aa50
2015-02-03 15:00:40.53059 [62690.140737353938880] DEBUG cxxtools.connection
- onDisconnect done: 0x60300000aa30
2015-02-03 15:00:40.53061 [62690.140737353938880] DEBUG cxxtools.connection
- setValid(false)
2015-02-03 15:00:40.53065 [62690.140737353938880] TRACE cxxtools.connectable
- ENTER onConnectionClose: Connection this = 0x60300000aa30, _data ptr =
0x60300000aa50
2015-02-03 15:00:40.53068 [62690.140737353938880] DEBUG cxxtools.connectable
- List of current connections
2015-02-03 15:00:40.53070 [62690.140737353938880] DEBUG cxxtools.connectable
- Connection[] = this = 0x60300000aa30, _data ptr = 0x60300000aa50
2015-02-03 15:00:40.53089 [62690.140737353938880] DEBUG cxxtools.connectable
- Remove and destroy connection: this = 0x60300000aa30, _data ptr =
0x60300000aa50
2015-02-03 15:00:40.53094 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Destroy Connection: 0x60300000aa30
2015-02-03 15:00:40.53096 [62690.140737353938880] DEBUG cxxtools.connection
- releaseCount = 0
2015-02-03 15:00:40.53099 [62690.140737353938880] TRACE cxxtools.connection
- ENTER close: 0x60300000aa30
2015-02-03 15:00:40.53100 [62690.140737353938880] TRACE cxxtools.connection
- EXIT close: 0x60300000aa30
2015-02-03 15:00:40.53102 [62690.140737353938880] DEBUG cxxtools.connection
- delete _data ptr = 0x60300000aa50
2015-02-03 15:00:40.53106 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Destroy Connection: 0x60300000aa30
2015-02-03 15:00:40.53109 [62690.140737353938880] DEBUG cxxtools.connectable
- List of connections after remove
2015-02-03 15:00:40.53121 [62690.140737353938880] TRACE cxxtools.connectable
- EXIT onConnectionClose: Connection this = 0x60300000aa30, _data ptr =
0x60300000aa50
2015-02-03 15:00:40.53128 [62690.140737353938880] TRACE cxxtools.connection
- EXIT close: 0x60300000aa30
2015-02-03 15:00:40.53130 [62690.140737353938880] TRACE cxxtools.connectable
- EXIT Clear
2015-02-03 15:00:40.53132 [62690.140737353938880] TRACE cxxtools.connectable
- EXIT Destroy Connectable
2015-02-03 15:00:40.53136 [62690.140737353938880] TRACE cxxtools.connectable
- ENTER Destroy Connectable
2015-02-03 15:00:40.53146 [62690.140737353938880] TRACE cxxtools.connectable
- ENTER Clear
2015-02-03 15:00:40.53149 [62690.140737353938880] DEBUG cxxtools.connectable
- Clear loopCount = 0
2015-02-03 15:00:40.53161 [62690.140737353938880] TRACE cxxtools.connection
- ENTER close: 0x60300000a9a0
2015-02-03 15:00:40.53164 [62690.140737353938880] DEBUG cxxtools.connection
- onDisconnect
2015-02-03 15:00:40.53167 [62690.140737353938880] TRACE cxxtools.connectable
- ENTER onConnectionClose: Connection this = 0x60300000a9a0, _data ptr =
0x60300000a9c0
2015-02-03 15:00:40.53170 [62690.140737353938880] DEBUG cxxtools.connectable
- List of current connections
2015-02-03 15:00:40.53173 [62690.140737353938880] DEBUG cxxtools.connectable
- Connection[] = this = 0x60300000aa90, _data ptr = 0x60300000aae0
2015-02-03 15:00:40.53175 [62690.140737353938880] DEBUG cxxtools.connectable
- Connection[] = this = 0x60300000a970, _data ptr = 0x60300000a9c0
2015-02-03 15:00:40.53177 [62690.140737353938880] DEBUG cxxtools.connectable
- Remove and destroy connection: this = 0x60300000a9a0, _data ptr =
0x60300000a9c0
2015-02-03 15:00:40.53181 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Destroy Connection: 0x60300000a970
2015-02-03 15:00:40.53184 [62690.140737353938880] DEBUG cxxtools.connection
- releaseCount = 1
2015-02-03 15:00:40.53186 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Destroy Connection: 0x60300000a970
2015-02-03 15:00:40.53189 [62690.140737353938880] DEBUG cxxtools.connectable
- List of connections after remove
2015-02-03 15:00:40.53192 [62690.140737353938880] DEBUG cxxtools.connectable
- Connection[] = this = 0x60300000aa90, _data ptr = 0x60300000aae0
2015-02-03 15:00:40.53193 [62690.140737353938880] TRACE cxxtools.connectable
- EXIT onConnectionClose: Connection this = 0x60300000a9a0, _data ptr =
0x60300000a9c0
2015-02-03 15:00:40.53197 [62690.140737353938880] DEBUG cxxtools.connection
- onDisconnect done: 0x60300000a9a0
2015-02-03 15:00:40.53199 [62690.140737353938880] DEBUG cxxtools.connection
- setValid(false)
2015-02-03 15:00:40.53201 [62690.140737353938880] TRACE cxxtools.connectable
- ENTER onConnectionClose: Connection this = 0x60300000a9a0, _data ptr =
0x60300000a9c0
2015-02-03 15:00:40.53203 [62690.140737353938880] DEBUG cxxtools.connectable
- List of current connections
2015-02-03 15:00:40.53206 [62690.140737353938880] DEBUG cxxtools.connectable
- Connection[] = this = 0x60300000a9a0, _data ptr = 0x60300000a9c0
2015-02-03 15:00:40.53208 [62690.140737353938880] DEBUG cxxtools.connectable
- Remove and destroy connection: this = 0x60300000a9a0, _data ptr =
0x60300000a9c0
2015-02-03 15:00:40.53211 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Destroy Connection: 0x60300000a9a0
2015-02-03 15:00:40.53213 [62690.140737353938880] DEBUG cxxtools.connection
- releaseCount = 0
2015-02-03 15:00:40.53216 [62690.140737353938880] TRACE cxxtools.connection
- ENTER close: 0x60300000a9a0
2015-02-03 15:00:40.53218 [62690.140737353938880] TRACE cxxtools.connection
- EXIT close: 0x60300000a9a0
2015-02-03 15:00:40.53220 [62690.140737353938880] DEBUG cxxtools.connection
- delete _data ptr = 0x60300000a9c0
2015-02-03 15:00:40.53223 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Destroy Connection: 0x60300000a9a0
2015-02-03 15:00:40.53229 [62690.140737353938880] DEBUG cxxtools.connectable
- List of connections after remove
2015-02-03 15:00:40.53233 [62690.140737353938880] TRACE cxxtools.connectable
- EXIT onConnectionClose: Connection this = 0x60300000a9a0, _data ptr =
0x60300000a9c0
2015-02-03 15:00:40.53235 [62690.140737353938880] TRACE cxxtools.connection
- EXIT close: 0x60300000a9a0
2015-02-03 15:00:40.53236 [62690.140737353938880] TRACE cxxtools.connectable
- EXIT Clear
2015-02-03 15:00:40.53239 [62690.140737353938880] TRACE cxxtools.connectable
- EXIT Destroy Connectable
2015-02-03 15:00:40.53243 [62690.140737353938880] TRACE cxxtools.connectable
- ENTER Destroy Connectable
2015-02-03 15:00:40.53245 [62690.140737353938880] TRACE cxxtools.connectable
- ENTER Clear
2015-02-03 15:00:40.53247 [62690.140737353938880] DEBUG cxxtools.connectable
- Clear loopCount = 0
2015-02-03 15:00:40.53251 [62690.140737353938880] TRACE cxxtools.connection
- ENTER close: 0x60300000abe0
2015-02-03 15:00:40.53254 [62690.140737353938880] DEBUG cxxtools.connection
- onDisconnect
2015-02-03 15:00:40.53256 [62690.140737353938880] TRACE cxxtools.connectable
- ENTER onConnectionClose: Connection this = 0x60300000abe0, _data ptr =
0x60300000ac30
2015-02-03 15:00:40.53258 [62690.140737353938880] DEBUG cxxtools.connectable
- List of current connections
2015-02-03 15:00:40.53262 [62690.140737353938880] DEBUG cxxtools.connectable
- Connection[] = this = 0x60300000abe0, _data ptr = 0x60300000ac30
2015-02-03 15:00:40.53264 [62690.140737353938880] DEBUG cxxtools.connectable
- Connection[] = this = 0x60300000ab50, _data ptr = 0x60300000aba0
2015-02-03 15:00:40.53266 [62690.140737353938880] DEBUG cxxtools.connectable
- Remove and destroy connection: this = 0x60300000abe0, _data ptr =
0x60300000ac30
2015-02-03 15:00:40.53268 [62690.140737353938880] TRACE cxxtools.connection
- ENTER Destroy Connection: 0x60300000abe0
2015-02-03 15:00:40.53270 [62690.140737353938880] DEBUG cxxtools.connection
- releaseCount = 1
2015-02-03 15:00:40.53273 [62690.140737353938880] TRACE cxxtools.connection
- EXIT Destroy Connection: 0x60300000abe0
2015-02-03 15:00:40.53276 [62690.140737353938880] DEBUG cxxtools.connectable
- List of connections after remove
2015-02-03 15:00:40.53278 [62690.140737353938880] DEBUG cxxtools.connectable
- Connection[] = this = 0x60300000ab50, _data ptr = 0x60300000aba0
2015-02-03 15:00:40.53280 [62690.140737353938880] TRACE cxxtools.connectable
- EXIT onConnectionClose: Connection this = 0x60300000abe0, _data ptr =
0x60300000ac30
2015-02-03 15:00:40.53283 [62690.140737353938880] DEBUG cxxtools.connection
- onDisconnect done: 0x60300000abe0
------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Tntnet-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tntnet-general