程序调试

11款PHP集成开发环境

不羁岁月 提交于 2020-02-28 05:48:09
1. Zend Studio   Zend Studio 来自 Zend —— PHP 幕后的精英团队。 它真的是很不错。它运行于三大系统:Windows、Mac OS X 和 Linux。而且绝对能够提供您所需要的一切:PHP V4、PHP V5 等等。它的下载需要花很长时间,但是非常值得。   作为 IDE,Zend Studio 是最好的。它提供所有想在内置库和定制代码中拥有的代码智能特性。它还有非常好的调试功能,而且极易设置。要把代码放到存储库(repository)中,Zend Studio 会连接到 CVS 和 Subversion。要把代码放到服务器上,有集成 FTP 可以使用。Zend Studio 非常适合 Macintosh,如图 7 所示。   在其他一些 IDE 中,代码片段是内置的以使代码编制更为容易。这款 IDE 也直接集成了 数据库 以给出可用的表格和字段。 2. Eclipse 在 Eclipse 开发平台中有两个插件支持 PHP。第一个 PHP IDE 项目是 Eclipse Foundation 项目,这意味着它在 Eclipse 许可范围内发布,并使用 Eclipse Foundation 工具和方法开发。   另一个是 PHPEclipse,它是独立开发的。因为使用 Eclipse,所以这两个插件都可以在三大操作系统中运行:Windows

vs code进行c/c++开发

好久不见. 提交于 2020-02-28 00:44:06
vs code是微软公司开发的跨平台编辑器,丰富的插件功能可以满足各种编程语言的编码,编译和调试。由于vs code本身只是一个编辑器,所以你需要准备编译工具链。本文针对的是windows系统,我这里使用mingw-w64作为编译工具链。 1. 下载安装mingw-w64,并且把mingw-w64的bin目录加入环境变量,安装mingw-64的教程很多,不再复述。比如我添加的环境变量是:C:\Program Files\mingw-w64\x86_64-7.3.0\mingw64\bin 2. 在微软的官方网站上 下载 安装vs code,目前最新版本是v.1.22.2 (2018/4/21) 3. 打开vs code,在左边的扩展商店里面搜索c++,安装微软官方的插件,重启vs code或者点击旁边的"重新加载"生效 4. 在磁盘上新建一个文件夹"HelloWorld",vs code打开这个文件夹,新建main.cpp #include <iostream> using namespace std; int main() { cout << "hello world" << endl; for(int i = 0;i < 100;i++) { cout << i << endl; } return 0; } 然后你会发现 #include <iostream>

发布“点我网”的挂机小程序

与世无争的帅哥 提交于 2020-02-27 13:42:12
下班了,把这两天利用业余时间写的“点我网”挂机小程序放上来吧。这是应网友的要求,分析了“点我网”的程序运行过程,采用MSHTML组件开发,功能比较简单。希望对网友有用。 程序在开发过程中,走了点歪路。原本想用VS2005开发的,在调试过程中,发现VS2005中的WebBrowser不好控制Frame内页面。上网查询后,以为用delphi开发比较合适,好在以前也用过D7,虽然功能也都实现了,但觉得用了VS.NET回头再用Delphi,有太多的不顺手。最后一细想,不都是用MSHTML组件,Net也一样能实现,写起代码来还轻松,于是,又回过头来,打开VS2005....... 现将这两个版本的程序都放上来,写得匆忙,正在测试,欢迎大家多提意见! 下载1(不需要DotNet框架,适合广大用户) 下载2(需要DotNet框架 ) 来源: https://www.cnblogs.com/yuanbao/archive/2007/09/03/880537.html

LLDB调试器

