English
购物车图片 购物车 ( )
专业的品牌服务,为您创造更高的价值
总体概述 客户评价

【干货分享】命令行调试工具-DMDBG的使用介绍



在达梦数据库中,我们可以利用DM PL/SQL进行存储过程及函数的编写。有时,我们编写的程序块中可能会有BUG导致编译失败,这种情况下就需要用到相关工具来进行调试。在有图形化界面的情况下,我们可以利用管理工具来进行匿名块的调试。

 

【干货分享】命令行调试工具-DMDBG的使用介绍


但是当我们没有图形界面,或者通过远程连接服务器的时候,我们也可以利用达梦提供的命令行调试工具dmdbg,来完成同样的任务。dmdbg跟disql同级目录,都在dmdbms/bin目录下,登录方式同disql:


[root@localhost bin]# ./dmdbg SYSDBA:5236 

dmdbg V7.6.0.96-Build(2018.09.19-97292)ENT 

login time used:6.918(ms) 

服务器[LOCALHOST:5236]:处于普通打开状态 

DBG>


输入help我们可以看到他提供的功能和对应按键:


【干货分享】命令行调试工具-DMDBG的使用介绍




这里只截取了其中一部分,其中用的比较多的是其中的SQL ,B,R,N,S等。

注意,2018年中往后的版本需要开启debug的包

位置如下:


【干货分享】命令行调试工具-DMDBG的使用介绍


下面我们构造一段有问题的代码,并演示如何分步调试

代码如下:

/*当tt到3的时候就会报除0错误*/

create or replace procedure TEST_DMDBG 

as

aa int;

begin

   for i in 1..3

   loop

     aa = 1 / (3-i);

     print aa;

   end loop;

end;


如果执行call TEST_DMDBG,系统就会报错,因此我们将call TEST_DMDBG;作为我们调试的语句


创建完成后,我们登录到dmdbg中,然后把call TEST_DMDBG;放到sql里

DBG> sql call TEST_DMDBG;

DBG>


然后我们添加断点,由于我的习惯一般是从头开始调试,因此会将断点放到最开始的位置,大家可以在需要的行数打上断点。

DBG> B 0

Breakpoint 1 at @dbg_main, line: 1@{call TEST_DMDBG;}


接下来我们输入r,开始debug

DBG> r

Breakpoint 1,  line: 1@{call TEST_DMDBG;}


输入s,进入到循环里调试

DBG> s

SYSDBA.TEST_DMDBG line: 5       @{   for i in 1..3}


DBG> s

SYSDBA.TEST_DMDBG line: 7       @{     aa = 1 / (3-i);}

输入bt,可以查看当前的堆栈


DBG> bt

#0      SYSDBA.TEST_DMDBG()     line: 7@{     aa = 1 / (3-i);}

#1      @dbg_main       line: 1@{call TEST_DMDBG;}


如果我们想要查看当前变量的数值,可以通过P 变量名的方式输出打印


DBG> p aa

$3 = 0


至此,问题可以看出是由于i=3时出现了除0的错误,我们就可以开始修改程序



客户资料:
年缴保费:
客户需求:



在达梦数据库中,我们可以利用DM PL/SQL进行存储过程及函数的编写。有时,我们编写的程序块中可能会有BUG导致编译失败,这种情况下就需要用到相关工具来进行调试。在有图形化界面的情况下,我们可以利用管理工具来进行匿名块的调试。

 

【干货分享】命令行调试工具-DMDBG的使用介绍


但是当我们没有图形界面,或者通过远程连接服务器的时候,我们也可以利用达梦提供的命令行调试工具dmdbg,来完成同样的任务。dmdbg跟disql同级目录,都在dmdbms/bin目录下,登录方式同disql:


[root@localhost bin]# ./dmdbg SYSDBA:5236 

dmdbg V7.6.0.96-Build(2018.09.19-97292)ENT 

login time used:6.918(ms) 

服务器[LOCALHOST:5236]:处于普通打开状态 

DBG>


输入help我们可以看到他提供的功能和对应按键:


【干货分享】命令行调试工具-DMDBG的使用介绍




这里只截取了其中一部分,其中用的比较多的是其中的SQL ,B,R,N,S等。

注意,2018年中往后的版本需要开启debug的包

位置如下:


【干货分享】命令行调试工具-DMDBG的使用介绍


下面我们构造一段有问题的代码,并演示如何分步调试

代码如下:

/*当tt到3的时候就会报除0错误*/

create or replace procedure TEST_DMDBG 

as

aa int;

