标签: debugging

是否可以"反编译"Windows .exe?或者至少查看大会?

我的一个朋友从Facebook下载了一些恶意软件,我很想知道它的作用而不会感染自己.我知道你不能真正反编译.exe,但我至少可以在Assembly中查看它或附加调试器吗?

编辑说它不是.NET可执行文件,没有CLI标头.

debugging assembly winapi decompiling

222
推荐指数
10
解决办法
51万
查看次数

将IntelliJ IDEA调试器附加到正在运行的Java进程

是否可以将IntelliJ IDEA调试器附加到正在运行的Java进程?如果有,怎么样?

debugging intellij-idea

220
推荐指数
4
解决办法
16万
查看次数

是什么让Visual Studio调试器停止评估ToString覆盖?

环境:Visual Studio 2015 RTM.(我没有尝试旧版本.)

最近,我一直在调试我的一些Noda Time代码,我注意到当我有一个类型的局部变量NodaTime.Instant(structNoda Time中的一个中心类型)时,"Locals"和"Watch"窗口似乎没有调用它的ToString()覆盖.如果我ToString()在监视窗口中明确调用,我会看到相应的表示,但我只是看到:

variableName       {NodaTime.Instant}
Run Code Online (Sandbox Code Playgroud)

这不是很有用.

如果我更改覆盖以返回一个常量字符串,那么该字符串显示在调试器中,因此它显然能够接收它 - 它只是不想在"正常"状态下使用它.

我决定在一个小的演示应用程序中本地重现这个,这就是我想出的.(请注意,在这篇文章的早期版本中,DemoStruct是一个类,DemoClass根本不存在 - 我的错,但它解释了一些看起来很奇怪的评论......)

using System;
using System.Diagnostics;
using System.Threading;

public struct DemoStruct
{
    public string Name { get; }

    public DemoStruct(string name)
    {
        Name = name;
    }

    public override string ToString()
    {
        Thread.Sleep(1000); // Vary this to see different results
        return $"Struct: {Name}";
    }
}

public class DemoClass
{
    public string …
Run Code Online (Sandbox Code Playgroud)

c# debugging visual-studio-2015

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

Visual Studio拒绝忘记断点?

Visual Studio会记住以前调试会话中的断点,这很棒.

但是,当我正在调试时,我通过点击它来清除其中一个"旧"断点,它只是暂时删除.我的意思是下次调试时,我认为我删除的断点又回来了.

这是非常烦人的 - 有没有设置让它不这样做?

debugging breakpoints visual-studio

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

有一个很好的Valgrind替代Windows吗?

当我发现它仅适用于Linux时,我正在研究Valgrind以帮助改进我的C编码/调试 - 我没有其他需要或兴趣将我的操作系统转移到Linux所以我想知道是否有一个同样好的Windows程序.

c windows debugging valgrind memory-leaks

210
推荐指数
12
解决办法
30万
查看次数

在Visual Studio C++中,内存分配表示是什么?

在Visual Studio中,我们都有"baadf00d",在运行时在C++中检查调试器中的变量时看到过"CC"和"CD".

根据我的理解,"CC"仅处于DEBUG模式,以指示内存何时是new()或alloc()并且是单元化的."CD"代表删除或免费内存.我在RELEASE版本中只看过"baadf00d"(但我可能错了).

偶尔会遇到内存泄漏,缓冲区溢出等问题,这些信息会派上用场.

是否有人能够指出何时以何种模式将内存设置为可识别的字节模式以进行调试?

debugging visual-c++

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

如何传递参数并将stdin从文件重定向到程序在gdb中运行?

我经常运行一个程序:

./a.out arg1 arg2 <file
Run Code Online (Sandbox Code Playgroud)

我想用gdb调试它.

我知道set args功能,但只能从gdb提示符.

c++ debugging gdb

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

Eclipse调试器总是在ThreadPoolExecutor上阻塞而没有任何明显的异常,为什么?

我正在研究我在Eclipse上的常规项目,它是一个J2EE应用程序,由Spring,Hibernate等构成.我正在使用Tomcat 7(没有特别的原因,我没有利用任何新功能,我只是想尝试一下).每次我调试我的应用程序时,都会发生Eclipse调试器弹出,就像它已到达断点一样,但事实并非如此,实际上它停在Java源文件上ThreadPoolExecutor.控制台上没有堆栈跟踪,它只是停止.然后,如果我点击继续,它继续,应用程序完美.这是调试器窗口中显示的内容:

Daemon Thread ["http-bio-8080"-exec-2] (Suspended (exception RuntimeException)) 
    ThreadPoolExecutor$Worker.run() line: 912   
    TaskThread(Thread).run() line: 619
Run Code Online (Sandbox Code Playgroud)

我真的无法解释这个,因为我根本就没用ThreadPoolExecutor.必须是来自Tomcat,Hibernate或Spring的东西.这非常烦人,因为我总是要在调试过程中恢复.

有线索吗?

java eclipse debugging tomcat

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

是否有适用于Linux的C++ gdb GUI?

简而言之:有没有人知道gdb的GUI会使它与更新版本的Visual C++中的功能集相提并论?

详细说明:作为一个花了很多时间在Windows上编程的人,每当我在Linux中编写C++代码时,我发现的一个更大的绊脚石就是使用命令行gdb调试任何东西需要花费我几倍的时间. Visual Studio,它似乎没有通过练习变得更好.有些事情只是更容易或更快地以图形方式表达.

具体来说,我正在寻找一个GUI:

  • 处理所有基础知识,例如踩到代码,观察变量和断点
  • 理解并可以显示复杂和嵌套的C++数据类型的内容
  • 不会被混淆,并且最好能够在显示相关信息(如参数类型)的同时智能地逐步执行模板化代码和数据结构
  • 可以处理线程应用程序并在不同线程之间切换以单步执行或查看状态
  • 除了在gdb中启动程序之外,还可以处理附加到已启动的进程或读取核心转储

如果这样的程序不存在,那么我想听听人们对于至少满足一些要点的程序的经验.有没有人有任何建议?

编辑:
列出可能性很好,我将采取我能得到的,但如果你可以在你的回答中包含它会更有帮助:
(a)你是否真的使用过这个GUI,如果有的话,你有什么积极/消极的反馈.
(b)如果您知道,上述哪些功能不受支持

列表很容易获得,像这样的网站很棒,因为你可以了解人们的应用程序的个人经验.

c++ linux debugging gdb

208
推荐指数
15
解决办法
10万
查看次数

如何检测IE11?

当我想检测IE时,我使用此代码:

function getInternetExplorerVersion()
{
  var rv = -1;
  if (navigator.appName == 'Microsoft Internet Explorer')
  {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  return rv;
}
function checkVersion()
{
  var msg = "You're not using Internet Explorer.";
  var ver = getInternetExplorerVersion();

  if ( ver > -1 )
  {
    msg = "You are using IE " + ver;
  }
  alert( msg );
}
Run Code Online (Sandbox Code Playgroud)

但IE11正在返回"你没有使用Internet Explorer".我该如何检测它?

debugging internet-explorer browser-detection forward-compatibility internet-explorer-11

207
推荐指数
7
解决办法
22万
查看次数