I0680e48d8ff8847c8712e1a54efe32d320e7c84d changes the scope of the symbol definition.
So nxgdb needs to synchronize this modification.
Signed-off-by: guoshengyuan1 <guoshengyuan1@xiaomi.com>
Commit 6ed4ea63d renamed the function `mm_initialize` to
`mm_initialize_heap`.
This caused the pynuttx modules (e.g. `mm dump`) to be missing.
Signed-off-by: Lars Kruse <devel@sumpfralle.de>
Move pthread mutex operations from kernel-space syscall
interface to user-space implementations
to reduce syscall overhead. Relocate mutex holder list
tracking from task control block (tcb) to
thread local storage (tls) to improve memory layout and
cache efficiency. Add helper macros for
conditional mutex implementations and update syscall
interface accordingly.
Signed-off-by: hujun5 <hujun5@xiaomi.com>
Fix incorrect direct access to semcount field by using val intermediate
field in memory pool and network stats debugging scripts. This corrects
the data structure navigation to match actual kernel semaphore layout.
Signed-off-by: hujun5 <hujun5@xiaomi.com>
The code clearly expects the output of the 'maint print
remote-registers' to be indented by white-space character but at least
in my case it is not. This changes the match to consume any number of
white-space characters before it encounteres the register name.
Signed-off-by: Karel Kočí <cynerd@email.cz>
Fix style issue reported after upgrading flake8 to 7.2.0
1 file would be left unchanged.
/home/nuttx/tools/pynuttx/nxgdb/utils.py:237:5: F824 is unused: name is never assigned in scope
global g_type_cache
^
/home/nuttx/tools/pynuttx/nxgdb/utils.py:294:5: F824 is unused: name is never assigned in scope
global long_type
^
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
Registering NuttX GDB commands from /home/mi/code/stable_oh2/nuttx/tools/pynuttx/nxgdb
set pagination off
set python print-stack full
"handle SIGUSR1 "nostop" "pass" "noprint"
Load macro: /tmp/6024dea73606400ae39a7b7da42cecbf.json
Please pip install debugpyIgnore module: elf, error: 'NoneType' object has no attribute 'code'
Traceback (most recent call last):
File "/home/mi/code/stable_oh2/nuttx/tools/pynuttx/nxgdb/_init_.py", line 54, in init_gdb_commands
module = importlib.import_module(f"{_package_}.{m}")
File "/usr/lib/python3.10/importlib/_init_.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/home/mi/code/stable_oh2/nuttx/tools/pynuttx/nxgdb/elf.py", line 35, in <module>
CONFIG_ARCH_USE_SEPARATED_SECTION = has_field("struct module_s", "sectalloc")
File "/home/mi/code/stable_oh2/nuttx/tools/pynuttx/nxgdb/utils.py", line 488, in has_field
return get_type_field(obj, field) is not None
File "/home/mi/code/stable_oh2/nuttx/tools/pynuttx/nxgdb/utils.py", line 267, in get_type_field
while t.code in (gdb.TYPE_CODE_PTR, gdb.TYPE_CODE_ARRAY, gdb.TYPE_CODE_TYPEDEF):
AttributeError: 'NoneType' object has no attribute 'code'
No symbol g_version found in memory, skipping version check
Signed-off-by: chenzhijia <chenzhijia@xiaomi.com>
Update the Python script based on the PR "Separate file
descriptors from file descriptions" in fs/vfs.
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
Fix some misspelled field names.
These field names seem to be used only in private contexts.
Thus, the probability of external code accessing these fields is very
low.
In the rare case of external usage, compile time errors will easily
direct users to the new field name.
1. Add method to check if an object has specified field.
2. Fix Array iterator that walrus expression should store result of the
function, instead of the compare result.
Note that walrus operation has lowest priority except ','.
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
If the nodesize is 0, we cannot iterate to next node, siliently return None will cause memleak command to generate false positive report with no warnings.
Add log to indicate such case.
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
Reduce leak analysis time from 12s to 7.8s, achieving a 35% performance improvement that tested on an internal project.
1. Use memoryview to avoid creating int objects, reducing overhead
2. Store checked pointers in a dictionary for efficient lookups, improving performance.
3. While dictionary operations have some cost, the overall speedup is significant.
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>