begin

   for i in 1..3

   loop

     aa = 1 / (3-i);

     print aa;

   end loop;

end;


如果执行call TEST_DMDBG,系统就会报错,因此我们将call TEST_DMDBG;作为我们调试的语句


创建完成后,我们登录到dmdbg中,然后把call TEST_DMDBG;放到sql里

DBG> sql call TEST_DMDBG;

DBG>


然后我们添加断点,由于我的习惯一般是从头开始调试,因此会将断点放到最开始的位置,大家可以在需要的行数打上断点。

DBG> B 0

Breakpoint 1 at @dbg_main, line: 1@{call TEST_DMDBG;}


接下来我们输入r,开始debug

DBG> r

Breakpoint 1,  line: 1@{call TEST_DMDBG;}


输入s,进入到循环里调试

DBG> s

SYSDBA.TEST_DMDBG line: 5       @{   for i in 1..3}


DBG> s

SYSDBA.TEST_DMDBG line: 7       @{     aa = 1 / (3-i);}

输入bt,可以查看当前的堆栈


DBG> bt

#0      SYSDBA.TEST_DMDBG()     line: 7@{     aa = 1 / (3-i);}

#1      @dbg_main       line: 1@{call TEST_DMDBG;}


如果我们想要查看当前变量的数值,可以通过P 变量名的方式输出打印


DBG> p aa

$3 = 0


至此,问题可以看出是由于i=3时出现了除0的错误,我们就可以开始修改程序



相关案例
2020 - 06 - 19
点击次数: 0
DM8介绍DM8作为达梦公司新一代自研数据库,融合了分布式、弹性计算与云计算的优势,对灵活性、易用性、可靠性、高安全性等方面进行了大规模改进,多样化架构充分满足不同场景需求,支持超大规模并发事务处理和事务-分析混合型业务处理,动态分配计算资源,实现更精细化的资源利用、更低成本的投入。一个数据库,满足用户多种需求,让用户能更加专注于业务发展。自DM8产品上线以来,广受应用,达梦大学已于2020年6月...
2020 - 06 - 18
点击次数: 0
学员们,大家好呀!一年一度的618电商大促又来啦大家都准备买些什么?零食、书籍、水果.....还是手机、笔电、游戏机?不趁着活动囤一波,对得起手机里的APP啵?来,一起喊口号:钱包可能干扁,购物欲望不会减!花呗可能超出,拼单付款不会输!月光可能不停,优惠算法我会赢!加购可能太多,购完手也不会剁!优惠券、专属红包、叠蛋糕、组团助力.....在优惠的套路里,哪有人能逃脱它的魔咒?!只怪,为什么身边没个...
2020 - 06 - 10
点击次数: 0
DM8介绍DM8作为达梦公司新一代自研数据库,融合了分布式、弹性计算与云计算的优势,对灵活性、易用性、可靠性、高安全性等方面进行了大规模改进,多样化架构充分满足不同场景需求,支持超大规模并发事务处理和事务-分析混合型业务处理,动态分配计算资源,实现更精细化的资源利用、更低成本的投入。一个数据库,满足用户多种需求,让用户能更加专注于业务发展。自DM8产品上线以来,广受应用,达梦大学已于2020年6月...
2020 - 05 - 20
点击次数: 0
似水季节,石榴花开520如期而至空气中弥漫着甜蜜的气味又到一年一度爱意涌动的季节2020年注定是特殊的一年,疫情阴霾之下,涌现出无数英雄事迹,体现出中华民族坚韧不拔、同舟共济的精神。多难兴邦,相信阳光总在风雨后!尽管没有亲密聚会,没有握手,但人类迎难而上的精神相互碰撞出各种火花——云植树、云吸猫、云招聘、云婚礼...通过网络,人们互相激励、共勉互进!♥♥♥ 520网络情人节疫情可以隔离社...
官网微信公众号官方微信公众号
官方技术咨询一群官方技术咨询一群
官方技术咨询二群官方技术咨询二群
官网培训咨询QQ官网培训咨询QQ
支持:dmtech@dameng.com
地址:中国·武汉·东湖新技术开发区高新大道999号未来科技大厦C3栋16-19层
咨询热线:400 991 6599
传真:+86 0755-2788 8009
友情链接:
鄂Copyright ©2017 - 2019 武汉达梦数据库有限公司
犀牛云提供企业云服务
X
3

电话号码

4

阿里旺旺设置

1

在线咨询

等待加载动态数据...

等待加载动态数据...

5

电话号码管理

6

二维码管理

  • 微信二维码

    微信二维码

等待加载动态数据...

等待加载动态数据...

展开