程序调试

使用safari对webview进行调试

醉酒当歌 提交于 2019-11-30 20:45:14
在web开发的过程中,抓包、调试页面样式、查看请求头是很常用的技巧。其实在iOS开发中,这些技巧也能用(无论是模拟器还是真机),不过我们需要用到mac自带的浏览器Safari。所以,本文将讲解如何使用Safari对iOS程序中的webview进行调试。 1、打开真机(模拟器)的开发者模式 【设置】-> 【Safari】 -> 【高级】 -> 【Web检查器】打开 2、打开MBP上的Safari的开发者模式: 【Safari】->【偏好设置】->【高级】-> 【在菜单栏中显示“开发”菜单】勾选。 3、调试你的WebView页面。 4、在MBP的Safari选项中的开发,看到手机,右击可以看到正在调试的WebView的url 5、在弹出的这个框里面可以查看网页源代码以及可以调试样样式、查看localStorage、sessionStorage、Cookie的值等等,给原生端调试带来很大方便,不过这样前端调试更加方便啊,谷歌的模拟器不能完全模真实环境下的iphone使用效果啊。 来源: oschina 链接: https://my.oschina.net/u/1778933/blog/801951

使用Xcode和Instruments调试解决iOS内存泄露

若如初见. 提交于 2019-11-30 20:28:07
虽然iOS 5.0版本之后加入了ARC机制,由于相互引用关系比较复杂时,内存泄露还是可能存在。所以了解原理很重要。 这里讲述在没有ARC的情况下,如何使用Instruments来查找程序中的内存泄露,以及 NSZombieEnabled设置的使用。 本文假设你已经比较熟悉Obj-C的内存管理机制。 实验的开发环境:XCode 4.5.2 1、运行Demo。 先下载一个实现准备好的内存泄露的Demo吧: leak app 下载下来,打开运行,程序是一个寿司的列表,列出各种寿司卷。试着选择里面的几行,应该是选第二行的时候就崩溃了。崩溃截图: 在崩溃的地方断住了,知道crash的地方了,但是不知道具体crash的原因。 2、设置NSZombieEnabled 这是一个 “EXC_BAD_ACCESS”错误。我们打开XCode的选项:“NSZombieEnabled” 。在crash时可能会给你更多的一些提示信息。 设置步骤:1 2:勾上红色框里的 运行,按刚才的操作选中其中的cell。再次crash,这次在output窗口会看到多了一项错误信息: 2012-11-28 13:22:08.911 PropMemFun[2132:11303] *** -[CFString respondsToSelector:]: message sent to deallocated instance

Visual Studio2017 Remote Debugger

浪子不回头ぞ 提交于 2019-11-30 18:54:35
前言 大家在使用vs打包后的文件部署到服务器后,有时候我们需要对线网的后台进行调试。但是它不像在VS中。这个时候我们该怎么调试呢? 微软想到了这一点,他们在 VS 中给我们提供了一个功能: Remote Debugger,要远程调试我们就需要用到它。 关于 Remote Debugger 使用VS远程调试器Remote Debugger,你可以调试部署在不同的计算机上的VS应用程序。它适用于Windows桌面应用程序和ASP.NET的应用程序。 获取远程工具 获取远程工具的方式有两种。一种是从 MSDN 的文档中选择下载自己要下载的远程工具,还有一种是从你主机安装Visual Studio的目录中获取。 下载并安装远程工具 在要调试的设备或服务器(而不是机器运行Visual Studio),下载与你的操作系统的版本(X86,X64,或ARM版)相匹配的远程工具。 从主机拷贝 从主机VS的安装目录中拷贝Remote Debugger文件夹至你要远程的服务器。可以放到任意位置,不影响程序运行。 复制代码 Program Files\Microsoft Visual Studio 14.0\Common7\IDE\Remote Debugger 启动远程调试器 Remote Debugger文件夹里面会有x86、x64两个文件夹对应相应版本的工具

使用IPDB调试Python代码

