标签: visual-studio-debugging

是否可以使用Visual Studio Debugger的Watch窗口观察内存位置的值?

是的,我知道有四个内存窗口,但我更喜欢在监视窗口中显示单个值,我想知道是否可以在监视窗口中指定要监视的内存位置.

将地址单独放置只是以十六进制计算到地址.

debugging visual-studio-2010 visual-studio visual-studio-debugging

24
推荐指数
1
解决办法
2万
查看次数

如何调试从外部应用调用的类库?

有一个执行C#脚本的外部工作流,可以使用DLL文件(我的类库).

是否可以将调试附加到我的类库项目中,这样一旦这个WF调用它就会遇到断点?

谢谢

c# debugging class-library visual-studio visual-studio-debugging

24
推荐指数
1
解决办法
4万
查看次数

Console.WriteLine不会输出到VS 2017中的输出窗口

简而言之:Console.WriteLine在VS 2015中运行正常,但它在VS 2017中不再起作用了.

详细说明:我有一些使用Console.Write的VB代码可以在VS 2015中输出ok,即使配置为使用Start Debugging启动的Release(与Debug相比)(与Start Without Debugging相反).

今天我升级到了VS 2017(社区版),但是Console.Write在与VS 2015相同的条件下不再工作了.

也许我过去在VS 2015中做了一些配置,但我不记得了.

有人可以帮我如何在相同条件下将Console.Write输出到Output Window(使用Start Debugging启动Release配置).

Obs:当你处于Debug配置时,Debug.Writeline工作正常(输出到Output Window).当您处于Release配置时,Debug.Writeline,即使您使用Start Debugging启动,也不会输出(到Output Window).需求(以及问题)是在Release配置中的Start Debugging的上下文中.

visual-studio-debugging visual-studio-2017

23
推荐指数
1
解决办法
2万
查看次数

如果已经命中断点A,则启用断点B.

我经常发现自己在代码中的某处设置了一个断点,并在遇到这个断点时手动启用一个或多个断点.典型的情况是我在调试单元测试时并不关心前面的测试.

void testAddZeros()
{
  Number a(0);
  Number b(0);
  Number result = a.add(b);
  assert((a + b) == Number(0))
}
void testAddOnes()
{
  Number a(1);
  Number b(1);
  Number result = a.add(b);
  assert((a + b) == Number(2));
}
void testAddNegativeNumber()
{
  Number a(1);
  Number b(-1)
  Number result = a.add(b);
  assert((a + b) == Number(0));
}
Run Code Online (Sandbox Code Playgroud)

想象一下,如果testAddZeros()并且testAddOnes()运行良好,但是testAddNegativeNumber().在这种情况下,设置断点Number result = a.add(b);将是开始调试的自然场所.现在想象一下,错误位于内部深处Number::add,所以我们并没有真正对早期发生的事情感兴趣Numbers::add.我想要做的是在内部设置一个断点Numbers::add,只有当我在testAddNegativeNumber()-test 中时才触发.

在遇到断点B时有没有办法自动启用断点A

.net breakpoints visual-studio visual-studio-debugging

22
推荐指数
1
解决办法
1605
查看次数

在Visual Studio中调试时启用内存使用中的实时图形

不知何故,我从Visual Studio诊断工具中丢失了实时图表.下面是我当前的调试屏幕,显示我看不到内存和CPU使用情况的实时图表:

在此输入图像描述

在此输入图像描述

在哪里我正在寻找这个:

在此输入图像描述

我尝试在以下地方进行在线探索:

  1. Debug> Profiler> Performance Explorer
  2. 工具>选项>调试
  3. 工具>选项> IntelliTrace

有谁知道如何启用内存和CPU使用情况实时图表?

cpu-usage visual-studio visual-studio-debugging debug-diagnostic-tool

22
推荐指数
4
解决办法
6158
查看次数

Vector'no operator"[]"匹配Visual Studio watch中的这些操作数错误

在Visual Studio 2012中单步执行以下示例代码时:

std::vector<int> test;
test.resize(1);
test[0] = 4;
Run Code Online (Sandbox Code Playgroud)

