asp.net开发的调试方法集合
调试是写代码一共非常重要的步骤,掌握好调试的技巧对于编程有事半功倍的效果,下面是我总结的菜鸟用方法
1、关于HTML和JS的调试
JS曾经是我最讨厌的错误,因为大多数错误VS不报错,这是因为js是解释型语言,即加载一行解析一行...... 但有时候A函数的错误会影响到B函数运行不了(A函数在B函数下面啊)
(1) js函数更改后在页面执行没反应
有时会发现,当你改了JS函数后运行结果还是跟没改的一样,那是因为浏览器缓存的问题,只要刷新一下就行,如果发现还不行,就按开发者工具(F12)里面清理下缓存,这个保证没问题了
(2) 若发现JS函数不执行,而且又不报错,怎么办?开发者工具非常的强大,具体按开发者工具--》脚本--》启动调试,然后执行,运行时他就会报错了,而且这里面还能设断点,按F5运行。
(3) 在F12状态下能够直接修改HTML代码,能直接看到HTML的效果,如果是你要的效果,那就赶紧复制保存起来吧。
2、关于后台的调试
后台调试的方法非常的多,我也是只会皮毛,以后陆续额更新- -
(1)设断点这不用说,以过程为单位运行的按F10,以语句为单位的按F11,还有就是,别以为调试运行时是单向的,其实通过拖拉指针(不知道叫什么好)能去到任意的位置!!如果你已经确定错误的范围,,可以用try括起范围,然后在catch块里看到捕捉的异常,还能用即时窗口观察当前你想知道的变量值,监视是监视变量随着程序运行而变化,非常好用!
(2)即时窗口:即时窗口相当于控制台,能够获取和设置当前程序运行中的值,这样在调试时就能达到不修改程序又能修改变量的效果,举个例子,上传商品的状态一般默认是完整商品,假如调试的时候要把商品设置成不完整商品,不用即时窗口只能在程序赋值为item.status = "不完整商品"再继续调试,然后调试好了又要改回来,这样很麻烦,用即使窗口直接在窗口中item.status = "不完整商品"就能修改它的值,不用修改任何代码,另外即时窗口非常像浏览器的控制台。
(3)调用堆栈:当调试一些比较老的项目时,函数调用深度非常深而且命名又非常相近,可以把看看调用堆栈,新版的VS还能用图像表现出来,非常直观。
(4)假如有的时候用IIS挂了网站,又不能用VS调试的情况下,可以用VS的附加到进程,附加你想调试的进程,然后后台设断点,前台在你想设断点的位置加个debugger,其他都跟上面一样~
(5).net Reflector:如果错误是在dll里面的怎么办?可以安装插件reflector,然后设置dll为可调试,这样调试的时候就能进入dll内部!之前遇到过一个mysql.dll(公司封装的)错误老是返回链接失败,结果调试进去才知道是dll版本不对!
asp.net开发的调试方法集合的更多相关文章
- PyCharm Django项目开发的调试方法
下面介绍两种PyCharm Django项目开发的调试方法: 方法一: 1. 使用PyCharm 自带的django项目Debug工具, 当然前提条件是django项目环境已经搭建好了. 2. 在代码 ...
- Web开发常规调试方法与常见问题分析
一.Web项目基本原理 现在的web项目大都已经前后端独立开发与部署. 前后端独立开发,一般是前端与后端通过web接口(常见的有RESTful与websocket)文档进行交流.前端开发人员先更具业务 ...
- onvif规范的实现:onvif开发常用调试方法 和常见的segmentation fault错误
在前几篇中,虽然已经实现了rtsp视频流的对接,但是还要做的工作还非常多,onvif本来就是一个覆盖面非常广的一个协议,每一个功能都要填充大量的函数.而且稍不注意就会出现segmentation fa ...
- ios开发之--调试方法
概述 基本操作 全局断点 条件断点 开启僵尸对象 LLDB命令 概述 在开发项目的工程中,肯定会遇到各种各样的bug,且大多数的bug都和自己有关:那么在和bug斗智斗勇的过程中,如果能快速准确的一击 ...
- ASP.NET获取根目录的方法集合
编写程序的时候,经常需要用的项目根目录,自己总结如下: 1.取得控制台应用程序的根目录方法 方法1.Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径 方法 ...
- Web开发(调试方法 F12)
参考: 参考:MDN 调试HTML 参考:什么是浏览器开发者工具? 参考:检查和编辑页面与样式 工具参考:标记验证服务 工具参考:直接输入验证(直接输入HTML源码进行在线检查) 目录: 1.相关快捷 ...
- 【转】C#(ASP.Net)获取当前路径的方法集合
转自:http://www.gaobo.info/read.php/660.htm //获取当前进程的完整路径,包含文件名(进程名). string str = this.GetType().Asse ...
- BGFX 渲染引擎中着色器代码的调试方法
在实时渲染的图形开发中,着色器代码(Shader)越来越复杂,于是单纯的靠经验和不断试错的开发和调试方法早已不能满足实际需求.使用调试工具进行调试,成为开发中重要的方法.Bgfx 是一款跨平台.抽象封 ...
- Asp.net Mvc模块化开发之“开启模块开发、调试的简单愉快之旅”
整个世界林林种种,把所有的事情都划分为对立的两个面. 每个人都渴望的财富划分为富有和贫穷,身高被划分为高和矮,身材被划分为胖和瘦,等等. 我们总是感叹,有钱人的生活我不懂;有钱人又何尝能懂我们每天起早 ...
随机推荐
- pb2.text_format.Merge(f.read(), self.solver_param) AttributeError: 'module' object has no attribute 'text_format'
http://blog.csdn.net/qq_33202928/article/details/72526710
- idea Please specify commit message
在idea中使用github来进行版本控制的时候, 当点击提交的时候遇到了这个问题 错误: Please specify commit message 解决方法: 在commit message中填写 ...
- shelll脚本,根据软链接,找到真实路径
[root@localhost tmp]# ls -l total lrwxrwxrwx root root Sep : abc -> /etc/passwd lrwxrwxrwx root r ...
- js 一维数组转成tree 对象
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- C++系统学习一:基本数据类型和变量
程序语言 程序语言最基本的特征 整型.字符型等内置类型 变量,用来为对象命名 表达式和语句,操纵上述数据类型的具体值 if等控制结构 函数,定义可供随时调用的计算单元 程序语言的扩展 自定义数据类型 ...
- 【dp 状态压缩 单调栈】bzoj3591: 最长上升子序列
奇妙的单调栈状压dp Description 给出1~n的一个排列的一个最长上升子序列,求原排列可能的种类数. Input 第一行一个整数n. 第二行一个整数k,表示最长上升子序列的长度. 第三行k个 ...
- 【js】【ios】【safari】【兼容问题】【转发】JS IOS/iPhone的Safari不兼容Javascript中的Date()问题
引用地址:http://www.cnblogs.com/yiven/p/6053872.html 1 var date = new Date('2016-11-11 11:11:11'); 2 d ...
- Linux实现删除撤回的方法。
RM命令改造 vim /etc/bashrc 在文件的最前端添加如下代码 #修改rm命令 alias rm=delete #命令别名,通过delete来实现rm改为mv alias r=de ...
- 【实验吧】Once More&&【笔记】 PHP 函数漏洞总结
<?php if (isset ($_GET['password'])) { if (ereg ("^[a-zA-Z0-9]+$", $_GET['password']) = ...
- C++中四种强制类型转换方式
类型转换有c风格的,当然还有c++风格的.c风格的转换的格式很简单(TYPE)EXPRESSION,但是c风格的类型转换有不少的缺点,有的时候用c风格的转换是不合适的,因为它可以在任意类型之间转换,比 ...