程序调试

Chrome 调试技巧

自古美人都是妖i 提交于 2019-12-02 02:35:15
写在前面 本文包括浏览器调试,不包括web移动端调试。 本文调试均在chrome浏览器进行 alert 这个不用多说了,不言自明 console 基本输出 想必大家都在用console.log在控制台输出点东西,其实console还有其它的方法: console . log ( "打印字符串" );//在控制台打印自定义字符串 console . error ( "我是个错误" );//在控制台打印自定义错误信息 console . info ( "我是个信息" );//在控制台打印自定义信息 console . warn ( "我是个警告" );//在控制台打印自定义警告信息 console . debug ( "我是个调试" );//在控制台打印自定义调试信息 cosole . clear ();//清空控制台(这个下方截图中没有) 注意上面输出的error和throw出的error不一样,前者只是输出错误信息,无法捕获,不会冒泡,更不会中止程序运行。 格式化输出 除此以外,console还支持自定义样式和类似c语言的printf形式 console . log ( "%s年" , 2016 );//%s表示字符串 console . log ( "%d年%d月" , 2016 , 11 );//%d表示整数 console . log ( "%f" , 3.1415926 )

在dockers中调试dump的dotnet程序

老子叫甜甜 提交于 2019-12-02 01:59:38
其他调试参考文章 centos7使用lldb调试netcore应用转储dump文件 centos7 lldb 调试netcore应用的内存泄漏和死循环示例(dump文件调试) 生成dump文件 如何在docker容器里面创建dump文件请参考: dotnet core调试docker下生成的dump文件 构建一个dotnet,lldb的docker image dockerfile 文件,基于microsoft/dotnet:2.2-sdk安装lldb, docker builder -f dockerifle --pull -t dotnet-lldb build出来image FROM microsoft/dotnet:2.2-sdk RUN apt-get update && apt-get install -y \ cmake llvm-3.9 \ clang-3.9 \ lldb-3.9 \ liblldb-3.9-dev \ libunwind8 \ libunwind8-dev \ gettext \ libicu-dev \ liblttng-ust-dev \ libcurl4-openssl-dev \ libssl-dev \ uuid-dev \ libnuma-dev \ libkrb5-dev 安装dotnet-sos插件 dotnet

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

主宰稳场 提交于 2019-12-02 00:27:38
虽然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

本地VS调试服务器 IIS 程序

天大地大妈咪最大 提交于 2019-12-02 00:24:59
本地程序写完测完,发布到服务器上,运行中出现问题,通过 Log 文件来初步判断问题,然后再本地调试完毕后,更新服务器。正常流程如此,有时候某些问题在本地无问题,发布到服务器后就有事,排除运行环境以外的问题后,有些问题很难再本地重现,以前,为了快速,高效的解决问题,直接在本地服务器上安装 VS 方便调试解决问题。现在想想真是一言难尽,其实作为宇宙第一 IDE ,VS 自带有远程调试工具,操作起来也很方便 1.找到调试工具文件夹,将x64(x64也可以调试x86程序,x86只能调试x86程序) 文件夹 直接拷贝到 本地服务器上 2.拷贝到本地服务器上之后,找到 msvsmon.exe 文件,打开后,记住端口号,设置Windows 验证,此时服务器配置完成 3. 在本地程序上,点击 Ctrl + ALT + P 弹出 附加到进程窗口,连接目标中输入 本地服务器 IP + 端口号,在进行列表中选择 发布后的程序名,点击确定 4. 此时在服务器上运行程序,便能在本地进行调试 当然,有时候服务器不一定部署在本地,可能在现场,这个时候 附加到进程时,还需要借助内网映射工具,如 zerotier one ,花生壳等等,不用在服务器上安装 VS 这种Low操作 来源: https://www.cnblogs.com/Sientuo/p/11721163.html

0_环境搭建

