获得徽章 16
#每天一个知识点# vscode插件开发中,如果你的配置项是一个object,需要注意proxy的问题,示例代码如下:

function getValue() {
// cfg的数据结构:{"item1":[1,2,3], "item2":[1,2,3]}
const value: Record<string, number[]> = vscode.workspace.getConfiguration("id").get<Record<string, number[]>>("cfg", {});
// 返回的value是一个proxy
return value;
}
// 这里的100是push不进去的,就是因为function的缘故,不清楚为什么
getValue()['item1'].push(100);

有懂的兄弟解释下么?
展开
2
#每天一个知识点#
vscode 插件开发的时候,如果想要在TreeView中的TreeItem显示不同的右键菜单,需要在package.json中配置menus,menu可以通过when控制显隐,其中viewItem==xxx,xxx的值是和vscode.TreeItem.contextValue对应的。
评论
#每天一个知识点# 如果要使用 addr2line 工具查询动态链接库(DLL)中某个函数的源代码位置信息,通常需要将查询地址减去该 DLL 的基地址。
这是因为在 Windows 平台上,每个 DLL 都有一个基地址,用于确定该 DLL 中所有函数和变量在虚拟地址空间中的位置,以保证不同 DLL 之间的地址不会重叠冲突。
展开
评论
Valgrind是一种开放源代码的内存调试和性能分析工具套件,主要用于发现程序中的内存泄漏、越界访问、使用未初始化内存等错误。

使用Valgrind可以运行程序并监控其执行过程中的内存访问情况,如果程序存在内存问题,Valgrind会输出相应的警告信息,指出错误发生在哪一行代码上。Valgrind的输出信息非常详细,可以帮助我们快速定位 #每天一个知识点#
展开
评论
malloc 的分配都是假的,malloc 的请求系统都知道,程序退出时,系统会回收malloc 的所有资源。 #每天一个知识点#
1
#每天一个知识点# 双击VS的输出可以跳转到源码的功能是来自于VS的智能识别功能,它会根据输出内容中包含的文件路径和行号信息,自动定位到对应的源代码位置。
所以我们在输出日志的时候,可以考虑使用如下格式

xxxx.cpp(100): some message
这样想要跳转源码就非常的舒服了!
展开
评论
#每天一个知识点# leakcanary是一款检测安卓应用内存泄露的第三方库,但是他不能检测ndk的c++代码的泄露,如果要检测ndk内存泄露,如果你的api level大于等于27,那么可以使用llvm编译器自带的asan,如果你对这个不熟悉,可以选择第三方库leak-tracer,你懂了么?
评论
#每天一个知识点# CMAKE


add_custom_command(TARGET ${APP_NAME}
POST_BUILD
COMMAND for %%f in("$(outdir)/*.lib" ,"$(outdir)/*.exp") do(del /q "%%f")

这个COMMAD其实是一段bat脚本,如何在Release模式下有效,有人遇到过没,我尝试了$<CONFIG:Release>的各种写法,发现都有问题,前两天问GPT死活给不了正确答案,今天又问了一遍,竟然给了一个能用的新答案

COMMAND $<$<CONFIG:Release>:cmd>
ARGS /C "for /f \"delims=\" %%f in ('dir /b /s $(OutDir)\\*.lib $(OutDir)\\*.exp') do del \"%%f\""
展开
评论
下一页
个人成就
文章被点赞 136
文章被阅读 202,451
掘力值 5,245
收藏集
5
关注标签
2
加入于