首页 > 其他分享 >Visual Assist X使用技巧

Visual Assist X使用技巧

时间:2024-02-17 10:11:58浏览次数:46  
标签:技巧 符号 int Assist Visual LambdaTest1 pdb

 

限制vax最大使用的cpu核心数为4

reg add "hkcu\software\Whole Tomato" /v MaxConcurrency /t REG_DWORD /d 4 /f

 

使用PDB Explorer查看Release版pdb中的符号

① 非调试态,查看nico相关的符号  注:通过填写模块的基地址“Base address”的值来计算所有符号的地址

注:windbg调试LambdaTest1.exe并加载其pdb,也可以通过x LambdaTest1!*nico*来查看nico相关的符号

cpp代码如下:

int Nico2Add(int a, int b)
{
    return a + b;
}

class CNicoClass
{
public:
    void NicoFunc(int a, float b)
    {

    }
};

 

② 调试态时,查看lambda相关的符号   注:通过点击“Update Base Address From Debugger”来获取模块的基地址,来计算所有符号的地址

注1:目前只能用于查看Release版本的pdb和exe文件

注2:修改代码重新编译后,需要重启vs进程来用PDB Explorer查看pdb和exe文件中符号(应该是PDB Explorer的bug)

注3:搜索时如果找不到符号请勾选所有选项(应该是过滤器的bug)

注4:windbg调试LambdaTest1.exe并加载其pdb,也可以通过x LambdaTest1!*lambda*来查看lambda相关的符号

0:000> x LambdaTest1!*lambda*
013d1240 LambdaTest1!<lambda_b53d8cae67476f0e5f04d9defa3a2e2b>::<lambda_b53d8cae67476f0e5f04d9defa3a2e2b> (int *)
013d1220 LambdaTest1!<lambda_b53d8cae67476f0e5f04d9defa3a2e2b>::operator() (int)
013d1590 LambdaTest1!std::for_each<std::_Vector_iterator<std::_Vector_val<std::_Simple_types<int> > >,<lambda_b53d8cae67476f0e5f04d9defa3a2e2b> > (class std::_Vector_iterator<std::_Vector_val<std::_Simple_types<int> > >, class std::_Vector_iterator<std::_Vector_val<std::_Simple_types<int> > >, class main::__l2::<lambda_b53d8cae67476f0e5f04d9defa3a2e2b>)

cpp代码如下:

int total = 0;
std::vector<int> some_list = {1,2,3,4,5};
std::for_each(begin(some_list), end(some_list), [&total](int x)
{
    total += x;
});

张银奎的SymView(已开源)也是一个不错查看符号的工具

 

参考

Whole Tomato官网

Documentation for Visual Assist

Features in Visual Assist

Visual Assist 特性和技巧 (2017)

[原创]修复Visual Assist在VS2022 17.7.0中启动就报错

The 'VaMenuPackage' package did not load correctly.

The 'VaMenuPackage' package did not load correctly.(2)

标签:技巧,符号,int,Assist,Visual,LambdaTest1,pdb
From: https://www.cnblogs.com/kekec/p/10728862.html

相关文章

  • 【Redis】【高性能】Redis 批量查询技巧
    1  前言Redis,我们做开发的想必都用过,他是一种缓存,主要用于快速响应结果嘛。比如我们要获取商品的详情,有日销量、月销量、库存数量、评价数量,这些数据都在Redis缓存中,那么我们是要拿四趟?还是一趟呢?当然是一趟最好呀。接下来我们来看看为什么我们要一趟这么做,以及怎么做。2  ......
  • 【译】我为 .NET 开发人员准备的 2023 年 Visual Studio 10 大新功能
    原文|JamesMontemagno翻译|郑子铭VisualStudio2022在2023年发布了许多令人难以置信的功能,为.NET开发人员提供了大量新工具来提高他们的工作效率。有这么多可供选择,我精心挑选了一个包括编辑器改进、生产力更新和人工智能辅助的选项。让我们来探讨一些最有影响力的功......
  • [Kyana]Linux使用小技巧
    01|使用逻辑卷使存储空间可扩展前排提示小白在使用Linux虚拟机时,常在开始分配较小的硬盘空间,在后续使用中常出现硬盘空间不足的问题,轻则无法安装软件,重则无法更新。本文推荐使用逻辑卷方式安装操作系统,便于后续磁盘扩充。在逻辑卷上创建文件系统流程:层次(命令):|物理磁盘|(-fdis......
  • 【实用技巧】【Mybatis】自定义的动态 SQL
    1 前言平时我们可能会拼接SQL,尤其是做一些报表的开发或者连表查询的时候,当条件发生变更或者关联关系需要改变的时候,就需要更改代码里的SQL,所以我这里弄了一个简易版的基于Mybatis的动态SQL调用。2 实现主要是Mybatis的动态SQL://controller层@Override@PostMapp......
  • Visual Studio部署matplotlib绘图库的C++版本
      本文介绍在VisualStudio软件中配置、编译C++环境下matplotlibcpp库的详细方法。  matplotlibcpp库是一个C++环境下的绘图工具,其通过调用Python接口,实现在C++代码中通过matplotlib库的命令绘制各类图像。由于其需要调用Python接口,因此在配置matplotlibcpp库时有些较为麻烦......
  • 如何导出 Visual Studio Code 的扩展应用,并离线安装?
    1.离线情形VisualStudioCode的扩展应用安装位置在文件夹.vscode/extensions下。不同平台,它位于:Windows%USERPROFILE%.vscode\extensionsMac~/.vscode/extensionsLinux~/.vscode/extensions离线使用时,直接复制粘贴即可。2.有网情况方法1:账号同步使用VisualStudio......
  • 【译】介绍 MSTest Runner – CLI、Visual Studio 等
    原文|AmauryLevé,MarcoRossignoli,JakubJareš翻译|郑子铭我们很高兴推出MSTestrunner,这是一个用于MSTest测试的新型轻量级运行程序。这个新的运行程序使测试更加便携和可靠,使测试运行得更快,并且可扩展,为您提供点菜测试体验,以添加成功所需的工具。它是什么?MSTes......
  • 【译】VisualStudio 17.9预览3带来了令人兴奋的代码搜索改变
    随着VisualStudio17.9预览版3的发布,我们为代码搜索(也称为All-In-OneSearch)带来了一些令人兴奋的增强。自从我们上次更新搜索体验以来,我们一直在努力改进体验,并想出增加体验的方法。现在,您可以在解决方案中搜索任何单词或字符串,补充来自代码库的文件和符号结果。现在可以......
  • redis操作技巧
    1.sadd和srem的使用(Set)redisAdapter.sadd(key1,value1);jedisAdapter.srem(key1,value1);2.hmsetStr和hgetAll和hgetStr的使用 publicvoidsaveToRedis(Stringkey,MapfieldValue){if(!CollectionUtils.isEmpty(fieldValue)){jedisAdapter.hmsetStr(key,fiel......
  • 绩效面谈:技巧与实践
    绩效面谈是组织中非常重要的管理活动之一,它不仅能帮助员工了解自己的工作表现,还能为管理者提供有效的反馈和指导。本文将探讨如何做绩效面谈,以提高员工的绩效和组织的整体表现。一、准备阶段确定面谈时间:选择一个合适的时间,确保所有相关人员都能参加。提前通知员工,以便他们能够......