我只是一个虾纸丫 提交于 2019-11-30 18:43:59
原文: https://xmfbit.github.io/2017/08/21/debugging-with-ipdb/ IPDB是什么?IPDB(Ipython Debugger),和GDB类似,是一款集成了Ipython的Python代码命令行调试工具,可以看做PDB的升级版。这篇文章总结IPDB的使用方法,主要是若干命令的使用。更多详细的教程或文档还请参考Google。 安装与使用 IPDB以Python第三方库的形式给出,使用 pip install ipdb 即可轻松安装。 在使用时,有两种常见方式。 集成到源代码中 通过在代码开头导入包,可以直接在代码指定位置插入断点。如下所示: 1 2 3 4 5 6 import ipdb # some code x = 10 ipdb.set_trace() y = 20 # other code 则程序会在执行完 x = 10 这条语句之后停止,展开Ipython环境,就可以自由地调试了。 命令式 上面的方法很方便,但是也有不灵活的缺点。对于一段比较棘手的代码,我们可能需要按步执行,边运行边跟踪代码流并进行调试,这时候使用交互式的命令式调试方法更加有效。启动IPDB调试环境的方法也很简单: 1 python -m ipdb your_code.py 常用命令 IPDB调试环境提供的常见命令有: 帮助 帮助文档就是这样一个东西

STM32 USART调试笔记

Deadly 提交于 2019-11-30 18:17:55
硬件环境:STM32f103 IDE:MDK 固件库:3.5 实现功能:串口接收一串字符串放入定义的缓冲区。当空闲终端发生时,去除字符串中的关键字。 前期遇到问题: 1.接收到的数据再RXNE中断中,逐个存取数组中。再次访问数组时。数组中的数据不见了,并且Rev_Num与实际发送到的字符串个数并不符合。需要连续发送多次,才能正确接收。之后buf[]内的数据又被清除。(没有在其他程序中处理这个数组) 代码如下: char Rev[250]={0};//数据缓存区 u16 RX_Num=0; char temp; char buf[500]; void USART1_IRQHandler(void) { char x; if(USART_GetFlagStatus(USART1, USART_FLAG_ORE) != RESET) { USART_ClearFlag(USART2, USART_FLAG_ORE); x = USART_ReceiveData(USART1); } if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET) { USART_ClearITPendingBit(USART1,USART_IT_RXNE); x=USART_ReceiveData(USART1); buf[RX_Num]=x; //USART

使用pdb调试代码

巧了我就是萌 提交于 2019-11-30 18:08:59
在开发简单程序的时候,可以通过加入print或log的方法进行程序的调试. 但是对过于复杂的程序这种方式往往比较困难,这时就需要引入一种可以进行单步调试以及可以方便查看变量的方法来进行 程序问题的排查,Python的pdb就是用来解决这个问题的. 常用命令 通常使用pdb.set_trace()来打断点 Command Desc break或b 设置断点 continue或c 继续执行程序,或是跳到下个断点 list或l 查看当前行的代码段 step或s 进入函数 return或r 执行代码直到从当前函数返回 exit或q 中止或推出 next或n 执行下一行 p或! 打印变量的值. help或h 帮助 实例: #utils.py def add(a, b): return a + b # main.py import utils def cal(a, b): import pdb pdb.set_trace() c = utils.add(a, b) print(c) return c if __name__ == "__main__": cal(3, 4) 来源: https://my.oschina.net/u/2474096/blog/3112671

Android开发:调试工具集

吃可爱长大的小学妹 提交于 2019-11-30 17:13:19
1. 查看当前堆栈 1) 功能:在程序中加入代码,使可以在logcat中看到打印出的当前函数调用关系 2) 方法: new Exception(“print trace”).printStackTrace(); 2. MethodTracing 1) 功能:用于热点分析和性能优化,分析每个函数占用的CPU时间,调用次数,函数调用关系等 2) 方法: a) 在程序代码中加入追踪开关 1: import android.os.Debug; 2: …… 3: android.os.Debug.startMethodTracing(“/data/tmp/test”); // 先建/data/tmp目录 4: …… // 被追踪的程序段 5: android.os.Debug.stopMethodTracing(); b) 编译,运行后,设备端生成/data/tmp/test.trace文件 c) 把trace文件复制到PC端 $ adb pull /data/tmp/test.trace ./ d) 使用android自带工具分析trace文件 $ $ANDROID_SRC/out/host/linux-x86/bin/traceview test.trace 此时可看到各个函数被调用的次数CPU占用率等信息 e) 使用android自带工具分析生成调用关系类图 $ apt-get

