查看“︁Debug:mm track”︁的源代码
←
Debug:mm track
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
不允许您执行您所请求的操作。
您可以查看和复制此页面的源代码。
mm_track start [callsite_cap] [data_cap] [depth] [skip] start命令会分配所需内存,第一次运行mm_track时,会默认以callsite_cap=1024,data_cap=4096,depth=5,skip=2来运行,其中callsite_cap代表可以存储的调用栈数量,data_cap代表可以存储的栈帧的数量(每个栈可能有多个栈帧),depth代表栈回溯时最大的回溯深度,skip代表栈回溯时跳过的栈帧(有可能前两级栈帧无意义) mm_track dump dump命令会打印记录的malloc申请点,与申请数,释放数,使用数。 e.g. 第一次执行时会以默认参数执行mm_track start 1024 4096 5 : bouffalolab />mm_track mm leak trace started: callsite=1024 data=4096 depth=5 skip=2 mm leak trace alloc bytes: ctx: req_bytes=40 entry: cap=1024 item_size=12 req_bytes=12288 bt_data: cap=4096 item_size=4 req_bytes=16384 untracked: cap=256 item_size=4 req_bytes=1024 total_req_bytes=29736 之后可以执行业务,以wifi_scan为例,多次执行: bouffalolab />wifi_scan bouffalolab />wifi_scan 第二次即以后会默认执行mm_track dump: bouffalolab />mm_track MM Leak Trace Report state=started callsite_cap=1024/1024 data_cap=4096/4096 depth=5 skip=2 hash malloc free used .... 0xa56f7f49 2 0 2 .... callsites=25 bt_entries=25 data_used=123/4096 dropped=0 used blocks=3 发现0xa56f7f49 callsite有两块内存是used,有可能漏露,打印完整backtrace: bouffalolab />mm_track bt 0xa56f7f49 0xa0057156 0xa0039fec 0xa0008cee 0xa000feee 0xa0012760 matched bt entries: 1 使用addr2line工具打印backtrace的函数名字: :~/repo/new0/bouffalo_sdk$ riscv64-unknown-elf-addr2line -e examples/wifi/sta/wifi_tcp/build/build_out/wifi_tcp_bl616.elf -f 0xa0057156 0xa0039fec 0xa0008cee 0xa000feee 0xa0012760 platform_malloc ./examples/wifi/sta/wifi_tcp/build/build_out/components/wireless/wifi6/macsw_os_adapter/./components/wireless/wifi6/macsw_os_adapter/src/platform_bouffalo_sdk.c:104 macrx_upload /home/wyb/repo/new0/bouffalo_sdk/components/wireless/xxxx.c:145 dma_upload /home/wyb/repo/new0/bouffalo_sdk/components/wireless/xxxx.c:972 event_schedule /home/wyb/repo/new0/bouffalo_sdk/components/wireless/xxxx.c:170 (discriminator 5) event_loop /home/wyb/repo/new0/bouffalo_sdk/components/wireless/xxxx.c:72 打开代码,检查相应的malloc是否没有相应的free。
返回
Debug:mm track
。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息