I used valgrind to trace segmentation fault point.
It crashed in destructor of OCRepresentation.
Anyone have any idea?


==6406== Thread 3:
==6406== Invalid free() / delete / delete[] / realloc()
==6406==    at 0x481A50C: free (vg_replace_malloc.c:473)
==6406==    by 0x1B472B: _M_dispose (basic_string.h:249)
==6406==    by 0x1B472B: std::basic_string<char,
std::char_traits<char>, std::allocator<char> >::~basic_string()
(basic_string.h:547)
==6406==    by 0x16302B: OC::OCRepresentation::~OCRepresentation() (in
/data/simpleclient)
==6406==    by 0x16548B:
putLightRepresentation(std::shared_ptr<OC::OCResource>)
(simpleclient.cpp:264)
==6406==    by 0x1658BB:
onGet(std::vector<OC::HeaderOption::OCHeaderOption,
std::allocator<OC::HeaderOption::OCHeaderOption> > const&,
OC::OCRepresentation const&, int) (simpleclient.cpp:287)
==6406==    by 0x168FA3: std::_Function_handler<void
(std::vector<OC::HeaderOption::OCHeaderOption,
std::allocator<OC::HeaderOption::OCHeaderOption> > const&,
OC::OCRepresentation const&, int), void
(*)(std::vector<OC::HeaderOption::OCHeaderOption,
std::allocator<OC::HeaderOption::OCHeaderOption> > const&,
OC::OCRepresentation const&, int)>::_M_invoke(std::_Any_data const&,
std::vector<OC::HeaderOption::OCHeaderOption,
std::allocator<OC::HeaderOption::OCHeaderOption> > const&,
OC::OCRepresentation const&, int) (functional:2039)
==6406==    by 0x4BA23BB: std::function<void
(std::vector<OC::HeaderOption::OCHeaderOption,
std::allocator<OC::HeaderOption::OCHeaderOption> > const&,
OC::OCRepresentation const&,
int)>::operator()(std::vector<OC::HeaderOption::OCHeaderOption,
std::allocator<OC::HeaderOption::OCHeaderOption> > const&,
OC::OCRepresentation const&, int) const (functional:2439)
==6406==    by 0x4BA1B7F: void std::_Bind_simple<std::function<void
(std::vector<OC::HeaderOption::OCHeaderOption,
std::allocator<OC::HeaderOption::OCHeaderOption> > const&,
OC::OCRepresentation const&, int)>
(std::vector<OC::HeaderOption::OCHeaderOption,
std::allocator<OC::HeaderOption::OCHeaderOption> >,
OC::OCRepresentation, OCStackResult)>::_M_invoke<0u, 1u,
2u>(std::_Index_tuple<0u, 1u, 2u>) (functional:1700)
==6406==    by 0x4BA0F77: std::_Bind_simple<std::function<void
(std::vector<OC::HeaderOption::OCHeaderOption,
std::allocator<OC::HeaderOption::OCHeaderOption> > const&,
OC::OCRepresentation const&, int)>
(std::vector<OC::HeaderOption::OCHeaderOption,
std::allocator<OC::HeaderOption::OCHeaderOption> >,
OC::OCRepresentation, OCStackResult)>::operator()() (functional:1688)
==6406==    by 0x4BA0AFF:
std::thread::_Impl<std::_Bind_simple<std::function<void
(std::vector<OC::HeaderOption::OCHeaderOption,
std::allocator<OC::HeaderOption::OCHeaderOption> > const&,
OC::OCRepresentation const&, int)>
(std::vector<OC::HeaderOption::OCHeaderOption,
std::allocator<OC::HeaderOption::OCHeaderOption> >,
OC::OCRepresentation, OCStackResult)> >::_M_run() (thread:115)
==6406==    by 0x4BCC6CB: execute_native_thread_routine (thread.cc:84)
==6406==    by 0x483F5BF: __pthread_start(void*) (in /system/lib/libc.so)
==6406==  Address 0x4c0f19c is 0 bytes inside data symbol
"_ZNSs4_Rep20_S_empty_rep_storageE"

2015-02-27 4:03 GMT+08:00 Lenahan, Charlie <charlie.lenahan at intel.com>:
> You should be able to run
>         adb shell dumpsys dropbox SYSTEM_TOMBSTONE ?print  > foo.crash
>
> that will give you the crash dump. You can then get a stack trace
>         ndk-stack -dump foo.crash -sym
> /path/to/your/simpleclient/obj/local/target_abi/
>
>
>
>
> Charlie Lenahan
>    | Software Engineer  | Intel Corporation | 322 West Main Street  |
> Louisville, KY 40202  | W - 502.963.0917  | 8-963.0917
> charlie.lenahan at intel.com  | CDG ? WINS ? WSS EAST   |
> http://www.linkedin.com/in/charlielenahan
>
>
>
> On 2/26/15, 6:10 AM, "Han-Lin Li" <astereae at gmail.com> wrote:
>
>>I run simpleclient and simpleserver by adb and get a segmentation fault
>>
>>
>>
>>Here is the debug message
>>
>>
>>
>>Getting Light Representation...
>>
>>v:1 t:1 tkl:8 c:1 id:65355 o: [ 7:'\xB5\x95', 11:'a', 11:'light' ]
>>
>>Jan 16 00:49:27 DEBG bytes_written 23
>>
>>Jan 16 00:49:27 DEBG coap_read: discarded invalid frame
>>
>>Jan 16 00:49:27 DEBG coap_read: discarded invalid frame
>>
>>Jan 16 00:49:27 DEBG coap_read: discarded invalid frame
>>
>>Jan 16 00:49:27 DEBG coap_read: discarded invalid frame
>>
>>Jan 16 00:49:27 DEBG set data to 0xf6d5b0a6 (pdu ends at 0xf6d5b0f9)
>>
>>Jan 16 00:49:27 DEBG ** received 105 bytes from :
>>
>>v:1 t:1 tkl:8 c:64 id:65355 o: [ 11:'\x01', 12:'\x32',
>>14:'\xFF\xFF\x02\x00' ]
>>
>>:{"oc":[{"href":"/a/light","rep":{"name":"John's
>>light","power":0,"state":false
>>
>>}]}\x00
>>
>>Jan 16 00:49:27 DEBG coap_read: discarded invalid frame
>>
>>GET request was successful
>>
>>Resource URI: /a/light
>>
>>        state: false
>>
>>        power: 0
>>
>>        name: John's light
>>
>>Putting light representation...
>>
>>v:1 t:1 tkl:8 c:3 id:65356 o: [ 7:'\xB5\x95', 11:'a', 11:'light' ]
>>d:{"oc":[{"r
>>
>>p":{"power":15,"state":true}}]}\x00
>>
>>Jan 16 00:49:27 DEBG bytes_written 67
>>
>>Segmentation fault (core dumped)
>>
>>
>>
>>It should crash in resource->put(rep, QueryParamsMap(), &onPut);
>>Any body knows why?
>>_______________________________________________
>>iotivity-dev mailing list
>>iotivity-dev at lists.iotivity.org
>>https://lists.iotivity.org/mailman/listinfo/iotivity-dev

Reply via email to