微笑、不失礼 提交于 2019-12-01 22:15:16
0 开发工具 VS2017 1 先从win xp 开始 2 最好是纯净的 win xp 这样遇到的坑少顺利更贴合我们学习目的 3 搭建双机环境: 使用串口--在虚拟机定义全局管道符号链接 形如: 在虚拟机的启动选项里面添加上:; 。。 具体百度 记不到 -b -- 连接的时候将虚拟机子系统段下来 -k -- kernel内核调试 com:pipe,port 指定连接串口 -resets -- 调试子系统是否需要重启 -y -- 调试符号 4 使用virtual kd 也能实现 实际上 是不要勾选上如下就能行了: 3 双机得目的 是c程序 使用调试器运行可以获得很高得权限 来源: https://www.cnblogs.com/leibso-cy/p/11718784.html

linux进程注入(-)

依然范特西╮ 提交于 2019-12-01 21:48:17
12345 译文声明本文是翻译文章,文章原作者0x00pf,文章来源:0x00sec.org原文地址:https://0x00sec.org/t/linux-infecting-running-processes/1097第一篇翻译的文章,如有不当,那也没有什么办法0.0主要是在工作中遇到了一个需要注入的场景就学习了一下。 前言 我们已经知道了如何向一个二进制文件注入代码让程序在下次执行的时候执行我们的代码,但是如何向一个已在运行的进程中注入代码呢?这篇文章我将介绍如何去操作其它进程内存的一些基本技巧…换句话说,就是教你如何去写一个属于你自己的调试器。 应用场景 在去介绍技术细节之前,让我先来介绍几个需要注入代码到运行中进程的场景。 最初的场景并不是应用在恶意软件,而是应用在内存热补丁上。运行的程序不能被关闭或者重启,或者说关闭或者重启需要很多不必要的花销。所以如何在不关闭进程或者不重启进程的情况下去给程序打补丁和更新是前几年一个比较热门的话题。 另外一个主要的应用场景就是调试器以及逆向工具的开发。例如radare2…通过这篇文章你将学习它们是如何工作的。 显然另外的一个主要原因还是恶意软件的发展,病毒、后门等。我猜大多数的使用者都是这个原因。一个例子,你们很多人都知道meterpreter的进程注入功能,这个功能够让你运行你的payload在一个’无辜’且正在运行的进程中。

在SRAM、FLASH中调试代码的配置方法(附详细步骤)

社会主义新天地 提交于 2019-12-01 19:59:22
因为STM32的FLASH擦写次数有限(大概为1万次),所以为了延长FLASH的使用时间,我们平时调试时可以选择在SRAM中进行硬件调试。除此之外,SRAM 存储器的写入速度比在内部 FLASH 中要快得多,所以下载程序到SRAM中的速度较快。 所以我们很有必要建立两个版本的工程配置,在SRAM中调试程序完毕后,再把代码下载到FLASH中即可。这篇笔记主要分享在 keil5 中配置FLASH调试与SRAM调试的详细配置方法及如何切换两种配置。 本篇笔记以STM32F103ZET6为例。其FLASH大小为512KB,SRAM的大小为64KB。FLASH基地址为0x08000000,SRAM基地址为0x20000000。在STM32F10XXX里,可以通过BOOT1、BOOT0引脚来选择三种不同的模式: 我们要在FLASH中进行硬件仿真调试还是在RAM中进行硬件仿真调试需要对这两个boot脚进行对应的设置以及程序下载的地址进行设置。 在FLASH中进行硬件仿真调试 1、硬件设置 BOOT0配置为0,BOOT1随意设置。 2、keil设置 本文以keil5为例。步骤如下: (1)点击如下按钮,修改target的名称: target的名称是可以随意更改的,我们这里改为FLASH。 (2)点击 Project->Options for Target Flash...

PHPStorm 使用 Xdebug

