simpleperf: reduce and recover from etm decoding errors.

ETM decoding fails when processing some invalid data like invalid packet
headers. Invalid data may be caused by truncated etm data or other
reasons.

Invalid data can be skipped by resetting decoders, which will force
decoders to look for sync points (I_ASYNC packets) in the data stream.

So to fix the problem:
1. Reset decoders when processing a new data block, which avoid invalid
data at the beginning of a block.
2. When having a decoding error, recover from it by resetting decoders.

Bug: none
Test: run simpleperf_unit_test.
Test: record and decode etm data continuously on device.
Change-Id: If44edc04428f22e605afe994aabeb6ff350cffb1
1 file changed