在visual studio 2015 中调试caffe

ⅰ亾dé卋堺 提交于 2019-11-30 16:01:35
看到这里,默认已经安装并编译过caffe了。 要学习caffe源码就要调试,在windows下调试。使用visual studio 2015调试caffe源码。 第一步:将生成caffe.lib的caffe项目设置为启动项。 第二步:以mnist为例调试caffe,右键caffe项目,进入属性设置。 在命令处填上可执行程序路径,在命令参数行填上可执行程序需要的参数。 第三步:下面就是具体调试了,自己跟代码,不赘述。 来源: https://www.cnblogs.com/juluwangshier/p/11603064.html

使用gdb调试c++程序

守給你的承諾、 提交于 2019-11-30 12:48:02
上篇( 使用c++开发跨平台程序 )说到 , 我不怕造东西 , 我怕的是造出来的东西 , 如果出了问题 , 我却不知道原因 . 所以调试分析是一个重要的手段 . C++ 调试是一个复杂的活 . 虽然大部分调试可以通过 IDE 在开发期间就解决了 . 但是必然的 , 还有很多东西需要在生产环境中还原它 . 分析它 , 然后解决它 .gdb 是一个成熟的工具 . 围绕着它有很多的工具可以选择 . 不过这么多工具的根本还是命令行模式下的 gdb. 废话不多说 , 现在我就用 gdb 来分析调试一下吧 . 生成 dump 文件 : 在 shell 中输入命令 : ulimit -c unlimited; 然后运行自己的程序 , 如果程序此时崩溃 , 就会在目录生成一个名为 core 的文件 .( 这个也看系统配置 .) 使用命令 gdb Test1 core 加载文件 . 或者它的详细命令 gdb -c core -e Test1 --symbols Test1 --readnow 下面是一个命令行输出的截图 : 上图中可以解释的不多 . 因为我们现在刚要入门 . 所以只能注意上图中的三个红框 . 红框 1: 命令行其中 app7 是可执行文件 , 而 core 是 dump 文件 . 红框 2: 标明 gdb 在 app7 中找到了它对应的 symbol. 红框 3: 标明 core

在Zend Studio中调试PHP(4/5)

随声附和 提交于 2019-11-30 10:25:56
本教程将教会您如何调试文件和应用程序以便从您的PHP代码中获取最大的效率和准确性。Zend Studio的调试功能可以检查并诊断PHP代码在本地或远程服务器上的错误。调试器允许您通过设置断点、暂停启动的程序、单步调试代码和检查变量的内容来控制程序的执行。调试应该在您的脚本和应用程序已经充分形成试用和测试阶段试用。 Zend Studio最新试用版下载请猛戳>>> 提供的项目 在整个教程中,在您的项目中插入提供的代码片段。 必备条件 Zend Studio 12.0或以上版本 试用Zend Debugger进行Zend Studio调试 Step 4:调试CLI应用程序 现在我们将使用Zend Studio的内部调试器调试CLI应用程序文件。 1. 在PHP Explorer中右键单击该文件,然后选择Debug As | CLI Application。 2. 如果系统询问您是否打开PHP Debug透视图,单击Yes。一些视图将会打开有关脚本的信息和调试程序停止是第一个<?php标签出现的地方。 3. Debug View (1)显示调试堆栈跟踪,并且可以在调试过程中监视和控制。 4. 在工具栏中,单击Resume图标继续设置断点。 5. 在工具栏中单击Step Into图标。调试器将进入display_workers函数,并跳转到第52行。 6. Variables view