我可以设置一个测试手表并检查它的第0个元素.但是,如果我在test [0]上设置一个监视器,我会得到错误'no operator"[]"匹配这些操作数':

在此输入图像描述

如何直接检查test [0]的值?

c++ vector visual-studio visual-studio-debugging

21
推荐指数
2
解决办法
8016
查看次数

调试器中"base"的属性值

我正在调试以下代码:

class A 
{
    public virtual string X => "A";
}

class B : A
{
    public bool OwnX { get; set; } = true;
    public override string X
        => OwnX ? "B" : base.X; // (o)
}

class Program
{
    static void Main() => Console.WriteLine(new B().X);
}
Run Code Online (Sandbox Code Playgroud)

我在标有的线上有一个断点(o).当断点命中时,我正在尝试评估base.X并获得其值"B":

strage base.X值?

问题是:为什么不"A"呢?

.net c# visual-studio-debugging

21
推荐指数
1
解决办法
626
查看次数

Visual Studio 2019 中的 .Net Core 项目缺少“初始化与项目的交互”

在 VS 2019 中,当面向 .NET Core 时,缺少在 C# 交互式控制台上初始化项目的选项。

在此处输入图片说明

VS 2017 中也缺少该选项,并且有一个与 VS 2017 相关的问题。但是,此问题的答案主要确认了该问题,但并未提供解决方案。

有谁知道是否存在技术限制,因此此功能对于 .NET Core 根本不可行?任何人都有一个很好的解决方法来手动初始化项目(使用完整的上下文)?

visual-studio-debugging .net-core visual-studio-2019

21
推荐指数
1
解决办法
2463
查看次数

无法在VS2012 RC中启动调试器

组态:

  • Windows 7,64位
  • Microsoft Visual Studio Professional 2012 RC版本11.0.50522.1 RCREL
  • 以管理员模式运行VS.
  • VS解决方案包含一个Web应用程序,目标:.NET Framework 4.

当我按F5时,解决方案构建......并且没有其他事情发生.

  • 发生在IIS或VS Dev Server上.
  • 发生在"任何CPU"或"x86"的平台目标

相反,我使用Debug/Attach to Process ...菜单,几秒钟后,我得到:

  • "调试器很忙" - 调试器正在执行一个比预期时间更长的远程操作.此对话框一直保持到我单击"终止"并确认.
  • 然后出现此对话框:"Microsoft Visual Studio""无法连接到名为[COMPUTER NAME]的Microsoft Visual Studio远程调试监视器.与Visual Studio远程调试器的网络连接已关闭."
  • 单击"确定"后,最终显示"正常""附加到进程"窗口.其中,"可用进程"列表为空.

有什么建议或线索吗?

我想知道的要点:

  • 为什么进程列表为空?如果它看不到任何进程,调试器就无法工作也就不足为奇了.
  • 当它只是访问本地计算机时,为什么要尝试进行"远程"调试?

(Cross发表于social.msdn)

visual-studio-debugging visual-studio-2012

20
推荐指数
2
解决办法
4万
查看次数

在Visual Studio 2012中调试C++代码时跳过STL代码?

在Visual Studio 2012中使用C++调试器(native,x64)时是否可以跳过STL代码?通常在调试C++代码时我会进入STL代码.我希望Microsoft提供的STL代码是正确的 - 我对调试它不感兴趣 - 我只对调试我自己的(自编)代码感兴趣.

对于在此功能设置断点时的instacne:

foo(std::make_shared<int>(6));
Run Code Online (Sandbox Code Playgroud)

其中foo定义为:

void foo(std::shared_ptr<int> x)
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)

我不想深入了解std :: make_shared的细节 - 我想要的是直接进入函数foo.但这似乎不可能.如果到达断点at foo(std::make_shared<int>(6));并按下'Step Into'按钮(或F11),它首先进入'memory'头文件(STL):

在此输入图像描述

所以我再次按下'Step Out'按钮而不是再按'Step Into'按钮进入该foo功能.我想要的是跳过STL相关参数初始化或直接跳转到函数的可能性.

c++ stl visual-studio-debugging visual-studio-2012

20
推荐指数
1
解决办法
5190
查看次数