标签: debugging

如何修复 Flutter 中的“解除绑定时抛出异常,java.lang.IllegalArgumentException:服务未注册:lp@9f7d4ca”异常?

我的调试控制台向我展示了这个:

W/ConnectionTracker(17934): Exception thrown while unbinding
W/ConnectionTracker(17934): java.lang.IllegalArgumentException: Service not registered: lp@9f7d4ca
W/ConnectionTracker(17934):     at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:1557)
W/ConnectionTracker(17934):     at android.app.ContextImpl.unbindService(ContextImpl.java:1692)
W/ConnectionTracker(17934):     at android.content.ContextWrapper.unbindService(ContextWrapper.java:717)
W/ConnectionTracker(17934):     at ci.f(:com.google.android.gms.dynamite_measurementdynamite@204215067@20.42.15 (100408-0):1)
W/ConnectionTracker(17934):     at ci.d(:com.google.android.gms.dynamite_measurementdynamite@204215067@20.42.15 (100408-0):2)
W/ConnectionTracker(17934):     at lq.D(:com.google.android.gms.dynamite_measurementdynamite@204215067@20.42.15 (100408-0):10)
W/ConnectionTracker(17934):     at lc.a(:com.google.android.gms.dynamite_measurementdynamite@204215067@20.42.15 (100408-0):2)

Run Code Online (Sandbox Code Playgroud)

我不知道我该怎么做。

java debugging android flutter

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

如何在Xcode调试器中查看NSDictionary变量的内容?

有没有办法通过Xcode调试器查看NSDictionary变量的键/值对?以下是在变量窗口中完全展开时的信息范围:

Variable  Value      Summary
jsonDict  0x45c540   4 key/value pairs
 NSObject {...}
  isa     0xa06e0720
Run Code Online (Sandbox Code Playgroud)

我期待它向我展示字典的每个元素(类似于数组变量).

debugging xcode cocoa objective-c

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

Visual Studio中缓慢的调试问题

在我的Visual Studio中,即使我只是在C#控制台应用程序中写了一行返回,在按F5执行实际代码后我需要一分钟(我的意思是在按下后在单个return语句上停止的时间F5 - 我在Main函数的return语句中设置断点).我想知道出了什么问题?任何检查清单?谢谢!

我在Windows Server 2003 x64上使用Visual Studio 2008 VSTS版本和调试.

乔治,提前谢谢

debugging performance visual-studio-2008 visual-studio

85
推荐指数
8
解决办法
9万
查看次数

如何找到C++中抛出异常的位置?

我有一个程序在某处抛出未捕获的异常.我得到的只是一个抛出异常的报告,并没有关于它被抛出的信息.编译为包含调试符号的程序似乎不合逻辑,不通知我在代码中生成异常的位置.

有没有办法告诉我的地方是例外,从短期在gdb设置"抓扔",并呼吁每一个抛出的异常回溯的到来?

c++ debugging exception-handling

85
推荐指数
5
解决办法
6万
查看次数

"仅调试"代码,只有在"打开"时才能运行

我想添加一些C#"仅调试"代码,只有在调试人员请求它时才会运行.在C++中,我曾经做过类似以下的事情:

void foo()
{   
  // ...
  #ifdef DEBUG
  static bool s_bDoDebugOnlyCode = false;
  if (s_bDoDebugOnlyCode)
  {
      // Debug only code here gets executed when the person debugging 
      // manually sets the bool above to true.  It then stays for the rest
      // of the session until they set it to false.
  }
  #endif
 // ...
}
Run Code Online (Sandbox Code Playgroud)

我不能在C#中完全相同,因为没有本地静态.

