diff -Nru libopencsd-0.12.1/debian/changelog libopencsd-0.12.2/debian/changelog --- libopencsd-0.12.1/debian/changelog 2019-10-29 21:00:33.000000000 +0000 +++ libopencsd-0.12.2/debian/changelog 2020-02-10 22:37:53.000000000 +0000 @@ -1,3 +1,9 @@ +libopencsd (0.12.2-1) unstable; urgency=medium + + * New upstream release + + -- Wookey Mon, 10 Feb 2020 22:37:53 +0000 + libopencsd (0.12.1-1) unstable; urgency=medium * New upstream release diff -Nru libopencsd-0.12.1/debian/compat libopencsd-0.12.2/debian/compat --- libopencsd-0.12.1/debian/compat 2018-10-26 20:56:06.000000000 +0000 +++ libopencsd-0.12.2/debian/compat 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -10 diff -Nru libopencsd-0.12.1/debian/control libopencsd-0.12.2/debian/control --- libopencsd-0.12.1/debian/control 2019-10-29 21:00:33.000000000 +0000 +++ libopencsd-0.12.2/debian/control 2020-02-10 22:37:53.000000000 +0000 @@ -1,8 +1,8 @@ Source: libopencsd Priority: optional Maintainer: Wookey -Build-Depends: debhelper (>=10), doxygen, graphviz -Standards-Version: 4.2.1 +Build-Depends: debhelper-compat (= 12), doxygen, graphviz +Standards-Version: 4.5.0 Section: libs Homepage: https://github.com/Linaro/OpenCSD Rules-Requires-Root: no diff -Nru libopencsd-0.12.1/debian/libopencsd-doc.doc-base libopencsd-0.12.2/debian/libopencsd-doc.doc-base --- libopencsd-0.12.1/debian/libopencsd-doc.doc-base 2018-02-16 22:17:43.000000000 +0000 +++ libopencsd-0.12.2/debian/libopencsd-doc.doc-base 2020-02-10 22:37:53.000000000 +0000 @@ -4,5 +4,5 @@ Section: System/Monitoring Format: HTML -Index: /usr/share/doc/libopencsd-doc/html/index.html -Files: /usr/share/doc/libopencsd-doc/html/*.html +Index: /usr/share/doc/libopencsd-dev/html/index.html +Files: /usr/share/doc/libopencsd-dev/html/*.html diff -Nru libopencsd-0.12.1/debian/libopencsd.pc.in libopencsd-0.12.2/debian/libopencsd.pc.in --- libopencsd-0.12.1/debian/libopencsd.pc.in 2018-03-17 03:17:30.000000000 +0000 +++ libopencsd-0.12.2/debian/libopencsd.pc.in 2020-02-10 22:37:53.000000000 +0000 @@ -8,5 +8,5 @@ Version: 0.0 Requires: -Libs: -L${libdir} -llibopencsd +Libs: -L${libdir} -lopencsd Cflags: -I${includedir} diff -Nru libopencsd-0.12.1/debian/rules libopencsd-0.12.2/debian/rules --- libopencsd-0.12.1/debian/rules 2018-10-26 20:56:06.000000000 +0000 +++ libopencsd-0.12.2/debian/rules 2020-02-10 22:37:53.000000000 +0000 @@ -41,6 +41,7 @@ endif override_dh_installdocs: + # kick compat 11+ to put docs where we told it dh_installdocs -X.md5 override_dh_compress: diff -Nru libopencsd-0.12.1/decoder/build/linux/makefile.dev libopencsd-0.12.2/decoder/build/linux/makefile.dev --- libopencsd-0.12.1/decoder/build/linux/makefile.dev 2019-10-29 12:09:43.000000000 +0000 +++ libopencsd-0.12.2/decoder/build/linux/makefile.dev 2020-01-09 15:13:03.000000000 +0000 @@ -56,7 +56,12 @@ CFLAGS += $(MFLAG) LDFLAGS += $(MFLAG) +ifdef GCCDIR +GCCVER:= $(shell $(CROSS_COMPILE)gcc -dumpversion | cut -c 1-3) +PLAT_DIR=builddir/linux$(BIT_VARIANT)/GCC_$(GCCVER) +else PLAT_DIR=linux$(BIT_VARIANT)/$(BUILD_VARIANT) +endif # include the main makefile include makefile diff -Nru libopencsd-0.12.1/decoder/include/opencsd/etmv4/trc_pkt_elem_etmv4i.h libopencsd-0.12.2/decoder/include/opencsd/etmv4/trc_pkt_elem_etmv4i.h --- libopencsd-0.12.1/decoder/include/opencsd/etmv4/trc_pkt_elem_etmv4i.h 2019-10-29 12:09:43.000000000 +0000 +++ libopencsd-0.12.2/decoder/include/opencsd/etmv4/trc_pkt_elem_etmv4i.h 2020-01-09 15:13:03.000000000 +0000 @@ -57,14 +57,7 @@ public: Etmv4PktAddrStack() { - for (int i = 0; i < 3; i++) - { - m_v_addr[i].pkt_bits = 0; - m_v_addr[i].size = VA_64BIT; - m_v_addr[i].val = 0; - m_v_addr[i].valid_bits = 0; - m_v_addr_ISA[i] = 0; - } + reset_stack(); } ~Etmv4PktAddrStack() {}; @@ -87,6 +80,20 @@ } } + // explicit reset for TInfo. + void reset_stack() + { + for (int i = 0; i < 3; i++) + { + m_v_addr[i].pkt_bits = 0; + m_v_addr[i].size = OCSD_MAX_VA_BITSIZE == 64 ? VA_64BIT : VA_32BIT; + m_v_addr[i].val = 0; + m_v_addr[i].valid_bits = OCSD_MAX_VA_BITSIZE; + m_v_addr_ISA[i] = 0; + } + + } + private: ocsd_pkt_vaddr m_v_addr[3]; //!< most recently broadcast address packet uint8_t m_v_addr_ISA[3]; @@ -227,6 +234,10 @@ // set these as defaults - if they don't appear in TINFO this is the state. setTraceInfo(0); setTraceInfoSpec(0); + + // explicitly reset the stack & zero the current address. + m_addr_stack.reset_stack(); + m_addr_stack.get_idx(0, v_addr, v_addr_ISA); } inline void EtmV4ITrcPacket::setTraceInfo(const uint32_t infoVal) @@ -450,17 +461,17 @@ if (pkt_valid.bits.context_valid && context.SF) { v_addr.size = VA_64BIT; - if (v_addr.valid_bits < 32) // may be updating a 64 bit address so only set 32 if currently less. - v_addr.valid_bits = 32; v_addr.val = (v_addr.val & ~mask) | (addr & mask); } else { v_addr.val = addr; v_addr.size = VA_32BIT; - v_addr.valid_bits = 32; } - + + if (v_addr.valid_bits < 32) // may be updating a 64 bit address so only set 32 if currently less. + v_addr.valid_bits = 32; + v_addr_ISA = IS; push_vaddr(); } diff -Nru libopencsd-0.12.1/decoder/include/opencsd/ocsd_if_version.h libopencsd-0.12.2/decoder/include/opencsd/ocsd_if_version.h --- libopencsd-0.12.1/decoder/include/opencsd/ocsd_if_version.h 2019-10-29 12:09:43.000000000 +0000 +++ libopencsd-0.12.2/decoder/include/opencsd/ocsd_if_version.h 2020-01-09 15:13:03.000000000 +0000 @@ -44,7 +44,7 @@ @{*/ #define OCSD_VER_MAJOR 0x0 /**< Library Major Version */ #define OCSD_VER_MINOR 0xC /**< Library Minor Version */ -#define OCSD_VER_PATCH 0x1 /**< Library Patch Version */ +#define OCSD_VER_PATCH 0x2 /**< Library Patch Version */ /** Library version number - MMMMnnpp format. MMMM = major version, @@ -53,7 +53,7 @@ */ #define OCSD_VER_NUM ((OCSD_VER_MAJOR << 16) | (OCSD_VER_MINOR << 8) | OCSD_VER_PATCH) -#define OCSD_VER_STRING "0.12.1" /**< Library Version string */ +#define OCSD_VER_STRING "0.12.2" /**< Library Version string */ #define OCSD_LIB_NAME "OpenCSD Library" /**< Library name string */ #define OCSD_LIB_SHORT_NAME "OCSD" /**< Library Short name string */ /** @}*/ diff -Nru libopencsd-0.12.1/decoder/source/etmv4/trc_pkt_elem_etmv4i.cpp libopencsd-0.12.2/decoder/source/etmv4/trc_pkt_elem_etmv4i.cpp --- libopencsd-0.12.1/decoder/source/etmv4/trc_pkt_elem_etmv4i.cpp 2019-10-29 12:09:43.000000000 +0000 +++ libopencsd-0.12.2/decoder/source/etmv4/trc_pkt_elem_etmv4i.cpp 2020-01-09 15:13:03.000000000 +0000 @@ -161,6 +161,7 @@ { std::ostringstream oss; oss << "; INFO=" << std::hex << "0x" << trace_info.val; + oss << " { CC." << std::dec << trace_info.bits.cc_enabled << " }"; if (trace_info.bits.cc_enabled) oss << "; CC_THRESHOLD=" << std::hex << "0x" << cc_threshold; str += oss.str(); diff -Nru libopencsd-0.12.1/decoder/source/ocsd_dcd_tree.cpp libopencsd-0.12.2/decoder/source/ocsd_dcd_tree.cpp --- libopencsd-0.12.1/decoder/source/ocsd_dcd_tree.cpp 2019-10-29 12:09:43.000000000 +0000 +++ libopencsd-0.12.2/decoder/source/ocsd_dcd_tree.cpp 2020-01-09 15:13:03.000000000 +0000 @@ -111,6 +111,7 @@ destroyDecodeElement(i); } PktPrinterFact::destroyAllPrinters(m_printer_list); + delete m_frame_deformatter_root; } diff -Nru libopencsd-0.12.1/decoder/source/trc_component.cpp libopencsd-0.12.2/decoder/source/trc_component.cpp --- libopencsd-0.12.1/decoder/source/trc_component.cpp 2019-10-29 12:09:43.000000000 +0000 +++ libopencsd-0.12.2/decoder/source/trc_component.cpp 2020-01-09 15:13:03.000000000 +0000 @@ -41,7 +41,13 @@ { m_pComp = 0; }; - virtual ~ errLogAttachMonitor() {}; + virtual ~ errLogAttachMonitor() + { + if (m_pComp) + m_pComp->getErrorLogAttachPt()->set_notifier(0); + m_pComp = 0; + + }; virtual void attachNotify(const int num_attached) { if(m_pComp) @@ -73,6 +79,8 @@ TraceComponent::~TraceComponent() { + if (m_pErrAttachMon) + delete m_pErrAttachMon; } void TraceComponent::Init(const std::string &name) diff -Nru libopencsd-0.12.1/decoder/source/trc_gen_elem.cpp libopencsd-0.12.2/decoder/source/trc_gen_elem.cpp --- libopencsd-0.12.1/decoder/source/trc_gen_elem.cpp 2019-10-29 12:09:43.000000000 +0000 +++ libopencsd-0.12.2/decoder/source/trc_gen_elem.cpp 2020-01-09 15:13:03.000000000 +0000 @@ -62,7 +62,8 @@ "BR ", "iBR ", "ISB ", - "DSB.DMB" + "DSB.DMB", + "WFI.WFE" }; #define T_SIZE (sizeof(instr_type) / sizeof(const char *)) diff -Nru libopencsd-0.12.1/decoder/tests/run_pkt_decode_tests.bash libopencsd-0.12.2/decoder/tests/run_pkt_decode_tests.bash --- libopencsd-0.12.1/decoder/tests/run_pkt_decode_tests.bash 2019-10-29 12:09:43.000000000 +0000 +++ libopencsd-0.12.2/decoder/tests/run_pkt_decode_tests.bash 2020-01-09 15:13:03.000000000 +0000 @@ -72,6 +72,10 @@ echo "Done : Return $?" done +# === test a packet only example === +echo "Testing init-short-addr..." +${BIN_DIR}/trc_pkt_lister -ss_dir "${SNAPSHOT_DIR}/init-short-addr" -pkt_mon -logfilename "${OUT_DIR}/init-short-addr.ppl" + # === test the TPIU deformatter === echo "Testing a55-test-tpiu..." ${BIN_DIR}/trc_pkt_lister -ss_dir "${SNAPSHOT_DIR}/a55-test-tpiu" -dstream_format -o_raw_packed -o_raw_unpacked -logfilename "${OUT_DIR}/a55-test-tpiu.ppl" @@ -79,5 +83,7 @@ # === test the C-API lib === echo "Testing C-API library" -${BIN_DIR}/c_api_pkt_print_test -ss_path ${SNAPSHOT_DIR} -decode +${BIN_DIR}/c_api_pkt_print_test -ss_path ${SNAPSHOT_DIR} -decode > /dev/null +echo "Done : Return $?" +echo "moving result file." mv ./c_api_test.log ./${OUT_DIR}/c_api_test.ppl diff -Nru libopencsd-0.12.1/decoder/tests/snapshots/init-short-addr/device1.ini libopencsd-0.12.2/decoder/tests/snapshots/init-short-addr/device1.ini --- libopencsd-0.12.1/decoder/tests/snapshots/init-short-addr/device1.ini 1970-01-01 00:00:00.000000000 +0000 +++ libopencsd-0.12.2/decoder/tests/snapshots/init-short-addr/device1.ini 2020-01-09 15:13:03.000000000 +0000 @@ -0,0 +1,4 @@ +[device] +name=Cortex-A57_0 +class=core +type=Cortex-A57 diff -Nru libopencsd-0.12.1/decoder/tests/snapshots/init-short-addr/device2.ini libopencsd-0.12.2/decoder/tests/snapshots/init-short-addr/device2.ini --- libopencsd-0.12.1/decoder/tests/snapshots/init-short-addr/device2.ini 1970-01-01 00:00:00.000000000 +0000 +++ libopencsd-0.12.2/decoder/tests/snapshots/init-short-addr/device2.ini 2020-01-09 15:13:03.000000000 +0000 @@ -0,0 +1,17 @@ +[device] +name=CSETM_0 +class=trace_source +type=ETM4.4 + +[regs] +TRCCONFIGR(id:0x4)=0x00000001 +TRCTRACEIDR(id:0x10)=0x00000000 +TRCIDR8(id:0x60)=0x00000000 +TRCIDR9(id:0x61)=0x00000000 +TRCIDR10(id:0x62)=0x00000000 +TRCIDR11(id:0x63)=0x00000000 +TRCIDR12(id:0x64)=0x00000000 +TRCIDR13(id:0x65)=0x00000000 +TRCIDR0(id:0x78)=0x08000CA1 +TRCIDR1(id:0x79)=0x4200F440 +TRCIDR2(id:0x7A)=0x20001088 diff -Nru libopencsd-0.12.1/decoder/tests/snapshots/init-short-addr/snapshot.ini libopencsd-0.12.2/decoder/tests/snapshots/init-short-addr/snapshot.ini --- libopencsd-0.12.1/decoder/tests/snapshots/init-short-addr/snapshot.ini 1970-01-01 00:00:00.000000000 +0000 +++ libopencsd-0.12.2/decoder/tests/snapshots/init-short-addr/snapshot.ini 2020-01-09 15:13:03.000000000 +0000 @@ -0,0 +1,12 @@ +; DS-5 snapshot + +[snapshot] +version=1.0 + +[device_list] +device1=device1.ini +device2=device2.ini + +[trace] +metadata=trace.ini + Binary files /tmp/tmpD9Nrgy/pjNXO3aiPz/libopencsd-0.12.1/decoder/tests/snapshots/init-short-addr/tracebuffer.bin and /tmp/tmpD9Nrgy/nJEUYKDZ9S/libopencsd-0.12.2/decoder/tests/snapshots/init-short-addr/tracebuffer.bin differ diff -Nru libopencsd-0.12.1/decoder/tests/snapshots/init-short-addr/trace.ini libopencsd-0.12.2/decoder/tests/snapshots/init-short-addr/trace.ini --- libopencsd-0.12.1/decoder/tests/snapshots/init-short-addr/trace.ini 1970-01-01 00:00:00.000000000 +0000 +++ libopencsd-0.12.2/decoder/tests/snapshots/init-short-addr/trace.ini 2020-01-09 15:13:03.000000000 +0000 @@ -0,0 +1,16 @@ +; DS-5 trace metadata + +[trace_buffers] +buffers=buffer0 + +[buffer0] +name=CSTMC_TRACE_FIFO +file=tracebuffer.bin +format=source_data + +[core_trace_sources] +Cortex-A57_0=CSETM_0 + +[source_buffers] +CSETM_0=CSTMC_TRACE_FIFO + diff -Nru libopencsd-0.12.1/README.md libopencsd-0.12.2/README.md --- libopencsd-0.12.1/README.md 2019-10-29 12:09:43.000000000 +0000 +++ libopencsd-0.12.2/README.md 2020-01-09 15:13:03.000000000 +0000 @@ -27,7 +27,7 @@ CoreSight Trace Component Support. ---------------------------------- -_Current Version 0.12.1_ +_Current Version 0.12.2_ ### Current support: @@ -170,6 +170,10 @@ __Bugfix__: Instruction decode - v8.3 B[L]A{A|B}[Z] instructions mis-identified. __Bugfix__: Transition from A64 to A32 can be mis-decoded if the trace implementation represents the transition as an individual address packet followed by a context packet. +- _Version 0.12.2_: __Bugfix__: Clean up memory leaks. + __Bugfix__: ETMv4: Ensure addressing history zeroed after TINFO. + __Update__: Allow GCC version to be included in build output path. + __Bugfix__: Packet printing update when WFI/WFE is P0 element. Licence Information