mapuche 1.0.2__tar.gz → 2.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. mapuche-2.0.0/PKG-INFO +49 -0
  2. mapuche-2.0.0/README.md +34 -0
  3. mapuche-2.0.0/mapuche/asm.py +1129 -0
  4. mapuche-2.0.0/mapuche/demangle.py +42 -0
  5. mapuche-2.0.0/mapuche/mapuche.py +977 -0
  6. {mapuche-1.0.2 → mapuche-2.0.0}/mapuche/models.py +20 -3
  7. mapuche-2.0.0/mapuche/parser.py +195 -0
  8. mapuche-2.0.0/mapuche/styles.py +93 -0
  9. mapuche-2.0.0/mapuche.egg-info/PKG-INFO +49 -0
  10. {mapuche-1.0.2 → mapuche-2.0.0}/mapuche.egg-info/SOURCES.txt +12 -1
  11. mapuche-2.0.0/mapuche.egg-info/requires.txt +2 -0
  12. {mapuche-1.0.2 → mapuche-2.0.0}/pyproject.toml +4 -3
  13. mapuche-2.0.0/requirements.txt +2 -0
  14. mapuche-2.0.0/tests/test_asm_diff.py +180 -0
  15. mapuche-2.0.0/tests/test_asm_screen.py +122 -0
  16. mapuche-2.0.0/tests/test_cli.py +44 -0
  17. mapuche-2.0.0/tests/test_diff_highlight.py +218 -0
  18. mapuche-2.0.0/tests/test_header_checkboxes.py +124 -0
  19. mapuche-2.0.0/tests/test_hex_diff.py +122 -0
  20. mapuche-2.0.0/tests/test_map_diff.py +72 -0
  21. mapuche-2.0.0/tests/test_objdump_path.py +149 -0
  22. mapuche-2.0.0/tests/test_regex_filter.py +233 -0
  23. mapuche-1.0.2/PKG-INFO +0 -63
  24. mapuche-1.0.2/README.md +0 -50
  25. mapuche-1.0.2/mapuche/mapuche.py +0 -208
  26. mapuche-1.0.2/mapuche/parser.py +0 -132
  27. mapuche-1.0.2/mapuche/styles.py +0 -43
  28. mapuche-1.0.2/mapuche.egg-info/PKG-INFO +0 -63
  29. mapuche-1.0.2/mapuche.egg-info/requires.txt +0 -1
  30. mapuche-1.0.2/requirements.txt +0 -1
  31. {mapuche-1.0.2 → mapuche-2.0.0}/.github/workflows/python-publish.yml +0 -0
  32. {mapuche-1.0.2 → mapuche-2.0.0}/.gitignore +0 -0
  33. {mapuche-1.0.2 → mapuche-2.0.0}/LICENSE +0 -0
  34. {mapuche-1.0.2 → mapuche-2.0.0}/imgs/mapuche_diff_demo.png +0 -0
  35. {mapuche-1.0.2 → mapuche-2.0.0}/mapuche/__init__.py +0 -0
  36. {mapuche-1.0.2 → mapuche-2.0.0}/mapuche/__main__.py +0 -0
  37. {mapuche-1.0.2 → mapuche-2.0.0}/mapuche/tree_table.py +0 -0
  38. {mapuche-1.0.2 → mapuche-2.0.0}/mapuche.egg-info/dependency_links.txt +0 -0
  39. {mapuche-1.0.2 → mapuche-2.0.0}/mapuche.egg-info/entry_points.txt +0 -0
  40. {mapuche-1.0.2 → mapuche-2.0.0}/mapuche.egg-info/top_level.txt +0 -0
  41. {mapuche-1.0.2 → mapuche-2.0.0}/setup.cfg +0 -0
  42. {mapuche-1.0.2 → mapuche-2.0.0}/test/build_new/test_cxx_exception.elf +0 -0
  43. {mapuche-1.0.2 → mapuche-2.0.0}/test/build_new/test_cxx_exception.map +0 -0
  44. {mapuche-1.0.2 → mapuche-2.0.0}/test/build_old/test_cxx_exception.elf +0 -0
  45. {mapuche-1.0.2 → mapuche-2.0.0}/test/build_old/test_cxx_exception.map +0 -0