佐手、 提交于 2020-02-27 12:34:42
你是否曾经苦恼于理解你的代码,而去尝试打印一个变量的值? NSLog(@"%@", whatIsInsideThisThing); 或者跳过一个函数调用来简化程序的行为? NSNumber *n = @7; // 实际应该调用这个函数:Foo(); 或者短路一个逻辑检查? if (1 || theBooleanAtStake) { ... } 或者伪造一个函数实现? int calculateTheTrickyValue { return 9; /* 先这么着 ... } 并且每次必须重新编译,从头开始? 构建软件是复杂的,并且 Bug 总会出现。一个常见的修复周期就是修改代码,编译,重新运行,并且祈祷出现最好的结果。 但是不一定要这么做。你可以使用调试器。而且即使你已经知道如何使用调试器检查变量,它可以做的还有很多。 这篇文章将试图挑战你对调试的认知,并详细地解释一些你可能还不了解的基本原理,然后展示一系列有趣的例子。现在就让我们开始与调试器共舞一曲华尔兹,看看最后能达到怎样的高度。 LLDB LLDB 是一个有着 REPL 的特性和 C++ ,Python 插件的 开源 调试器。LLDB 绑定在 Xcode 内部,存在于主窗口底部的控制台中。调试器允许你在程序运行的特定时暂停它,你可以查看变量的值,执行自定的指令,并且按照你所认为合适的步骤来操作程序的进展。

mac下编译openjdk1.9及集成clion动态调试

倖福魔咒の 提交于 2020-02-27 03:47:50
晚上被小伙伴问道如何使用ide进行jvm源码的调试,刚好前段时间花了点时间折腾了一下,mac最新版本下jvm9顺利编译通过,并且可以完美集成clion进行调试(支持windows),下面记录一下全过程,如果想看效果的话,可以直接拉到 集成到clion进行调试 小节末尾 mac下openjdk源码编译过程 准备编译环境准备 我的mac的版本如下 image.png 由于openjdk1.9之前的版本对mac下编译支持得不是很流畅,所以这篇文章选择openjdk1.9 编译之前,首先你需要准备 homebrew,homwbrew是mac下的包管理器,如果你的mac上没有安装,可以按照下面的方式来安装 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" homwbrew下载完成之后,接下来准备编译环境 首先安装openjdk的版本管理工具mercurial 然后安装ccache和freetype,ccache用来加速编译,freetype在编译过程也会依赖到 上述准备编译环境的脚本为 brew install mercurial brew install ccache brew install freetype

iOS开发证书和配置文件的使用

試著忘記壹切 提交于 2020-02-27 03:28:13
提示: 之前只是根据网上的流程完成了iOS项目的发布过程,对于证书和配置文件仍是一头雾水,这里参照别人的文章,简单了解一下,毕竟以后用的着。 这里有几个问题: 什么是iOS证书,它是如何与app应用关联的? iOS开发证书和生产证书有何区别,如何使用的? 证书与配置文件(Provisioning Profiles)是什么关系,配置文件在Xcode中如何使用? 证书以及配置文件如何申请? 什么是Key Pair(公钥/私钥)?如何与证书关联的? 签名的作用是什么? 1. 准备工作: 如果想要进行iOS开发,首先要具备下面一些条件: 1.1 首先要有苹果开发账号(Apple Developer Acount) 只有拥有开发者账号,才能申请开发/发布证书及相应配置文件。 开发者账号个人或公司开发者账号$99和企业开发者账号$299两种类型。 1.2 若要进行真机调试,必须至少拥有一台MAC电脑。 2. 登录iOS Dev Center 如果已经拥有苹果开发者账号,直接登录苹果开发者中心申请开发证书。 进入到证书申请界面: 从上面可以看到四个关键东西:Certficates(证书)、Identifiers(标识符)、Devices(设备)、Provisioning Profiles(供应配置文件),我们分别介绍这四项。 2.1 Identifiers(标识符)

如何调试Gradle Plugin

