xuxingliang
444396ee37
tools/gdb: use os.system to call readelf
...
Some version of gdb does not support subprocess
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-23 13:09:16 +08:00
xuxingliang
d15540a836
tools/gdb: add deadlock detect tool
...
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-23 13:09:16 +08:00
xuxingliang
7b43cf5221
tools/gdb: make entry for list iteration optional
...
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-23 13:09:16 +08:00
buxiasen
3f3bbf76f9
tool/gdb/memdump: fix orphan, fix -p support
...
Signed-off-by: buxiasen <buxiasen@xiaomi.com>
2024-11-23 13:09:16 +08:00
xuxingliang
796806c65b
tools/gdb: allow to use info nxthreads
...
(gdb) info threads
Id Target Id Frame
* 1.1 Thread 1 (Name: CPU0 IDLE, State: 3, Pri: 0, Stack: 41eccfec, Size: 3976) 0x402cd586 in up_idle () at chip/r528_idle.c:80
1.2 Thread 2 (Name: CPU1 IDLE, State: 4, Pri: 0, Stack: 4194bb78, Size: 3976) 0x402cd586 in up_idle () at chip/r528_idle.c:80
(gdb) info nxthreads
Index Tid Pid Cpu Thread Info Frame
0 0 0 0 '\000' Thread 0x419633b8 (Name: CPU0 IDLE, State: Assigned, Priority: 0, Stack: 3976) 0x402cd586 up_idle() at chip/r528_idle.c:80
*1 1 1 1 '\001' Thread 0x41963498 (Name: CPU1 IDLE, State: Running, Priority: 0, Stack: 3976) 0x402cd586 up_idle() at chip/r528_idle.c:80
(gdb)
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-23 13:09:16 +08:00
anjiahao
db1e97405a
thread.py: fix bug that ARM-A TCB info register[2]
...
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2024-11-23 13:09:16 +08:00
Gao Jiawei
b5e7f8a40f
trvial adjustment on get_arch_(sp|pc)_name()
...
Signed-off-by: Gao Jiawei <gaojiawei@xiaomi.com>
2024-11-23 13:09:16 +08:00
Gao Jiawei
1b5b882e53
improve sanity checking when constructing the stack object
...
Signed-off-by: Gao Jiawei <gaojiawei@xiaomi.com>
2024-11-23 13:09:16 +08:00
Gao Jiawei
fa8aff6d9b
regression: use stack TLS region to retrieve task argument vector
...
ta_argv is removed, we use pointer to the TLS instead
Signed-off-by: Gao Jiawei <gaojiawei@xiaomi.com>
2024-11-23 13:09:16 +08:00
xuxingliang
7daecfb10c
tools/gdb: fallback to parse elf to get macro
...
For LTO optimization, we may not be able to parse the macro value. Parse .debug_macro section from elf manually.
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-23 13:09:16 +08:00
yinshengkai
0413d74f31
libs: add gcov framework support
...
In devices without storage media, you can export data to the
command line and then generate the corresponding gcda file
It can save the result output by calling __gcov_info_to_gcda
The usage is similar to:
https://gcc.gnu.org/onlinedocs/gcc/Freestanding-Environments.html#Profiling-and-Test-Coverage-in-Freestanding-Environments
Usage:
./tools/configure.sh qemu-armv7a:nsh
Modify the configuration
+CONFIG_COVERAGE_ALL=y
+CONFIG_COVERAGE_MINI=y
+CONFIG_SYSTEM_GCOV=y
Run:
qemu-system-arm -cpu cortex-a7 -nographic -smp 4 \
-machine virt,virtualization=off,gic-version=2 \
-net none -chardev stdio,id=con,mux=on -serial chardev:con \
-mon chardev=con,mode=readline -kernel ./nuttx/nuttx -semihosting -s | tee gcov.txt
./nuttx/tools/gcov_convert.py -i ./gcov.txt
./nuttx/tools/gcov.sh -t arm-none-eabi-gcov
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2024-11-22 19:08:08 +08:00
Jouni Ukkonen
74cdb53027
tools/imx9: Add norimage support to bootloader
...
Fetch fspi header and fcb generation script,
using mkimage generate nor bootable image.
compile bootloader using -mstrict-align
Signed-off-by: Jouni Ukkonen <jouni.ukkonen@unikie.com>
2024-11-22 18:53:21 +08:00
Zhe Weng
5ec2c97424
tools/gdb: Supports args and help for netstats
...
(gdb) help netstats
Network statistics
Usage: netstats [iob|pkt|tcp|udp|all]
Examples: netstats - Show all stats
netstats all - Show all stats
netstats iob - Show IOB stats
netstats tcp udp - Show both TCP and UDP stats
(gdb) netstats iob pkt
IOB: size ntotal nfree nwait nthrottle
1518 72 72 0 40
Packets: IPv4 IPv6 TCP UDP ICMP ICMPv6
Received 12 20 2 10 0 0
Dropped 0 20 0 0 0 0
VHL 0 0 - - - -
Frag 0 0 - - - -
Chksum 0 - 0 0 - -
Type - - - - 0 0
Proto 0 0 - - - -
Sent 4 0 4 0 0 0
Rexmit - - 2 - - -
Signed-off-by: Zhe Weng <wengzhe@xiaomi.com>
2024-11-22 13:38:23 +08:00
Zhe Weng
d0884828ed
tools/gdb: Add TCP in netstats
...
(gdb) netstats
IOB: size ntotal nfree nwait nthrottle
1518 72 70 0 38
<...>
TCP Conn: st flg ref tmr uack nrt txbuf rxbuf+ofo local_address remote_address
0 4 61 1 3 0 0 0/16384 28/16384+0 10.0.1.2:11315 10.0.1.1:5001
Signed-off-by: Zhe Weng <wengzhe@xiaomi.com>
2024-11-22 13:38:23 +08:00
Zhe Weng
395090284a
tools/gdb: Add UDP in netstats
...
(gdb) netstats
IOB: size ntotal nfree nwait nthrottle
1518 72 70 0 38
<...>
UDP Conn: flg txbuf rxbuf local_address remote_address
0 41 0/16384 0/16384 :::19279 fc00::1:5001
1 41 0/16384 0/16384 :::19280 fc00::1:5001
2 41 0/16384 0/16384 :::19281 fc00::1:5001
3 41 0/16384 0/16384 :::19282 fc00::1:5001
4 41 0/16384 0/16384 :::19283 fc00::1:5001
5 41 0/16384 0/16384 0.0.0.0:19284 10.0.1.1:5001
6 41 0/16384 0/16384 0.0.0.0:19285 10.0.1.1:5001
7 41 0/16384 0/16384 0.0.0.0:19286 10.0.1.1:5001
8 41 0/16384 0/16384 0.0.0.0:19287 10.0.1.1:5001
9 41 0/16384 0/16384 0.0.0.0:19288 10.0.1.1:5001
Signed-off-by: Zhe Weng <wengzhe@xiaomi.com>
2024-11-22 13:38:23 +08:00
Zhe Weng
1c884ee230
tools/gdb: Add packet statistic in netstats
...
Unlike NuttX's one, we use decimal instead of hexadecimal, because other
stats may all use decimal.
(gdb) netstats
IOB: size ntotal nfree nwait nthrottle
1518 72 72 0 40
Packets: IPv4 IPv6 TCP UDP ICMP ICMPv6
Received 137 43 0 49 88 0
Dropped 0 43 0 0 74 0
VHL 0 0 - - - -
Frag 0 0 - - - -
Chksum 0 - 0 0 - -
Type - - - - 74 0
Proto 0 0 - - - -
Sent 11481 11542 0 17223 27 4
Rexmit - - 0 - - -
Signed-off-by: Zhe Weng <wengzhe@xiaomi.com>
2024-11-22 13:38:23 +08:00
Zhe Weng
4ff0447027
tools/gdb: Add net.py and netstats command
...
Only support IOB stats now, may add socket status later.
(gdb) netstats
IOB: size ntotal nfree nwait nthrottle
1518 72 72 0 40
Signed-off-by: Zhe Weng <wengzhe@xiaomi.com>
2024-11-22 13:38:23 +08:00
xuxingliang
992d5e0127
tools/gdb: add info shm
command
...
(gdb) info shm
/var/shm/xms:bq-325-1044165565 memsize: 1536000, paddr: 0x41de3970
/var/shm/xms:bq-325-2123092606 memsize: 1536000, paddr: 0x41f5a9a8
/var/shm/xms:fakemq-325-1835096569 memsize: 12, paddr: 0x420d19e0
(gdb)
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-22 12:30:12 +08:00
xuxingliang
4e2ad314d7
tools/gdb: avoid building a full list
...
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-22 12:30:12 +08:00
yangao1
ab3aa41f39
tools/gdb/fs.py: add print fdinfo,modify the print format
...
Execute fdinfo or fdinfo -p pid.
(gdb) fdinfo
PID: 0
FD OFLAGS POS PATH BACKTRACE
0 3 0 /dev/console 0x4028ff0c <sched_backtrace+48> /home/neo/projects/vela2/nuttx/sched/sched/sched_backtrace.c:105
0x402888f8 <file_allocate_from_tcb+236> /home/neo/projects/vela2/nuttx/fs/inode/fs_files.c:615
0x402979d0 <nx_vopen+104> /home/neo/projects/vela2/nuttx/fs/vfs/fs_open.c:326
0x40297ad4 <nx_open+116> /home/neo/projects/vela2/nuttx/fs/vfs/fs_open.c:449
0x40291eb4 <group_setupidlefiles+28> /home/neo/projects/vela2/nuttx/sched/group/group_setupidlefiles.c:75
0x4028df94 <nx_start+628> /home/neo/projects/vela2/nuttx/sched/init/nx_start.c:651
0x4028119c <arm64_boot_primary_c_routine+16> /home/neo/projects/vela2/nuttx/arch/arm64/src/common/arm64_boot.c:205
1 3 0 /dev/console 0x4028ff0c <sched_backtrace+48> /home/neo/projects/vela2/nuttx/sched/sched/sched_backtrace.c:105
0x40289574 <file_dup3+248> /home/neo/projects/vela2/nuttx/fs/vfs/fs_dup2.c:177
0x40288b88 <nx_dup3_from_tcb+176> /home/neo/projects/vela2/nuttx/fs/inode/fs_files.c:314
0x40288c64 <nx_dup2_from_tcb+16> /home/neo/projects/vela2/nuttx/fs/inode/fs_files.c:901
0x40288c88 <nx_dup2+28> /home/neo/projects/vela2/nuttx/fs/inode/fs_files.c:924
0x40291ec4 <group_setupidlefiles+44> /home/neo/projects/vela2/nuttx/sched/group/group_setupidlefiles.c:84
0x4028df94 <nx_start+628> /home/neo/projects/vela2/nuttx/sched/init/nx_start.c:651
0x4028119c <arm64_boot_primary_c_routine+16> /home/neo/projects/vela2/nuttx/arch/arm64/src/common/arm64_boot.c:205
2 3 0 /dev/console 0x4028ff0c <sched_backtrace+48> /home/neo/projects/vela2/nuttx/sched/sched/sched_backtrace.c:105
0x40289574 <file_dup3+248> /home/neo/projects/vela2/nuttx/fs/vfs/fs_dup2.c:177
0x40288b88 <nx_dup3_from_tcb+176> /home/neo/projects/vela2/nuttx/fs/inode/fs_files.c:314
0x40288c64 <nx_dup2_from_tcb+16> /home/neo/projects/vela2/nuttx/fs/inode/fs_files.c:901
0x40288c88 <nx_dup2+28> /home/neo/projects/vela2/nuttx/fs/inode/fs_files.c:924
0x40291ed0 <group_setupidlefiles+56> /home/neo/projects/vela2/nuttx/sched/group/group_setupidlefiles.c:117
0x4028df94 <nx_start+628> /home/neo/projects/vela2/nuttx/sched/init/nx_start.c:651
0x4028119c <arm64_boot_primary_c_routine+16> /home/neo/projects/vela2/nuttx/arch/arm64/src/common/arm64_boot.c:205
Signed-off-by: yangao1 <yangao1@xiaomi.com>
2024-11-22 12:30:12 +08:00
zhengyu9
136b7065b7
gdb tools: print inode info
...
go through each inode and print its structure info
in the form like below:
├── i_name: bin, i_ino: 51
│ i_parent: , i_peer: data, i_child: , i_crefs: 1, i_flags: 3
│ ......(other info)
│ ├── i_name: audio, i_ino: 5
│ │ i_parent: dev, i_peer: binder, i_child: mixer......
Signed-off-by: zhengyu9 <zhengyu9@xiaomi.com>
2024-11-22 12:30:12 +08:00
zhengyu9
fab9670857
gdb tools: mount command
...
support mount command in gdb, print mount information
test result:
/bin type binfs
/data type hostfs
/etc type romfs
/proc type procfs
/resource type hostfs
/tmp type tmpfs
Signed-off-by: zhengyu9 <zhengyu9@xiaomi.com>
2024-11-22 12:30:12 +08:00
Neo Xu
1518f8bdb8
tools/gdb: fix type and comments
...
Signed-off-by: Neo Xu <neo.xu1990@gmail.com>
2024-11-21 23:08:55 +08:00
anjiahao
cd78de7c63
memleak:Add reminder information
...
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2024-11-21 23:08:55 +08:00
anjiahao
b507a57158
thread.py: fix bug that ARM-A TCB info register offset is discontinuous
...
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2024-11-21 23:08:55 +08:00
xuxingliang
0f1e2cc7dc
tools/gdb: make it compatible with older gdb
...
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-21 23:08:55 +08:00
anjiahao
f53869f86f
memleak:use global symbol to search all global variables
...
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2024-11-21 23:08:55 +08:00
anjiahao
8575f11e1e
memdump.py:use import_check inside of once_init
...
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2024-11-21 23:08:55 +08:00
anjiahao
e71d45ce86
utils.py:support import check and requirements.txt
...
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2024-11-21 23:08:55 +08:00
buxiasen
bf2d6a3554
tools/gdb/memdump: add biggest/orphon dump.
...
information prefer from gdb to python class
Signed-off-by: buxiasen <buxiasen@xiaomi.com>
2024-11-21 23:08:55 +08:00
xuxingliang
fc0f7365bb
tools/gdb: fix import error for certain gdb
...
For the prebuilt arm-none-eabi-gdb, there's no python builtin module
available.
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-21 23:08:55 +08:00
xuxingliang
de5f70b3c8
tools/gdb: remove 'Nx' prefix for unique commands
...
1. Remove Nx prefix for nuttx unique commands.
2. Add docstring for most of the commands in order to show help message.
3. Add 'init_once' method for Memmap command. The prerequisite is checked the moment it's used.
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-21 23:08:55 +08:00
xuxingliang
3a46b6e6af
tools/gdb: cache gdb.Type result
...
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-21 23:08:55 +08:00
xuxingliang
1d25eed55c
tools/gdb: fix CONFIG_SMP_NCPUS could be none
...
The macro could be eliminated by optimization.
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-21 23:08:55 +08:00
xuxingliang
715c3ab079
tools/gdb: fix notification suppress not working
...
"on" string is always in the word 'notification'. Should use "is on" instead.
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-21 23:08:55 +08:00
xuxingliang
ad1be85be7
tools/gdb: catch exception when there's no selected frame
...
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-21 23:08:55 +08:00
xuxingliang
bbf51ba071
tools/gdb: no need to read the whole memory firstly
...
Read the whole memory costs additional time. When the number memory nodes is
small, test on qemu shows that read memory directly is faster.
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-21 23:08:55 +08:00
xuxingliang
12783c031c
tools/gdb: only define c and s when thread comands enabled
...
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-21 23:08:55 +08:00
yinshengkai
b81212e96f
tools/gdb: Add memory fragmentation rate calculation
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2024-11-21 23:08:55 +08:00
xuxingliang
9dbf58f1be
tools/gdb: optimize memleak speed
...
1. Avoid to_bytes by using memoryview directly.
2. No need to call gdb to cast to char *.
3. Cache the memory data without invoke gdb in every iteration.
4. Do code cleanup.
memleak speed improved from 261.93 seconds to 29.9 seconds for x4b
usecase.
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-21 23:08:55 +08:00
xuxingliang
4e067fd762
tool/gdb: use second inferior to get symbol
...
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-21 23:08:55 +08:00
yinshengkai
614e07c8f0
tools/gdb: supports generating memory map images
...
Display all memory nodes in a picture, which can be used to help analyze memory fragmentation
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2024-11-21 23:08:55 +08:00
xuxingliang
2f8c9070c5
tools/gdb: use native thread command
...
For coredump, gdb-stub, the thread command is natively supported.
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-21 23:08:55 +08:00
anjiahao
089877c693
memleak:support use gdb to catching absolute memory leaks
...
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2024-11-21 23:08:55 +08:00
Peter Bee
c0f776dbc3
follow upstream change & fix minor things
...
Signed-off-by: Peter Bee <pbjd97@gmail.com>
2024-11-20 16:32:05 -03:00
Marco Casaroli
dac3f315a1
uf2
2024-11-20 16:32:05 -03:00
Neo Xu
edc410f26f
format code to pass CI
...
Signed-off-by: Neo Xu <neo.xu1990@gmail.com>
2024-11-20 09:04:22 +08:00
buxiasen
96a3bc2b5c
tools/gdb: fix if restore_regs failed script abort
...
Signed-off-by: buxiasen <buxiasen@xiaomi.com>
2024-11-20 09:04:22 +08:00
anjiahao
eded2017d4
memdump.py:Enhance the printing function of memdump
...
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2024-11-20 09:04:22 +08:00
anjiahao
477f7b92ee
tools/gdb/memdump.py:fix mempool memory traversal missing nodes
...
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2024-11-20 09:04:22 +08:00