Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: make esp32_exception_decoder more generic #1357

Merged
merged 2 commits into from
Apr 18, 2024

Conversation

Tasssadar
Copy link
Contributor

  • The official idf.py monitor just tries to decode any 4 byte hex number it finds.
    This variant safely decodes backtraces as well as heap tracing dumps.

Backtrace with new version:

Backtrace: 0x400d3e44:0x3ffb2190 0x4008ba5c:0x3ffb2200 0x4008f085:0x3ffb2230
  #0  0x400d3e44 in app_main at src/main.cpp:71 (discriminator 2)
  #1  0x4008ba5c in main_task at /home/tassadar/.platformio/packages/framework-espidf/components/freertos/app_startup.c:208 (discriminator 13)
  #2  0x4008f085 in vPortTaskWrapper at /home/tassadar/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:134

Heap tracing dump:

====== Heap Trace: 1 records (100 capacity) ======
   168 bytes (@ 0x3ffd0dd0, Internal) allocated CPU 0 ccount 0x7d7ee5e8 caller 0x4013bfc4:0x4013bfd8:0x400d3e1d:0x4008ba5f:0x4008f088:
     #0  0x4013bfc4 in operator new(unsigned int) at /builds/idf/crosstool-NG/.build/xtensa-esp32-elf/src/gcc/libstdc++-v3/libsupc++/new_op.cc:50
     #1  0x4013bfd8 in operator new[](unsigned int) at /builds/idf/crosstool-NG/.build/xtensa-esp32-elf/src/gcc/libstdc++-v3/libsupc++/new_opv.cc:33
     #2  0x400d3e1d in app_main at src/main.cpp:64 (discriminator 2)
     #3  0x4008ba5f in main_task at /home/tassadar/.platformio/packages/framework-espidf/components/freertos/app_startup.c:209 (discriminator 13)
     #4  0x4008f088 in vPortTaskWrapper at /home/tassadar/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:136

freed by 0x4014e7f8:0x4013bf68:0x400d3e29:0x4008ba5f:0x4008f088:0x00000000:0x00000000:0x00000000:0x00000000:0x00000000
  #0  0x4014e7f8 in operator delete(void*) at /builds/idf/crosstool-NG/.build/xtensa-esp32-elf/src/gcc/libstdc++-v3/libsupc++/del_op.cc:50
  #1  0x4013bf68 in operator delete[](void*) at /builds/idf/crosstool-NG/.build/xtensa-esp32-elf/src/gcc/libstdc++-v3/libsupc++/del_opv.cc:36
  #2  0x400d3e29 in app_main at src/main.cpp:66
  #3  0x4008ba5f in main_task at /home/tassadar/.platformio/packages/framework-espidf/components/freertos/app_startup.c:209 (discriminator 13)
  #4  0x4008f088 in vPortTaskWrapper at /home/tassadar/.platformio/packages/framework-espidf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:136

====== Heap Trace Summary ======
Mode: Heap Trace All
0 bytes alive in trace (0/1 allocations)
records: 1 (100 capacity, 83 high water mark)
total allocations: 1
total frees: 1
================================

* The official idf.py monitor just tries to decode any 4 byte hex number.
  This variant safely decodes backtraces as well as heap tracing dumps.
@@ -56,7 +57,8 @@ def __call__(self):
def setup_paths(self):
self.project_dir = os.path.abspath(self.project_dir)
try:
data = load_build_metadata(self.project_dir, self.environment)
data = load_build_metadata(self.project_dir, self.environment, cache=True)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes the startup 10s faster in my env.

@valeros valeros merged commit 77f8fc2 into platformio:develop Apr 18, 2024
57 checks passed
@valeros
Copy link
Member

valeros commented Apr 18, 2024

Many thanks for the PR, merged!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants