标签: debugging

如何在GDB中获取内存地址的符号名称?

例如,我知道0x46767f0属于NSString*,有什么方法可以找出NSString是什么来帮助我找到一些我想要的错误?

memory debugging gdb

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

'ab'程序在收到大量请求后会冻结,为什么?

每当我使用'ab'对Web服务器进行基准测试时,它会在发送大量请求后冻结一段时间,但仅在20秒左右后继续.

考虑以下用Ruby编写的HTTP服务器模拟器:

require 'socket'

RESPONSE = "HTTP/1.1 200 OK\r\n" +
           "Connection: close\r\n" +
           "\r\n" +
           "\r\n"

buffer = ""
server = TCPServer.new("127.0.0.1", 3000)  # Create TCP server at port 3000.
server.listen(1024)                        # Set backlog to 1024.
while true
    client = server.accept             # Accept new client.
    client.write(RESPONSE)             # Write a stock "HTTP" response.
    client.close_write                 # Shutdown write part of the socket.
    client.read(nil, buffer)           # Read all data from the socket.  
    client.close                       # Close it.
end
Run Code Online (Sandbox Code Playgroud)

然后我按如下方式运行ab:

ab -n 45000 -c 10 …
Run Code Online (Sandbox Code Playgroud)

sockets debugging networking throttling apachebench

37
推荐指数
2
解决办法
7457
查看次数

Xcode 4无法表示崩溃日志

我刚刚将我的Xcode更新为4.0.1.现在我对从我的测试仪甚至是我的手机收到的崩溃日志的符号表有疑问.

当我构建AdHoc发行版时,我正在使用"Arhive"方案,然后我创建了*.ipa文件,用我的开发人员凭据唱出来.

这是问题吗?我找不到这些AdHoc版本的dSym文件.

iphone debugging xcode cocoa-touch adhoc

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

如何在Chrome中复制观看的javascript变量?

我在javascript中设置了断点,并使用Chrome测试了一些代码.我还为该值添加了一个监视表达式.

Chrome会在断点处中断并显示该值.但是值很长,并且不会全部显示.我将窗口分隔符向左移动,但它在屏幕中间停止.当我双击被监视的变量时,它想要编辑表达式.当我单击并拖动它时,它会选择可见文本,但不是全部.右键单击无效.

这就是我所看到的

url: "m=mtgoxUSD&SubmitButton=Draw&r=&i=&c=0&s=&e=&Prev=&Next=&t=S&b=&a1=&m1=10&a2=&m2=25&x=0...
Run Code Online (Sandbox Code Playgroud)

我想复制整个表达式而不是...最终.我怎样才能做到这一点?

javascript debugging google-chrome copy-paste

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

找出我的应用程序当前在Visual Studio的调试模式下运行的代码行

当我使用Visual Studio在调试模式下运行应用程序时,有没有办法可以找出当前正在处理的代码行?我的意思是,有一种工具有点像设置断点,但你不必设置断点 - 你可以在任何时间点找出正在执行的代码行?

原因是,有时您可能想要在应用中调试间歇性挂起.如果您在调试模式下运行,并且您的应用程序挂起,那么立即找出它上次处理的代码行是有用的,而无需通过设置断点或跟踪调用来提前计划.

debugging visual-studio

37
推荐指数
1
解决办法
8535
查看次数

GDB:如何列出用于编译的所有源文件

项目的新手,有多个源文件用于编译,一些"可能"是动态库,在运行时加载.使用"GDB"调试可执行文件时,是否有命令列出用于构建可执行文件的所有源文件(静态).一旦我拥有所有的源文件,我就很容易设置断点,列出函数等.我找不到在GDB中执行它的命令(我确定应该有一个).在DDD(基于gui的gdb)中,有一个Menu:File-> List,它列出了所有使用的源文件和用于构建可执行文件的静态库.不幸的是,对于基于命令行的调试器(GDB),我找不到等效的命令.

debugging gdb ddd-debugger

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

Android Studio步入错误的sdk源

我有以下build.gradle设置.

compileSdkVersion 21
buildToolsVersion '21.1.1'