mapuche-2.0.0/PKG-INFO ADDED
@@ -0,0 +1,49 @@
1
+ Metadata-Version: 2.4
2
+ Name: mapuche
3
+ Version: 2.0.0
4
+ Summary: Linker's map file browser
5
+ Author-email: Alexey Lapshin <alexeyfonlapshin@gmail.com>
6
+ License: MIT
7
+ Keywords: map,elf,linker
8
+ Classifier: Programming Language :: Python :: 3
9
+ Requires-Python: >=3.10
10
+ Description-Content-Type: text/markdown
11
+ License-File: LICENSE
12
+ Requires-Dist: textual~=8.2
13
+ Requires-Dist: cxxfilt~=0.3
14
+ Dynamic: license-file
15
+
16
+ # mapuche
17
+
18
+ Mapuche is a linker's map file browser
19
+
20
+ If you are reading this, please don't forget to give this project a star on GitHub!
21
+
22
+ ## Install
23
+
24
+ ```
25
+ pip install mapuche
26
+ ```
27
+
28
+ ## Usage
29
+
30
+ > [!IMPORTANT]
31
+ > For now mapuche supports only map files of ELFs generated with `-ffunction-sections` and `-fdata-sections` compile options.
32
+
33
+ ```
34
+ mapuche <elf.map> [elf_for_diff.map]
35
+ mapuche --help
36
+ mapuche --version
37
+ ```
38
+
39
+ - Use keyboard arrows and the space bar, or a mouse, to navigate the map tree.
40
+ - Click table header columns to sort the table.
41
+ - Show/hide debug sections using checkbox at the top.
42
+ - Demangle C++ names using checkbox at the top (on by default).
43
+ - Press `/` to filter rows with a regular expression. A row stays if its name matches, if a parent matches, or if a child does (parents open to show the match). Input sections also match their object path. Demangled and mangled names both match. An invalid pattern keeps the last valid one until it compiles. Enter or Escape returns to the table. Hidden debug sections, and fully reduced rows while "Hide reduced" is on, stay hidden.
44
+ - In a map diff, smaller sections are green and larger sections are red. Tick "Hide reduced" at the top to hide reduced sections. A shrunk section stays on screen when a child inside it grew.
45
+ - Press `a` to open an assembler diff for the selected row. This is available when the ELF named by `OUTPUT()` in the map file is on disk. `objdump` is taken from the toolchain `bin` directory recorded on the `libc.a` path; if that binary is missing, mapuche asks for a path. The viewer has checkboxes to show instruction addresses and to interleave source code (`objdump -S`). A data, rodata, or other non-code section opens a hex diff of the ELF bytes instead.
46
+
47
+ ## Screenshot
48
+
49
+ ![mapuche diff maps](https://raw.githubusercontent.com/Lapshin/mapuche/master/imgs/mapuche_diff_demo.png)
@@ -0,0 +1,34 @@
1
+ # mapuche
2
+
3
+ Mapuche is a linker's map file browser
4
+
5
+ If you are reading this, please don't forget to give this project a star on GitHub!
6
+
7
+ ## Install
8
+
9
+ ```
10
+ pip install mapuche
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ > [!IMPORTANT]
16
+ > For now mapuche supports only map files of ELFs generated with `-ffunction-sections` and `-fdata-sections` compile options.
17
+
18
+ ```
19
+ mapuche <elf.map> [elf_for_diff.map]
20
+ mapuche --help
21
+ mapuche --version
22
+ ```
23
+
24
+ - Use keyboard arrows and the space bar, or a mouse, to navigate the map tree.
25
+ - Click table header columns to sort the table.
26
+ - Show/hide debug sections using checkbox at the top.
27
+ - Demangle C++ names using checkbox at the top (on by default).
28
+ - Press `/` to filter rows with a regular expression. A row stays if its name matches, if a parent matches, or if a child does (parents open to show the match). Input sections also match their object path. Demangled and mangled names both match. An invalid pattern keeps the last valid one until it compiles. Enter or Escape returns to the table. Hidden debug sections, and fully reduced rows while "Hide reduced" is on, stay hidden.
29
+ - In a map diff, smaller sections are green and larger sections are red. Tick "Hide reduced" at the top to hide reduced sections. A shrunk section stays on screen when a child inside it grew.
30
+ - Press `a` to open an assembler diff for the selected row. This is available when the ELF named by `OUTPUT()` in the map file is on disk. `objdump` is taken from the toolchain `bin` directory recorded on the `libc.a` path; if that binary is missing, mapuche asks for a path. The viewer has checkboxes to show instruction addresses and to interleave source code (`objdump -S`). A data, rodata, or other non-code section opens a hex diff of the ELF bytes instead.
31
+
32
+ ## Screenshot
33
+
34
+ ![mapuche diff maps](https://raw.githubusercontent.com/Lapshin/mapuche/master/imgs/mapuche_diff_demo.png)