- 浏览: 1701229 次
- 性别:
- 来自: 杭州699号
文章分类
最新评论
-
莫莫摸:
为什么不用dubbo
RCP数据传输模型回顾 -
大胡子爸爸:
String, Class 都实现了Serializable接 ...
RPC框架几行代码就够了 -
lss598018587:
谢谢大神分享,比起新手看复杂的dubbo框架还不如看大神的这一 ...
RPC框架几行代码就够了 -
15606915740:
你好,请问一下。<dubbo:consumer filt ...
Dubbo文档 -
joqk12345:
...
一些设计上的基本常识
CommonTemplate(http://www.commontemplate.org)的
Debug单步跟踪初始版完成, 可下载每日构建版本试用. (http://commontemplate.googlecode.com/svn/trunk/commontemplate/dist/)
将在后期TemplateEditor的eclipse插件中集成此Debug功能, 并做成策略接口,
当在eclipse环境中时自动适用插件集成,
在非图形系统中(纯文本模式,AWT未加载时)自动适用命令行,
否则使用swing图形界面. (现完成版为swing图形界面)
测试代码:
测试配置: commontemplate.properties
测试模板: out.ctl
引擎遇到$breakpoint指令时, 弹出附件所示界面.
高亮显示当前运行的指令, 上下文中的变量.
点击"Step"单步运行,
点击"Step Over"单步越过块指令的内部指令运行(非块指令此按钮不可用),
点击"Resume"恢复正常运行(直到下一$breakpoint),
点击"Terminate"终止运行.
注: 当commontemplate.properties配置: debug=true 时才启用调试, 否则忽略$breakpoint指令以及其它debug指令.
尚未美化界面, 暂先保证功能实现.
JFrame未重用(每一步都创建窗口), 所以调试时会出现窗口闪动, 待完善.
Debug单步跟踪初始版完成, 可下载每日构建版本试用. (http://commontemplate.googlecode.com/svn/trunk/commontemplate/dist/)
将在后期TemplateEditor的eclipse插件中集成此Debug功能, 并做成策略接口,
当在eclipse环境中时自动适用插件集成,
在非图形系统中(纯文本模式,AWT未加载时)自动适用命令行,
否则使用swing图形界面. (现完成版为swing图形界面)
测试代码:
import java.io.IOException; import java.io.OutputStreamWriter; import java.io.Writer; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.commontemplate.core.Context; import org.commontemplate.core.Factory; import org.commontemplate.engine.Engine; import org.commontemplate.standard.ConfigurationSettings; import org.commontemplate.tools.PropertiesConfigurationLoader; public class OutTester { public static void main(String[] args) { // 定义数据 Map model = new HashMap(); model.put("allow", Boolean.valueOf(false)); List users = new ArrayList(); model.put("users", users); DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); try { users.add(new User(12, "liangfei", "liangfei0201@163.com", 10000, df.parse("2007-08-09"))); users.add(new User(15, "zhangyong", "zhangyong@aaa.com", 25000, df.parse("2007-08-10"))); users.add(new User(17, "bobo", "bobo@bbb.com", 95010, df.parse("2007-08-11"))); users.add(new User(17, "lixudong", null, 25000, df.parse("2007-09-11"))); } catch (ParseException e) { e.printStackTrace(); } // 配置 ConfigurationSettings config = PropertiesConfigurationLoader.loadConfiguration("commontemplate.properties"); Factory factory = new Engine(config); // 执行模板 Writer output = null; try { output = new OutputStreamWriter(System.out); Context context = factory.createContext(output); context.pushLocalContext(model); factory.getTemplate("out.ctl").render(context); context.clear(); output.flush(); } catch (Exception e) { e.printStackTrace(); } finally { if (output != null) { try { output.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
测试配置: commontemplate.properties
@extends=org/commontemplate/tools/commontemplate.properties debug=true
测试模板: out.ctl
ttttt ${allow} $breakpoint $if{users != null && users.size > 0} <table> $for{user: users} <tr> <td>${user.name}</td> </tr> $end </table> $end $for{num: 1..3} ${num} $end
引擎遇到$breakpoint指令时, 弹出附件所示界面.
高亮显示当前运行的指令, 上下文中的变量.
点击"Step"单步运行,
点击"Step Over"单步越过块指令的内部指令运行(非块指令此按钮不可用),
点击"Resume"恢复正常运行(直到下一$breakpoint),
点击"Terminate"终止运行.
注: 当commontemplate.properties配置: debug=true 时才启用调试, 否则忽略$breakpoint指令以及其它debug指令.
尚未美化界面, 暂先保证功能实现.
JFrame未重用(每一步都创建窗口), 所以调试时会出现窗口闪动, 待完善.
评论
4 楼
javatar
2008-04-24
完成修改:
通过ThreadLocal将Debug窗口锁定, 一次调试过程复用同一个窗口, 不再出现闪烁.
已更新到每日构建jar包中:
http://commontemplate.googlecode.com/svn/trunk/commontemplate/dist/
或者用SVN下载开发目录:
svn checkout http://commontemplate.googlecode.com/svn/trunk/ commontemplate-read-only
直接导入项目到Eclipse中, 然后运行src/test/java/integration.OutTester进行测试.
通过ThreadLocal将Debug窗口锁定, 一次调试过程复用同一个窗口, 不再出现闪烁.
已更新到每日构建jar包中:
http://commontemplate.googlecode.com/svn/trunk/commontemplate/dist/
或者用SVN下载开发目录:
svn checkout http://commontemplate.googlecode.com/svn/trunk/ commontemplate-read-only
直接导入项目到Eclipse中, 然后运行src/test/java/integration.OutTester进行测试.
3 楼
javatar
2008-04-22
1. 加入Step Return, 使Step功能齐全(Into, Over, Return).
2. 加入变量类型框
3. 将UI风格设成与当前系统相同风格.
4. 按钮改成图片.
5. 显示时, 保持模块源的缩进格式.
6. 改为采用反显背景色提示当前运行指令所在位置, 使可以看到空白符.
2. 加入变量类型框
3. 将UI风格设成与当前系统相同风格.
4. 按钮改成图片.
5. 显示时, 保持模块源的缩进格式.
6. 改为采用反显背景色提示当前运行指令所在位置, 使可以看到空白符.
2 楼
javatar
2008-04-21
有朋友建议, 在调试过程中, 动态修改变量栈的值. (现在只能查看), 下一版本将考虑这个建议.
1 楼
jasongreen
2008-04-21
so cool!
发表评论
-
以HTTL为例讲讲模块分包&领域模型&扩展框架
2011-10-09 20:08 16756注:该博客内容已加入 ... -
CommonTemplate增加HTML标签版语法外套
2008-09-09 10:33 2975CommonTemplate(http://www.commo ... -
CommonTemplate访问者设计思考
2008-09-03 10:45 1783经过多个版本的调整, CommonTemplate(http: ... -
CommonTemplate发布0.8.6版本
2008-08-26 20:49 1804CommonTemplate发布0.8.6版本 ... -
CommonTemplate发布0.8.5版本
2008-08-04 13:23 1898CommonTemplate发布0.8.5版本(2008-08 ... -
CommonTemplate加入代码生成器
2008-07-21 13:15 2248模板引擎经常被用于做代码生成, 为此, CommonTempl ... -
加入对YAML数据格式的支持
2008-07-01 12:41 4006CommonTemplate(http://www.commo ... -
嵌套注释语法思考
2008-06-29 14:40 4024主流的C/C++/Java/C#等语言,都将注释语法设计成不可 ... -
转:开源协议
2008-06-10 17:23 2234来源:网络 (1)Contrib ... -
CommonTemplate完成查看器Viewer.exe(及安装程序)
2008-06-04 15:12 1876完成查看器初始版本. 实现功能: 双击*.ctl文件, 自动读 ... -
CommonTemplate完成外部构建树或表达式接口
2008-05-31 11:01 1952CommonTemplate: http://www.comm ... -
CommonTemplate异常国际化完成
2008-05-26 11:48 1929周未把一个累活给干了, 就是异常信息的国际化. 总共有220多 ... -
CommonTemplate加入对无穷数的支持.
2008-05-23 11:07 2743用"*"号表示无穷数, 常在下标号中使用, ... -
CommonTemplate导出模板所需变量结构
2008-05-12 18:28 2263在velocity的邮件列表中收到下面的邮件: Simon G ... -
CommonTemplate完成$snatch指令
2008-05-06 09:20 1906CommonTemplate(http://www.commo ... -
关于CTE当前API无法支持从非引擎方式构建模板树
2008-04-28 17:20 1798因隐藏了模板树的实现, 现在CommonTemplate(ht ... -
CommonTemplate准备加入$breakpoint指令
2008-04-19 10:30 2211准备在CommonTemplate( http://www.c ... -
很高兴桂林兄加入CommonTemplate的开发
2008-04-05 20:49 2934桂林的blog: http://jasongreen.itey ... -
展开式序列实现
2008-03-31 22:47 2104现在CommonTemplate(http://www.com ... -
CommonTemplate 0.8.3 版本发布
2008-03-31 15:05 2212项目地址: http://www.commontemplat ...
相关推荐
Eclipse 的单步调试是指在 Eclipse 集成开发环境(IDE)中使用单步调试功能来 debug Java 程序。单步调试功能可以帮助开发者逐步执行程序,检查程序的执行结果,改变变量的值,检查代码段执行结果等。 设置断点 在...
本文将深入探讨CodeBlocks中的单步调试功能,并通过详细步骤指导如何进行有效的单步调试。 1. **什么是单步调试**:单步调试是一种逐行执行程序的方法,它允许程序员观察每一步的执行情况,包括变量的变化、函数...
CodeBlocks IDE的单步调试功能主要集中在“Debug”菜单中,这个菜单包含了丰富的调试工具,供程序员在程序出错时选择使用。然而,在日常使用中,通过工具栏或快捷键进行单步调试往往更加方便快捷。CodeBlocks允许...
在嵌入式Linux系统中,调试程序是一项至关重要的任务,特别是在遇到复杂问题时,单步调试可以帮助开发者逐步跟踪代码执行,查找和修复错误。本文主要介绍如何在QtCreator中进行嵌入式ARM程序的单步调试,以下是详细...
### VC6.0单步调试知识点详解 #### 一、基础知识 **单步调试**是在软件开发中一种常用的调试技术,它允许开发者逐步执行程序,从而观察程序在每一行代码执行后的状态变化,有助于理解程序流程及定位错误。在Visual ...
### VxWorks单步调试环境的搭建 #### 一、项目编译及VxWorks OS组件配置 在搭建VxWorks单步调试环境的过程中,首先需要进行的是项目的编译及VxWorks操作系统的相关组件配置。 1. **编译设置**: - 在项目编译...
1. IntelliJ IDEA 远程 debug 连接 Tomcat 实现单步调试的概念和原理 IntelliJ IDEA 是一款功能强大的集成开发环境(IDE),它提供了强大的调试功能,包括远程 debug 连接 Tomcat 实现单步调试。远程 debug 连接 ...
首先,为了能够进行单步调试,我们需要确保编译器生成包含调试信息的可执行文件。在Dev C++中,这可以通过以下步骤实现: 1. 打开Dev C++,进入“Tools”菜单,选择“Compiler Options”(编译器选项)。 2. 在弹出...
- 如果在首次调试时遇到了错误,可以尝试重新配置AXD,并通过“Files->Load Debug Symbols”加载TQ2440_Test.axf文件,以便正常加载镜像并进行单步调试。 #### JlinkV7单步调试 **配置步骤:** 1. **加载DLL文件:...
### 使用Eclipse单步调试JNI代码(方法2) #### 环境配置 为了能够有效地进行JNI代码的调试,首先需要确保以下环境已正确配置: - **ADT Bundle**: Eclipse版本为Juno - **NDK**: 版本r9 - **JDK**: 版本8 - **...
本文将详细解释如何进行Android源码的单步调试。 首先,要进行源码跟踪和调试,你需要确保已经成功编译了Android系统源码。编译完成后,你会在`out/target/product/generic`目录下找到三个关键的镜像文件:`system....
2. 启动调试:在主菜单中选择"Debug" -> "Start debugging"(或者按F9键)。程序将以调试模式运行,首先在第一个断点处暂停。 3. 单步执行:在调试模式下,你可以使用以下快捷键进行单步调试: - F7:步入(Step ...
标题中的"Caffe怎么单步调试?"是指在开发或优化Caffe深度学习框架时,如何进行源代码级别的调试,以理解和解决可能出现的问题。Caffe是一个高效、模块化的深度学习库,广泛应用于计算机视觉和机器学习任务。对于...
- 通过Debug As->Android Native Application启动调试,使用F6进行单步调试。 9. **问题排查**: - 如果调试失败,检查端口占用情况,释放被占用的调试端口,或者给相关文件添加执行权限。 10. **Eclipse调试...
9. **完成调试**:完成调试后,点击“继续”按钮,代码将继续执行直到结束,或者再次遇到下一个断点。你可以随时添加、删除或修改断点,以适应不同的调试需求。 通过以上步骤,你就可以在PHP 5.6环境中使用Zend ...
在Oracle 10g及以后的版本中,引入了新的接口JDWP(Java Debug Wire Protocol)用于调试PL/SQL和存储的Java过程。然而,Toad同时支持JDWP和DBMS_DEBUG接口,并且推荐在不涉及Java代码调试时继续使用DBMS_DEBUG,因为...
然后在左侧调试面板选择刚才创建的“Debug Skynet”配置,点击绿色的运行按钮或使用`F5`快捷键启动调试会话。 在调试过程中,你可以观察变量的值,步进执行代码,查看调用堆栈等。Skynet的调试控制台(`debug_...
DebugView是一款强大的系统调试工具,由微软的Sysinternals团队开发。它允许用户捕获、查看和分析控制台输出,包括应用程序的日志消息、调试输出以及内核模式调试信息。这款工具对于软件开发者、系统管理员以及任何...
MyEclipse Debug 调试步骤总结 MyEclipse Debug 调试是 Java Web 项目开发中非常重要的一步,正确的 Debug 调试可以帮助开发者快速地定位和解决问题。本文将总结 MyEclipse Debug 调试步骤,帮助开发者快速上手使用...