diff --git a/tools/ci/check_copyright_ignore.txt b/tools/ci/check_copyright_ignore.txt index 581e744f53..a20c8154c5 100644 --- a/tools/ci/check_copyright_ignore.txt +++ b/tools/ci/check_copyright_ignore.txt @@ -2686,7 +2686,6 @@ tools/gdb_panic_server.py tools/gen_esp_err_to_name.py tools/idf_monitor_base/chip_specific_config.py tools/idf_monitor_base/console_reader.py -tools/idf_monitor_base/constants.py tools/idf_monitor_base/coredump.py tools/idf_monitor_base/exceptions.py tools/idf_monitor_base/gdbhelper.py diff --git a/tools/idf_monitor.py b/tools/idf_monitor.py index eac447e2d3..42e2e04f0b 100755 --- a/tools/idf_monitor.py +++ b/tools/idf_monitor.py @@ -216,10 +216,14 @@ class Monitor: # generates an event which will result in the finishing of # the last line. This is fix for handling lines sent # without EOL. + # finalizing the line when coredump is in progress causes decoding issues + # the espcoredump loader uses empty line as a sign for end-of-coredump + # line is finalized only for non coredump data elif event_tag == TAG_SERIAL_FLUSH: self.serial_handler.handle_serial_input(data, self.console_parser, self.coredump, self.gdb_helper, self._line_matcher, - self.check_gdb_stub_and_run, finalize_line=True) + self.check_gdb_stub_and_run, + finalize_line=not self.coredump.in_progress) else: raise RuntimeError('Bad event data %r' % ((event_tag, data),)) diff --git a/tools/idf_monitor_base/constants.py b/tools/idf_monitor_base/constants.py index be68b02930..a3783882d9 100644 --- a/tools/idf_monitor_base/constants.py +++ b/tools/idf_monitor_base/constants.py @@ -1,16 +1,5 @@ -# Copyright 2015-2021 Espressif Systems (Shanghai) CO LTD -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD +# SPDX-License-Identifier: Apache-2.0 import os import re diff --git a/tools/idf_monitor_base/coredump.py b/tools/idf_monitor_base/coredump.py index 555194f325..c8ab6b4d73 100644 --- a/tools/idf_monitor_base/coredump.py +++ b/tools/idf_monitor_base/coredump.py @@ -38,6 +38,10 @@ class CoreDump: self.websocket_client = websocket_client self.elf_file = elf_file + @property + def in_progress(self) -> bool: + return bool(self._coredump_buffer) + def _process_coredump(self): # type: () -> None if self._decode_coredumps != COREDUMP_DECODE_INFO: raise NotImplementedError('process_coredump: %s not implemented' % self._decode_coredumps)