问题:在C#中实现这一目标的最佳方法是什么?

  1. 我应该使用带有C#预处理器指令的私有类静态字段(#if /#endif DEBUG)吗?
  2. 我应该使用Conditional属性(保存代码),然后使用私有类静态字段(不包含 C#预处理器指令#if /#endif DEBUG?).
  3. 别的什么?

c# debugging preprocessor

85
推荐指数
5
解决办法
9万
查看次数

如何使backtrace()/ backtrace_symbols()打印函数名称?

特定于Linux backtrace()backtrace_symbols()允许您生成程序的调用跟踪.但是,它只打印功能地址,而不是我的程序的名称.如何让它们也打印出函数名?我试着编译程序-g以及-ggdb.下面的测试用例打印出来:


    BACKTRACE ------------
    ./a.out() [0x8048616]
    ./a.out() [0x8048623]
    /lib/libc.so.6(__libc_start_main+0xf3) [0x4a937413]
    ./a.out() [0x8048421]
    ----------------------
    

我希望前两个项目也显示函数名称,foomain

码:

#include <execinfo.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <stdlib.h>

static void full_write(int fd, const char *buf, size_t len)
{
        while (len > 0) {
                ssize_t ret = write(fd, buf, len);

                if ((ret == -1) && (errno != EINTR))
                        break;

                buf += (size_t) ret;
                len -= (size_t) ret;
        }
}

void print_backtrace(void)
{
        static const …
Run Code Online (Sandbox Code Playgroud)

c linux debugging backtrace

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

Xcode调试 - 显示图像

我喜欢使用Xcode调试器.您可以查看变量的值,甚至可以更改它.

但我可以以某种方式显示图像变量引用的图像吗?我知道我可以看到它的原始字节,但是显示带有内容的窗口会更加人性化.

Xcode可能不支持这个.也许有一个外部工具可以帮助显示图像?

debugging xcode

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

Wireshark vs Firebug vs Fiddler - 利弊?

最近,我遇到了一个CGI应用程序没有响应的问题.症状是Firefox显示:

从localhost传输数据...

但问题是我看不到来自Firebug的Net面板的任何流量,浏览器只是永远停留在同一个舞台上.

我正在考虑调试此应用程序的方法,但我看不到源代码或其任何已编译的Java/C++组件,因此我认为HTTP网络级别的诊断是一个良好的开端.

我对Fiddler和Wireshark没什么经验,只是想知道他们会在HTTP网络级别获得更好的反馈/统计数据吗?我听说Wireshark很先进,但可能会引入大量的流量,所以系统管理员不太喜欢它.在这个时候,我认为Firebug并没有真正向我展示足够的信息.

我需要收集信息,以便我可以转发给客户作为证据.

debugging firebug web-applications fiddler wireshark

84
推荐指数
6
解决办法
9万
查看次数

Nuget的最佳实践:调试还是发布?

目前,我将发布版本与Nuget一起打包到nuget.org的官方版本,但是我使用Nuget将调试版本打包为符号源推送到symbolsource.org.

编辑:( Jon Skeet,与Noda Time开发有一些偏见)

NuGet现在支持推送到NuGet gallery symbolsource.org(或类似的服务器),如文档所述.不幸的是,这里有两个相互矛盾的要求:

  • 当只使用库而不需要调试时,你真的想要一个发布版本.毕竟,这就是发布版本的用途.
  • 在调试库以进行诊断时,您确实需要一个禁用所有适当优化的调试版本.毕竟,那就是调试构建的目的.

这没关系,但是NuGet没有(据我所知)允许在同一个包中以有用的方式发布发布和调试版本.

所以,选择是:

  • 将调试版本分发给每个人(如文档中的示例所示),并使用任何大小和性能命中.
  • 将发布版本分发给每个人,并且稍微有点受损的调试体验.
  • 寻找一个非常复杂的分发策略,可能提供单独的发布和调试包.

前两个真正归结为调试和发布版本之间差异的影响......虽然值得注意的是,想要进入库代码之间也存在很大差异,因为你想要检查一些行为,并且想要调试库的代码,因为你相信你发现了一个bug.在第二种情况下,最好将库的代码作为Visual Studio解决方案并以这种方式进行调试,因此我不会过多关注这种情况.

我的诱惑是继续发布版本,期望相对较少的人需要调试,并且那些不会受发布版本中的优化影响很大的人.(无论如何,JIT编译器完成了大部分优化.)

那么,我们还没有考虑过其他选择吗?是否有其他考虑因素可以达到平衡?将NuGet软件包推向SymbolSource是否足够新,"最佳实践"真的还没有建立?

debugging release visual-studio nuget

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

gdb:如何打印当前行或查找当前行号?

list 命令打印一组行,但我需要一行,我在哪里,可能发生错误.

debugging gcc gdb

84
推荐指数
5
解决办法
8万
查看次数