标签: debugging

从MethodInfo打印方法的完整签名

.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)

请注意包含所有访问和范围限定符的完整签名以及包括名称的完整参数列表.这就是我要找的东西.我可以编写自己的方法,但如果可能的话,我宁愿使用现有的实现.

.net c# reflection debugging

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

是否可以在执行期间更改变量的值?

我想知道是否有任何方法可以在执行期间使用Visual Studio 2008更改变量的值?我知道我可以在Eclipse上做这个(放一个断点,添加一个观察者并编辑我想要的任何变量值)但是我还没有在VS上找到这个功能?

任何的想法?

谢谢.

.net c# debugging breakpoints visual-studio

29
推荐指数
5
解决办法
4万
查看次数

printk()打印到哪里?

关于内核级别的printk()函数的一个快速问题,如果我调用它将消息打印到哪里?(我在i386 arch上使用Ubuntu并使用最新的内核下载)

找不到任何地方,

如果有人也可以指出我正确的方向为printk()函数的某种手册,它会很棒!

linux debugging linux-kernel

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

什么是有效的方法来调试R中加载的Rcpp编译代码(在OS X Mavericks上)?

调试加载到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新手可能会觉得这很有用(道歉的长度,但我认为最好是明确而不是省略和模糊).但是这个开发过程有点繁琐且耗时.

问题:

  1. 与我在下面的操作相比,是否有更快速和/或更简单的方法来调试已编译的Rcpp代码?

  2. 我是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提示不会自动出现)并调用该函数. …

debugging r rcpp rstudio osx-mavericks

29
推荐指数
2
解决办法
6294
查看次数

R:fBody [[i]]出错:4级没有这样的索引

R中的调试模式有时会抛出以下错误:

     Error in fBody[[i]] : no such index at level 4
Run Code Online (Sandbox Code Playgroud)

是什么导致这个?以及如何避免它?

debugging error-handling r

29
推荐指数
3
解决办法
7899
查看次数

如何配置log4net以使log.IsDebugEnabled为true?

我试图在Visual Studio 2005的ASP.NET应用程序中使用log4net.我已经声明了一个logger实例,如下所示:

Private Shared ReadOnly log As ILog = LogManager.GetLogger("")
Run Code Online (Sandbox Code Playgroud)

我试图以下列方式使用它:

If log.IsDebugEnabled Then
   log.Debug("Integration Services Constructed")
End If
Run Code Online (Sandbox Code Playgroud)

这是我的配置:

<log4net>

    <root>
        <level value="DEBUG" />
        <appender-ref ref="RollingFileAppender" />
    </root>

    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
        <file value="..\\logs\\logfile.log"/>
        <appendToFile value="true"/>
        <rollingStyle value="Size"/>
        <maxSizeRollBackups value="10"/>
        <maximumFileSize value="1MB"/>
        <staticLogFileName value="true"/>
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
        </layout>
        <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="DEBUG" />
            <param name="LevelMax" value="FATAL" />
        </filter>
    </appender>

</log4net>
Run Code Online (Sandbox Code Playgroud)

不幸的是,log.IsDebugEnabled总是假的.
如何配置log4net以便我只能记录调试消息?

vb.net debugging configuration log4net

28
推荐指数
3
解决办法
3万
查看次数

在浏览器中运行时,请参阅Flash的trace()

trace()在任何浏览器中运行时,查看Flash/Flex电影输出的简单方法是什么?

debugging flash trace actionscript browser-plugin

28
推荐指数
3
解决办法
5万
查看次数

如何使调试代码不再生产?

它发生在我们最好的人身上.

替代文字

特别是在处理没有内置调试功能(如断点和监视变量)的语言时,这些错误会让开发人员感到厌烦.调试代码,警报和Response.Writes,显示在生产代码中.

如何将调试问题与javascript,php或vbscript中的功能代码分开?您如何确保那些调试更改永远不会进入生产环境?

javascript php debugging vbscript

28
推荐指数
2
解决办法
2414
查看次数

以编程方式控制Javascript中的断点?

是否可以在任何浏览器中使用任何插件以编程方式启用或禁用代码中的断点?

我已经知道设置条件断点了,但我真的很想通过代码设置它们.

javascript debugging breakpoints

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

有没有办法强制Eclipse自动重启远程调试(在侦听模式下)?

我正在使用Eclipse远程调试处于调试客户端模式的应用程序(即-Xrunjdwp:transport=dt_socket,address=127.0.0.1:8000jvm启动参数,并且Eclipse在调试器设置中选择了"套接字侦听"模式,而不是默认的"套接字连接"模式).

问题是,一旦远程应用程序启动,就连接到Eclipse调试器,最后退出...... Eclipse调试器停止侦听指定端口上的连接.

只是一个烦恼,但每次我需要调试应用程序时都不必一直点击Eclipse中的调试按钮(这显然需要从Eclipse外部启动).有什么想法或工具可以让它更加自动化吗?

java eclipse debugging remote-debugging

28
推荐指数
1
解决办法
2304
查看次数