defaultConfig {
    minSdkVersion 18
    targetSdkVersion 21
}
Run Code Online (Sandbox Code Playgroud)

问题是,当我在KitKat设备(Genymotion或Device上的19)上进入Android SDK源时,它仍然坚持步入Android-21源而不是19.

更改上述任何设置只会破坏我的应用程序的编译,因为我有v21代码.所有19调用适当的保护和代码工作在19,只是源代码衔接不正确.

提前干杯Stack Overflow兄弟姐妹们!

debugging android android-studio

37
推荐指数
3
解决办法
8031
查看次数

从调试过程MainModule获取符号

我开始用C#编写调试器,以调试我的操作系统上的任何进程.目前,它只能处理断点(HW,SW和内存),但现在我想显示进程的操作码.

我的第一次尝试是使用nidsasm(NASM),但这不合适,因为启动后a.Net应用程序汇编程序指令与ndisasm(使用CheatEngine测试)不同.

所以我搜索了一段时间,发现dbghelp.dll中的一些方法,可以调用它们列出所有加载的模块和符号(加上基地址).好吧,我的尝试是,用SharpDisasm分别拆解所有模块.

ProcessModuleCollection modules = ProcessData.Instance.MPMR.ReadProcess.Modules;用来获取进程的所有加载模块.这非常有效.

现在我尝试加载MainModule的符号,但此时,我坚持实现.我用p/Invoke和SymInitialize等其他必要的函数实现了SymEnumSymbols函数.

当我使用例如"User32.dll"的BaseAddress调用它时,所有符号都打印得很完美,但对于MainModule,我没有得到任何符号.

这是来自CheatEngine的截图: 从Cheat Engine获得的符号

正如你所看到的,有像"Form1_Load"这样的符号,我的实现并没有这些符号.

这是必要的代码示例:

if (!DebugApi.SymInitialize(ProcessData.Instance.MPMR.M_hProcess, null, false))
{
    var err = Marshal.GetLastWin32Error();

    //throw new Exception("GetMemoryInfo failed : GetLastError() : " + new Win32Exception(err).Message);
    Console.WriteLine("GetMemoryInfo failed : GetLastError() : " + new Win32Exception(err).Message);
    return;
}

if (!DebugApi.SymEnumSymbols(ProcessData.Instance.MPMR.M_hProcess, (ulong)ProcessData.Instance.MPMR.ReadProcess.MainModule.BaseAddress, "!", DebugApi.EnumSyms, IntPtr.Zero))
{
    var err = Marshal.GetLastWin32Error();

    //throw new Exception("GetMemoryInfo failed : GetLastError() : " + new Win32Exception(err).Message);
    Console.WriteLine("GetMemoryInfo failed : GetLastError() : " + new Win32Exception(err).Message);
    return;
} …
Run Code Online (Sandbox Code Playgroud)

c# debugging pinvoke debug-symbols

37
推荐指数
1
解决办法
1333
查看次数

无法在Android设备上调试应用程序 - Android Studio 2.0

在我将android studio更新为2.0之后,我无法在我的设备上调试应用程序(华硕Zenphone 2).在Android工作室中单击调试图标后,我在调试选项卡中看到以下消息.

Android Studio UI中调试选项卡中的消息

---------------------------------------------------------------
Waiting for application to come online: packagename
Waiting for application to come online: packagename
Waiting for application to come online: packagename
Waiting for application to come online: packagename
Run Code Online (Sandbox Code Playgroud)

我一直看到Alert Dialog标题为"Waiting for Debugger"和Force close按钮.

我搜索了但似乎只有两个谷歌的结果消息.

我重启Android工作室,检查手机上的开发者设置......

有没有人遇到过这个问题.请帮我.我无法运行模拟器,因为我的mac太迟了.先感谢您.

debugging android android-studio-2.0

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

Xcode控制台打印奇怪的错误

它是在将项目迁移到Swift 4.1之后出现的

W0423 16:38:46.366578 1 commandlineflags.cc:1503]忽略标志指针0x10adafe00的RegisterValidateFunction():在该地址没有找到标志

我如何解决它?

debugging console xcode ios

37
推荐指数
1
解决办法
5594
查看次数