≯℡__Kan透↙ 提交于 2019-12-01 17:35:41
一、下载xdebug   xdebug官网:https://xdebug.org/download.php   在选择下载哪个版本的xdebug的时候需要注意了,下面有两种方法,让你准确的下载自己环境对应的xdebug文件:   1>.打印出phpinfo()信息,如下:       然后还要注意一点就是看看自己php对应的版本和操作系统的位数,结合这四点去官网找到对应的xdebug文件(本人是php是7.0.1的版本,文件名:php_xdebug-2.6.0-7.0-vc14-x86_64.dll)   2>.使用xdebug官方提供的一个检测工具:https://xdebug.org/wizard.php          这里就把phpinfo()的信息使用输出出来(注意:使用输出函数,比如var_dump()),然后就会检测你的可以下载对应的版本,如下图:    二、安装并配置xdebug   1>.将下载好的.dll文件放入指定的位置(......\php\php7.0.10\ext\)   2>.配置php.ini配置文件(这里需要注意一点,找对了php.ini文件),在网页上打印出phpinfo()的信息,查看这一条信息:          可以看到是哪个php的配置文件,然后添加一下配置:     [xdebug] zend_extension ="G:

微信小程序的入门

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-01 17:27:42
1.申请账号 官网: https://mp.weixin.qq.com/ 2.开发工具 为了帮助开发者简单和高效地开发和调试微信小程序,推出了小程序开发者工具,集成了公众号网页调试和小程序开发与调试两种开发模式。 官方开发调试工具: http://t.cn/RrKI5a3 3.小程序的文件结构及配置 小程序包含一个描述整体程序的 app 和多个描述各自页面的 pages。 一个小程序主体部分由三个文件组成,必须放在项目的根目录,如下: 3.1app.json配置项列表 3.2 pages 指定小程序由哪些页面组成。每一项代表对应页面【路径+目录名+文件名(不包含后缀名)】,数组的第一项代表小程序的初始页面(首页/展示页)。小程序中新增/减少页面,都需要对 pages 数组进行修改。 3.3 window 用于设置小程序的状态栏、导航条、标题、窗口背景色。 3.4tabBar 设置小程序底部或顶部菜单栏。 注: 1. 当设置 position 为 top 时,将不会显示 icon图标 2.tabBar 中的 list 是一个数组,只能配置最少2个、最多5个菜单 3.5networkTimeout 可以设置各种网络请求的超时时间。单位毫秒 4.生命周期 网址: https://dwz.cn/OOHwXDNE 来源: https://www.cnblogs.com/shineguang

stm32填坑之旅 - stm32f103c8t6点亮板载贴片蓝色LED

女生的网名这么多〃 提交于 2019-12-01 16:21:36
转载请注明: https://www.cnblogs.com/rockyf/p/11691622.html 开篇 开篇一定要精彩,不然路人不理睬!下述是笔者作为arm小白的填坑之旅 没错,这个之前一直从事软件开发的笔者,开始搞硬件了,当然仅仅是数电!模电需要有很扎实的电路基础,而笔者有的只有“扎实”的逻辑基础。 那为什么笔者要开始搞硬件呢? 其实早在大学期间,笔者所在专业(计算机科学与技术)中就有一门课就专门讲了硬件-软件的连接以及实现,只怪当初没有好好学,只是心中有那么个印象,就是时钟驱动逻辑电路去处理每一个指令然后完成整个逻辑(当然,这个印象很重要,在arm中,时钟就是它的心脏!)。 毕业后若干年,物联网行业开始兴起,于是手痒痒了,仅凭这一印象,开始入手了人生中的第一块板子——树莓派3B,用来做了一些小玩意儿,但那都是在linux的基础上做的,和软件开发没什么区别,于是乎,这块树莓派至今都在吃灰。 第二块板子便是arduino,比树莓派稍微有点难度了,没有OS,且ram也只有几百KB,做了几个demo后,发现太依赖arduino的环境了,也不是C开发,并没有真正接触底层,于是这块arduino跟树莓派正在一起吃灰中。 笔者的主开发语言是js,出于对脚本语言的熟练,我偶然间发现了NodeMCU这个东西,发现是块可以用lua脚本写逻辑的板子,甚是欢喜