草庐IT

DEBUGGING

全部标签

android - 调试服务

我编写了一个带有远程接口(interface)的服务并将其安装在我的PC的EclipseAVD上。我有一个客户端测试工具,它启动并调用服务中的方法。最初,我通过一个控制类和Activity安装了该服务,现在我已将其删除,因此该服务的list如下所示:所以没有Activity标签。当我从Eclipse中的调试图标启动它时,控制台告诉我它正在安装apk(它是),但它没有显示为调试线程并且没有触发断点,尽管服务的行为是就客户看到的而言,还可以。如果我将服务标签包装在具有关联类的Activity标签中并启动它,那么我可以对其进行调试。是否可以在不将服务包装在Activity中的情况下对其进行调

c++ - 用于调试的未初始化内存的常见值是什么?

很久以前,我了解到使用0xDEADBEEF填充未使用/未初始化的内存,以便在调试器或崩溃报告中,如果我看到该值,我知道我正在查看未初始化的内存。我从崩溃报告中看到iOS使用0xBBADBEEF。人们还使用了哪些其他创意值(value)?任何特定的值(value)观是否有任何特定的好处?将值转化为单词的最明显好处是,至少对大多数人来说,如果单词是他们的语言,它们很容易突出,而某些严格的数字值不太可能突出。但是,也许还有其他理由选择数字?例如,奇数可能会使处理器(68000)崩溃,例如在某些内存访问时,因此最好选择0x0BADBEEF而不是0xBADBEEF0。它们是否有任何其他值(可能是

c++ - 用于调试的未初始化内存的常见值是什么?

很久以前,我了解到使用0xDEADBEEF填充未使用/未初始化的内存,以便在调试器或崩溃报告中,如果我看到该值,我知道我正在查看未初始化的内存。我从崩溃报告中看到iOS使用0xBBADBEEF。人们还使用了哪些其他创意值(value)?任何特定的值(value)观是否有任何特定的好处?将值转化为单词的最明显好处是,至少对大多数人来说,如果单词是他们的语言,它们很容易突出,而某些严格的数字值不太可能突出。但是,也许还有其他理由选择数字?例如,奇数可能会使处理器(68000)崩溃,例如在某些内存访问时,因此最好选择0x0BADBEEF而不是0xBADBEEF0。它们是否有任何其他值(可能是

python - 在程序运行期间查看生成列表

故事:在NinaZakharenko'sPyContalk期间关于Python中的内存管理,她解释了分代垃圾收集在Python中的工作方式,并指出:Pythonmaintainsalistofeveryobjectcreatedasaprogramisrun.Actually,itmakes3:generation0generation1generation2问题:为了更深入地了解Python中的内存管理以及调试内存泄漏,我如何观察/观察在程序运行期间从所有3代列表中添加和删除了哪些对象?我浏览了gcmodule,但还没有找到获取当前世代列表值的相关方法。

python - 在程序运行期间查看生成列表

故事:在NinaZakharenko'sPyContalk期间关于Python中的内存管理,她解释了分代垃圾收集在Python中的工作方式,并指出:Pythonmaintainsalistofeveryobjectcreatedasaprogramisrun.Actually,itmakes3:generation0generation1generation2问题:为了更深入地了解Python中的内存管理以及调试内存泄漏,我如何观察/观察在程序运行期间从所有3代列表中添加和删除了哪些对象?我浏览了gcmodule,但还没有找到获取当前世代列表值的相关方法。

debugging - 在 GDB 中,如何找出谁在堆上分配了地址?

我在GDB中有一个指针,我怎样才能找到它在堆上的第一次分配位置?在WinDBG中,开启!heap-p-a后可以通过gflags/i+ust来完成既然Valgrind可以告诉我内存分配在哪里(当它检测到一些泄漏时),我想这也是可能的?(这与观察点无关。这是考虑到我随机闯入GDB中的应用程序的情况,查看指针并想知道“谁创建了这block内存”?)在GDB中使用反向调试是一种非常新颖的方法,并且可能是解决此问题的正确方法。我在使用GDB7.1时遇到了一些问题——最新的稳定版本。反向调试是GDB中一个相当新的功能,所以我需要查看HEAD(7.2)来修复它。它可能说明了GDB方法的成熟度,但我认

debugging - 在 GDB 中,如何找出谁在堆上分配了地址?

我在GDB中有一个指针,我怎样才能找到它在堆上的第一次分配位置?在WinDBG中,开启!heap-p-a后可以通过gflags/i+ust来完成既然Valgrind可以告诉我内存分配在哪里(当它检测到一些泄漏时),我想这也是可能的?(这与观察点无关。这是考虑到我随机闯入GDB中的应用程序的情况,查看指针并想知道“谁创建了这block内存”?)在GDB中使用反向调试是一种非常新颖的方法,并且可能是解决此问题的正确方法。我在使用GDB7.1时遇到了一些问题——最新的稳定版本。反向调试是GDB中一个相当新的功能,所以我需要查看HEAD(7.2)来修复它。它可能说明了GDB方法的成熟度,但我认

c++ - 调试器如何窥探另一个进程的内存?

当每个进程都有自己的私有(private)内存空间而外部进程无法访问时,调试器如何访问进程的内存空间?例如,我可以使用gdb-p将gdb附加到正在运行的进程。我可以通过gdb访问这个进程的所有内存。gdb是如何做到这一点的?我阅读了SO中的相关问题,但似乎没有帖子回答这一点。 最佳答案 由于问题被标记为Linux和Unix,我将稍微扩展一下DavidScwartz所说的内容,简而言之,“操作系统中有一个API”。同样的基本原理也适用于Windows,但实际实现不同,虽然我怀疑操作系统内部的实现做同样的事情,但没有真正的方法知道这一点

c++ - 调试器如何窥探另一个进程的内存?

当每个进程都有自己的私有(private)内存空间而外部进程无法访问时,调试器如何访问进程的内存空间?例如,我可以使用gdb-p将gdb附加到正在运行的进程。我可以通过gdb访问这个进程的所有内存。gdb是如何做到这一点的?我阅读了SO中的相关问题,但似乎没有帖子回答这一点。 最佳答案 由于问题被标记为Linux和Unix,我将稍微扩展一下DavidScwartz所说的内容,简而言之,“操作系统中有一个API”。同样的基本原理也适用于Windows,但实际实现不同,虽然我怀疑操作系统内部的实现做同样的事情,但没有真正的方法知道这一点

debugging - 如何可视化 AVR 程序的内存 (SRAM) 使用情况?

我在AVR微Controller(ATMega328P)上运行的C程序中遇到了问题。我相信这是由于堆栈/堆冲突,但我希望能够确认这一点。有什么方法可以可视化堆栈和堆的SRAM使用情况?注意:程序用avr-gcc编译,使用avr-libc。更新:我遇到的实际问题是malloc实现失败(返回NULL)。所有malloc发生在启动时,所有free发生在应用程序结束时(实际上从来没有,因为应用程序的主要部分处于无限循环中).所以我确信碎片化不是问题。 最佳答案 您可以使用avr-size实用程序检查RAM静态使用情况,如中所述http://