Lars Kruse
4568110d63
fix misspelled names in locally scoped code
...
These misspelled words are used in strictly local scopes.
Renaming these variables should not cause any problems.
2025-05-15 10:12:12 +08:00
yangao1
ded5a6aae5
nxgdb/dmesg.py:add use gdb dump rpmsg_syslog
...
(gdb) dmesg
RAM log:
[01/06 02:27:05] [ 1] [cp] reset mode:1
...
[01/06 02:27:05] [ 1] [cp] Dump board_reset backtrace:
[01/06 02:27:05] [ 1] [cp] sched_dumpstack: backtrace| 1: 0x10a0d880 0x10a0a78e 0x10a0d8b6 0x10a0f29e 0x10a0f182
[01/06 02:27:05] [ 1] [cp] Time: Mon Jan 6 02:27:05 2025
---END of RAMLOG
RPMSG syslog:
dumpstack: backtrace|10: 0x10a0d880 0x10a0a78e 0x10a110de 0x10a3a482 0x10a3c4fa 0x10a23358 0x10a4aaee 0x10a34a7c
[01/06 02:27:05] [ 1] [cp] sched_dumpstack: backtrace|10: 0x10a2330a 0x10a0f1f4
[01/06 02:27:05] [ 1] [cp] sched_dumpstack: backtrace|11: 0x10a0d880 0x10a0a78e 0x10a110de 0x10a3a482 0x10a15152 0x10a0f182
[01/06 02:27:05] [ 1] [cp] sched_dumpstack: backtrace|15: 0x10a0d880 0x10a0a78e 0x10a0d8b6 0x10a174d0 0x10a3a482 0x10a3c4fa 0x10a222ee 0x10a18c66
[01/06 02:27:05] [ 1] [cp] Time: Mon Jan 6 02:27:05 2025
---END of RPMSG SYSLOG---
Signed-off-by: yangao1 <yangao1@xiaomi.com>
2025-03-27 02:18:37 +08:00
xuxingliang
1bfb42d127
nxgdb/irq: add irqinfo command
...
(gdb) irqinfo
IRQ COUNT TIME RATE HANDLER ARGUMENT
0 0 0 N/A mps_reserved 0x0 <sensor_unregister>
2 0 0 N/A mps_nmi 0x0 <sensor_unregister>
3 0 0 N/A arm_hardfault 0x0 <sensor_unregister>
4 0 0 N/A arm_memfault 0x0 <sensor_unregister>
5 0 0 N/A arm_busfault 0x0 <sensor_unregister>
6 0 0 N/A arm_usagefault 0x0 <sensor_unregister>
11 1 0 N/A arm_svcall 0x0 <sensor_unregister>
12 0 0 N/A arm_dbgmonitor 0x0 <up_debugpoint_remove>
14 0 0 N/A mps_pendsv 0x0 <up_debugpoint_remove>
15 6581421 0 N/A systick_interrupt 0x100010c <g_systick_lower>
49 2 0 N/A uart_cmsdk_tx_interrupt 0x1000010 <g_uart0port>
50 0 0 N/A uart_cmsdk_rx_interrupt 0x1000010 <g_uart0port>
59 2 0 N/A uart_cmsdk_ov_interrupt 0x1000010 <g_uart0port>
(gdb)
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2025-02-18 11:16:17 -03:00
xuxingliang
06c7e2a02e
nxgdb/utils: add has_field and fix ArrayIterator
...
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>
2025-02-18 11:16:17 -03:00
xuxingliang
1b94d0e2cf
nxgdb/mm: show pool expand queue size
...
nqueue has been added to output.
E.g.
(gdb) mm pool
Total 16 pools
total blocksize bsize overhead nused nfree nifree nwaiter nqueue
Umem@0x10048dc 4068 16 16 0 3 251 0 0 1
Umem@0x100493c 4068 32 32 0 3 124 0 0 1
Umem@0x100499c 4036 48 48 0 10 74 0 0 1
Umem@0x10049fc 4036 64 64 0 1 62 0 0 1
Umem@0x1004a5c 0 80 80 0 0 0 0 0 0
Umem@0x1004abc 0 96 96 0 0 0 0 0 0
Umem@0x1004b1c 0 112 112 0 0 0 0 0 0
Umem@0x1004b7c 0 128 128 0 0 0 0 0 0
Umem@0x1004bdc 0 144 144 0 0 0 0 0 0
Umem@0x1004c3c 0 160 160 0 0 0 0 0 0
Umem@0x1004c9c 0 176 176 0 0 0 0 0 0
Umem@0x1004cfc 0 192 192 0 0 0 0 0 0
Umem@0x1004d5c 3956 208 208 0 1 18 0 0 1
Umem@0x1004dbc 0 224 224 0 0 0 0 0 0
Umem@0x1004e1c 0 240 240 0 0 0 0 0 0
Umem@0x1004e7c 0 256 256 0 0 0 0 0 0
(gdb)
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2025-02-16 11:23:38 -03:00
xuxingliang
c319863834
nxgdb/mm: fix regular expression to parse log
...
There could be only one space ahead of address.
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2025-02-07 08:18:14 +08:00
xuxingliang
1577fe3160
nxgdb/mm: warning if corrupted memory node found
...
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>
2025-02-07 08:18:14 +08:00
xuxingliang
ef52c68e06
nxgdb/mm: add prenode, nextnode property for mempool
...
So it looks like a memory node in heap thus we can process it in a unified way
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2025-02-07 08:18:14 +08:00
xuxingliang
04bd00f80a
pynuttx: optimize memory leak check by skipping previously checked pointers
...
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>
2025-02-05 09:15:27 -03:00
xuxingliang
b90638493a
pynuttx: fix memleak
...
Only need to check used node, excluding free nodes.
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2025-02-05 09:15:27 -03:00
xuxingliang
f9d8cdcca2
nxgdb/memdump: add free command
...
(gdb) free
name total used free maxused maxfree nused nfree
GImageCache 10485756 10411964 73792 10602184 62328 217 7
uncache 10485756 127812 10357944 270512 10350560 4 2
Umem 26879516 17458732 9420784 20957888 9260768 1211 234
(gdb)
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2025-02-04 09:32:07 -03:00
xuxingliang
8995e5a66e
nxgdb/fs: simplify inode print and add more options
...
Use Inode.__repr__ for print and use single line for all information.
Add 'verbose' and 'nodetype' option to show more details and only print specifiy node type like PIPE.
Add / to name for pseudodir.
Catch memory error when accessing node element.
E.g.
(gdb) foreach inode --nodetype pipe
├── run/ 0x41a27a50 PSEUDODIR
│ ├── bt:bluetoothCS1fd26 0x4530c510 PIPE
│ ├── bt:bluetoothCS20 0x42daae40 PIPE
│ ├── socketpair0x457fd2e0SC20540 0x44ea27b0 PIPE
│ └── tmp/ 0x42dd7cf0 PSEUDODIR
│ │ └── usock/ 0x42dd6c10 PSEUDODIR
│ │ └── speech.usockHD 0x42dc8270 PIPE
│ ├── central_lite.socketCS5e 0x42e1e7b0 PIPE
│ ├── central_service_lite.socketSC86 0x432ee6d0 PIPE
│ │ └── usock/ 0x43d6ed60 PSEUDODIR
│ │ └── speech.usockHD 0x43da2ba0 PIPE
│ ├── uv-feature-sockSC8d 0x43540430 PIPE
│ ├── uv-miot-sockCS54 0x42e272e0 PIPE
│ └── uv-miot-sockSC54 0x42e270b0 PIPE
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2025-02-03 09:21:26 +01:00
xuxingliang
dc5251f9c8
nxgdb/fs: use default args
...
Instead of storing it to self
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2025-02-03 09:21:26 +01:00
Neo Xu
698b2e00e6
nxgdb: include all files to package
...
Signed-off-by: Neo Xu <neo.xu1990@gmail.com>
2025-02-02 14:02:24 +08:00
xuxingliang
14cc23f42a
nxgdb: add missing protocols definitions
...
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2025-02-02 14:02:24 +08:00
yinshengkai
50fb43e23b
tools: rename tools/gdb/nuttxgdb to tools/pynuttx/nxgdb
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2025-02-02 14:02:24 +08:00