当您在同一台计算机上的可执行文件上执行常规gdb会话时,您可以提供运行命令,它将再次启动该程序.
当您在嵌入式系统上运行gdb时,与命令target localhost:3210'一样,如何在不退出并重新启动gdb会话的情况下重新启动程序?
.NET BCL中是否有任何现有功能可以使用MethodInfo提供的信息在运行时打印方法的完整签名(就像您在Visual Studio ObjectBrowser中看到的那样 - 包括参数名称)?
因此,例如,如果查找String.Compare(),其中一个重载将打印为:
public static int Compare(string strA, int indexA, string strB, int indexB, int length, bool ignoreCase, System.Globalization.CultureInfo culture)
Run Code Online (Sandbox Code Playgroud)
请注意包含所有访问和范围限定符的完整签名以及包括名称的完整参数列表.这就是我要找的东西.我可以编写自己的方法,但如果可能的话,我宁愿使用现有的实现.
我想知道是否有任何方法可以在执行期间使用Visual Studio 2008更改变量的值?我知道我可以在Eclipse上做这个(放一个断点,添加一个观察者并编辑我想要的任何变量值)但是我还没有在VS上找到这个功能?
任何的想法?
谢谢.
就像在我们的项目中设置"将警告视为错误"以捕捉早期可能存在的问题一样,我希望有一个运行时异常来及早发现它们.
我最近有点担心这个问题,我很高兴能有这个问题.
可以吗?如果是,怎么样?
我的代码中有以下行:
System.Diagnostics.Debug.WriteLine("Title:" + title + "title[top]: " + title[top] + "title[sub]: " + title[sub]);
Run Code Online (Sandbox Code Playgroud)
当我调试时,我看到它会转到这一行,但当我在Visual Studio 2010中查看输出窗口时,即使它显示"Debug"并且我使用"debug> run"运行,我也看不到任何内容.为什么?
我需要调试一些JavaScript'我使用Chrome开发工具.我是JavaScript的新手(几天前刚开始学习),"我可以通过资源窗格设置断点".但在家里由于某种原因我不能这样做:点击后没有出现断点.
我有Chrome版本:26.0.1410.64米.
可能是这样的?
调试加载到R中的共享对象的最有效和最快捷的方法是什么,特别是在OS X Mavericks上?我主要对调试编译的Rcpp代码感兴趣.
我已经阅读了关于调试编译代码的R外部代码(http://cran.r-project.org/doc/manuals/R-exts.html#Debugging-compiled-code),这有利于使用gdb,但是gdb不是正式的小牛队支持.但是,似乎lldb是一个可行的替代方案吗?我找到了最有用的资源,用于研究如何在Dirk对此帖子的回复中调试R中的编译代码(Thanks Dirk!)(在Windows下调试(逐行)Rcpp生成的DLL).
我可以通过按照下面逐步明确的步骤来成功调试已编译的Rcpp代码,其他Rcpp新手可能会觉得这很有用(道歉的长度,但我认为最好是明确而不是省略和模糊).但是这个开发过程有点繁琐且耗时.
问题:
与我在下面的操作相比,是否有更快速和/或更简单的方法来调试已编译的Rcpp代码?
我是Rstudio的忠实粉丝,并且很乐意合并从该IDE创建的调试共享对象,所以如果有人知道如何做到这一点,我会有兴趣知道吗?Rstudio似乎使用属性,看起来下面的步骤4需要修改,因为编译后在临时目录中似乎没有.cpp文件(在我的示例中,没有"file5156292c0b48.cpp"文件)
步骤:
1)(一次性)转到〜/ .R目录(带有.的隐藏目录).创建一个名为"Makevars"的新文件,然后在其中添加该行CXXFLAGS=-g -O0 -Wall.
2)在终端中,键入R -d lldb以启动R. lldb现在将启动.
3)run在lldb命令行输入.这将启动R.
4)编译Rcpp代码并找到编译对象的位置.德克对上述帖子的回应显示了一种方法.这是我将在这里使用的一个例子.在R中运行以下命令:
library(inline)
fun <- cxxfunction(signature(), plugin="Rcpp", verbose=TRUE, body='
int theAnswer = 1;
int theAnswer2 = 2;
int theAnswer3 = 3;
double theAnswer4 = 4.5;
return wrap(theAnswer4);
')
Run Code Online (Sandbox Code Playgroud)
这将创建一个编译的共享对象和其他文件,可以通过在R中运行setwd(tempdir())和list.files()来找到.将有一个.cpp文件,如"file5156292c0b48.cpp"和.so文件,如" file5156292c0b48.so"
5)通过dyn.load("file5156292c0b48.so")在R命令行运行将共享对象加载到R中
6)现在我们要调试这个.so对象中的C++代码.点击回到lldb ctrl + c.现在我想在file5156292c0b48.cpp文件中的特定行设置一个断点.我通过打开另一个终端并查看file5156292c0b48.cpp中感兴趣的行号来找到正确的行号.假设它是第31行,它对应于theAnswer = 1中的行; 以上在我的例子中.然后我在lldb命令行输入:breakpoint set -f file5156292c0b48.cpp -l 31.调试器打印回来已设置断点和其他一些东西......
7)通过cont在lldb中运行返回到R (在我按下回车之前,R提示不会自动出现)并调用该函数. …
R中的调试模式有时会抛出以下错误:
Error in fBody[[i]] : no such index at level 4
Run Code Online (Sandbox Code Playgroud)
是什么导致这个?以及如何避免它?
当我在VS2013(Ultimate)中打开它时,我有一个解决方案可以正常工作,但是当我在VS2015(Enterprise)中打开它时,其中两个项目不会生成调试信息.
一个项目是MVC 5应用程序,另一个是类库.解决方案中的所有项目都设置为.net 4.5,并且所有项目都设置为调试模式
两个项目的高级设置都设置为完整并且看起来没有问题编译,但是当我在网站运行时打开Debug> Windows> Modules窗口时,这两个二进制文件的符号中包含"Binary not built with debug information"状态(解决方案中的每个其他二进制文件正确加载符号
我删除了bin/obj文件夹,清除了临时的asp.net文件,重新启动了VS和windows(10)并且没有运气
这会影响其他团队成员,因此它似乎不是我的环境的问题
另外,如果我在VS2013中编译,VS2015将毫无问题地使用pdb,它只是不会为自己生成它们
我假设这是VS2015中某处的设置/功能/错误,但我不知道还有什么我可以检查/更改以解决这个问题
编辑:Web项目的web.config设置为debug ="true",它不受配置转换的影响
我已经使用vscode很长一段时间了,就在今天我开始遇到这个奇怪的问题.以前如果我开始调试程序(F5),它将开始调试并在"调试控制台"中显示输出

但现在它在"终端"中启动调试器并输出到"调试控制台"我只想在"调试控制台"中输出(以前的默认行为)
请帮我把它设置回原来的样子
{
"version": "0.2.0",
"configurations": [{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}"
}
]
}
Run Code Online (Sandbox Code Playgroud)
launch.json
debugging ×10
c# ×4
.net ×2
breakpoints ×2
r ×2
asp.net-mvc ×1
data-binding ×1
embedded ×1
exception ×1
gdb ×1
python ×1
rcpp ×1
reflection ×1
rstudio ×1
wpf ×1