Skip to content

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.
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
@valeros
Copy link
Member

valeros commented Apr 18, 2024

Many thanks for the PR, merged!

jonathandreyer pushed a commit to jonathandreyer/platform-espressif32 that referenced this pull request Nov 14, 2024
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