天大地大妈咪最大 提交于 2020-02-26 19:12:15
背景 笔者近期在研究Android的热补丁技术,需要自定义Gradle Plugin,来实现补丁的生成。Android应用开发者应该都知道如何调试android应用,但是由于Gradle的脚本是在代码的编译期运行的,和普通的应用程序不同,正常的调试方法不适用。但是大家都知道调试功能对于编写一个程序的重要性,不能调试是很痛苦的,而且会大大降低开发效率。 后来从一个国外网站上看到一个帖子,讲如何调试Gradle脚本的,现在介绍给大家。 原文链接: http://georgik.rocks/how-to-debug-gradle-script/ 1. 打开Teminal,设置Gradle环境变量 export GRADLE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005" 2. 打开android studio的run/debug configuration,如下图 配置调试信息 新建Remote调试 不用修改,直接确定 不用进行任何修改,直接点OK 3. 在android studio中在相应的代码出设好断点 设置断点 4. 在命令行中相应的task $ cd 工程目录 $ ./gradlew --no-daemon build -Dorg.gradle.debug=true

7. 错误、调试和测试

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-26 13:15:09
在程序运行过程中,总会遇到各种各样的错误。 有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的。 有的错误是用户输入造成的,比如让用户输入email地址,结果得到一个空字符串,这种错误可以通过检查用户输入来做相应的处理。 还有一类错误是完全无法在程序运行过程中预测的,比如写入文件的时候,磁盘满了,写不进去了,或者从网络抓取数据,网络突然断掉了。这类错误也称为异常,在程序中通常是必须处理的,否则,程序会因为各种问题终止并退出。 Python内置了一套异常处理机制,来帮助我们进行错误处理。 此外,我们也需要跟踪程序的执行,查看变量的值是否正确,这个过程称为调试。Python的pdb可以让我们以单步方式执行代码。 最后,编写测试也很重要。有了良好的测试,就可以在程序修改后反复运行,确保程序输出符合我们编写的测试。 错误处理 在程序运行过程中,如果发生了错误,可以预先约定返回一个错误代码,这样就知道是否有错,以及错误的原因了。在操作系统提供的调用中,返回错误代码非常常见。比如打开文件的函数 open() ,成功时返回文件描述符,出错时返回-1。 用错误码来表示是否出错十分不便,因为函数本身该返回的正常结果和错误码混杂在一起,造成调用者必须用大量的代码来判断是否出错: 12345678910111213 def ():...

golang调试工具Delve

拈花ヽ惹草 提交于 2020-02-26 05:43:33
 Devle是一个非常棒的golang 调试工具,支持多种调试方式,直接运行调试,或者attach到一个正在运行中的golang程序,进行调试。   线上golang服务出现问题时,Devle是必不少的在线调试工具,如果使用docker,也可以把Devle打进docker镜像里,调试代码。 安装Devle 安装Devle非常简单,直接运行 go get 即可: go get -u github.com/derekparker/delve/cmd/dlv   如果你的go版本为1.5请先设置环境变量GO15VENDOREXPERIMENT=1再运行go get。我的go版本为1.10,不用设置。 使用Devle调试golang服务   先写一个简单的web服务,然后使用Devle来进行调试。   在$GOPATH/src/github.com/mytest 文件夹下创建main.go package main import ( "fmt" "log" "net/http" "os" ) const port = "8000" func main() { http.HandleFunc("/hi", hi) fmt.Println("runing on port: " + port) log.Fatal(http.ListenAndServe(":" + port, nil)) }

开源项目asmjit——调用自定义方法demo以及windbg调试

﹥>﹥吖頭↗ 提交于 2020-02-24 10:01:32
asmjit是一个开源项目,使用它可以将代码即时的编译成机器码,也就是所谓的jit技术。 初次接触这个项目,编写了一个demo,学习它的使用方法。 现将编写的demo以及调试jit生成的机器码的过程总结出来,分享给大家 asmjit调用自定义方法的demo 代码如下 #include "asmjit.h" // [Dependencies - C] #include <stdio.h> #include <stdlib.h> #include <string.h> using namespace AsmJit; #include <string> #include <iostream> using namespace std; int add(int value1, int value2) { cout << "arg1: " << value1 << " arg2: " << value2 << endl; return value1 + value2; } int main(int argc, char* argv[]) { X86Compiler c; //记录日志,将编译细节输出到控制台 FileLogger Logger(stdout); c.setLogger(&Logger); //新建一个无参数、无返回值的方法 c.newFunc