我的调试控制台向我展示了这个:
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)
我不知道我该怎么做。
有没有办法通过Xcode调试器查看NSDictionary变量的键/值对?以下是在变量窗口中完全展开时的信息范围:
Variable Value Summary
jsonDict 0x45c540 4 key/value pairs
NSObject {...}
isa 0xa06e0720
Run Code Online (Sandbox Code Playgroud)
我期待它向我展示字典的每个元素(类似于数组变量).
在我的Visual Studio中,即使我只是在C#控制台应用程序中写了一行返回,在按F5执行实际代码后我需要一分钟(我的意思是在按下后在单个return语句上停止的时间F5 - 我在Main函数的return语句中设置断点).我想知道出了什么问题?任何检查清单?谢谢!
我在Windows Server 2003 x64上使用Visual Studio 2008 VSTS版本和调试.
乔治,提前谢谢
我有一个程序在某处抛出未捕获的异常.我得到的只是一个抛出异常的报告,并没有关于它被抛出的信息.编译为包含调试符号的程序似乎不合逻辑,不通知我在代码中生成异常的位置.
有没有办法告诉我的地方是例外,从短期在gdb设置"抓扔",并呼吁每一个抛出的异常回溯的到来?
我想添加一些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#中实现这一目标的最佳方法是什么?
特定于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]
----------------------
我希望前两个项目也显示函数名称,foo和main
码:
#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) 我喜欢使用Xcode调试器.您可以查看变量的值,甚至可以更改它.
但我可以以某种方式显示图像变量引用的图像吗?我知道我可以看到它的原始字节,但是显示带有内容的窗口会更加人性化.
Xcode可能不支持这个.也许有一个外部工具可以帮助显示图像?
最近,我遇到了一个CGI应用程序没有响应的问题.症状是Firefox显示:
从localhost传输数据...
但问题是我看不到来自Firebug的Net面板的任何流量,浏览器只是永远停留在同一个舞台上.
我正在考虑调试此应用程序的方法,但我看不到源代码或其任何已编译的Java/C++组件,因此我认为HTTP网络级别的诊断是一个良好的开端.
我对Fiddler和Wireshark没什么经验,只是想知道他们会在HTTP网络级别获得更好的反馈/统计数据吗?我听说Wireshark很先进,但可能会引入大量的流量,所以系统管理员不太喜欢它.在这个时候,我认为Firebug并没有真正向我展示足够的信息.
我需要收集信息,以便我可以转发给客户作为证据.
目前,我将发布版本与Nuget一起打包到nuget.org的官方版本,但是我使用Nuget将调试版本打包为符号源推送到symbolsource.org.
编辑:( Jon Skeet,与Noda Time开发有一些偏见)
NuGet现在支持推送到NuGet gallery 和 symbolsource.org(或类似的服务器),如文档所述.不幸的是,这里有两个相互矛盾的要求:
这没关系,但是NuGet没有(据我所知)允许在同一个包中以有用的方式发布发布和调试版本.
所以,选择是:
前两个真正归结为调试和发布版本之间差异的影响......虽然值得注意的是,想要进入库代码之间也存在很大差异,因为你想要检查一些行为,并且想要调试库的代码,因为你相信你发现了一个bug.在第二种情况下,最好将库的代码作为Visual Studio解决方案并以这种方式进行调试,因此我不会过多关注这种情况.
我的诱惑是继续发布版本,期望相对较少的人需要调试,并且那些不会受发布版本中的优化影响很大的人.(无论如何,JIT编译器完成了大部分优化.)
那么,我们还没有考虑过其他选择吗?是否有其他考虑因素可以达到平衡?将NuGet软件包推向SymbolSource是否足够新,"最佳实践"真的还没有建立?