jdb调试scala代码的简单介绍

时间:2022-12-10 15:33:31

在linux调试C/C++的代码需要通过gdb,调试java代码呢?那就需要用到jdb工具了。关于jdb的用法在网上大家都可以找到相应的文章,但是对scala进行调试的就比较少了。其实调试的大致流程都是一样的,只是需要注意一些细节的地方就可以了。下面就来简单说明一下。在这里关于scala和jdk的配置问题就不再详述了,下面进入正题吧。

首先放上调试用的scala代码hello.scala

object hello {
def main(args: Array[String]): Unit = {
println("Hello, world!")
var a = 10
var b = 20
var c = a + b
println(c) var d = 1 + a;
if(d == 11) {
println("aaaaaaaaa")
}
}
}

有了文件后需要通过下面的命令将其编译成虚拟机识别的字节流。关于scalac的参数可以通过scalac -help进行查看。

scalac -g:vars hello.scala

命令执行后会发现目录下生成了两个文件:hello.class  hello$.class

如果你同过java直接运行的话会出现如下的错误,这是因为你没有指定scala的jar包。

jdb调试scala代码的简单介绍

如果你想通过java来运行的话指定了classpath也是可以的,这个对后面jdb调试scala是很重要的。

jdb调试scala代码的简单介绍

当然通过scala hello是可以正确运行的。 当然你不手动编译生成字节流文件直接运行scala hello.scala也是可以的。

jdb调试scala代码的简单介绍

不知道什么原因导致在linux上通过scala hello.scala会崩溃。我怀疑可能是我机器的内存太小导致的,因为是使用的vps的memory只有512M!!!。不过scala hello.scala在win上运行是可以通过的。

以上都是准备工作现在是到了调试的时候了。

jdb调试scala代码的简单介绍

jdb调试scala代码的简单介绍

图中的差异请自行补脑,因为我自己也没怎么搞清楚,貌似是scala中的object造成的。 有熟悉这个的话希望大家能下来后多多交流,在这里表示感谢了哈。

有兴趣的话可以去http://scala-language.1934581.n4.nabble.com/debugging-scala-programs-td1943959.html看下Chris Waterson的评论。

因为是第一次写博客心里也没有谱,有问题的地方请大家指正。格式比较丑陋,大家多多包涵哈!^_^

jdb调试scala代码的简单介绍的更多相关文章

  1. Android调试常用的工具简单介绍

    配置Android环境的时候,我们需要安装sdk.在sdk的目录下: platform-tools 目录下的adb tool下的: ddms.bat adb :可以cd 当前目录,然后使用相应的命令, ...

  2. Firebug调试js代码

    Firebug功能异常强大,不仅可以调试DOM,CSS,还可以调试JS代码,下面介绍一下调试JS. 1.认识console对象 console对象是Firebug内置的对象,该对象可以在代码中写入,可 ...

  3. 第一次玩博客,今天被安利了一个很方便JDBC的基于Spring框架的一个叫SimpleInsert的类,现在就来简单介绍一下

    首先先对这段代码的简单介绍,我之前在需要操作JDBC的时候总是会因为经常要重新写SQL语句感到很麻烦.所以就能拿则拿不能拿的就简单地封装了一下. 首先是Insert.Spring框架的JDBC包里面的 ...

  4. 内核调试神器SystemTap — 简单介绍与使用(一)

    a linux trace/probe tool. 官网:https://sourceware.org/systemtap/ 简单介绍 SystemTap是我眼下所知的最强大的内核调试工具,有些家伙甚 ...

  5. unity Dotween插件的简单介绍及示例代码

    unity里面做插值动画的插件有许多,比较常见的有itween.hotween.dotween.根据大家的反馈和实际体验来说,dotween插件在灵活性.稳定性.易用性上都十分突出.这里简单介绍下它的 ...

  6. 在Ubuntu中使用JDB调试代码

    在Ubuntu中使用JDB调试代码 了解JDB JDB是JDK安装的一部分,是基于文本和命令行的调试工具,JDB是可以免费获取且平*立的,缺点是只有命令行格式. JDB基础命令 在方法中设置断点st ...

  7. Android平台Camera实时滤镜实现方法探讨(十)--代码地址以及简单介绍(20160118更新)

    简单做了个相机和图片编辑模块,时间原因非常多功能还没有做.尚有BUG,见谅,将在以后抽时间改动 代码地址 PS:请点个Star^-^ --------------------------------- ...

  8. 远程debug调试java代码

    远程debug调试java代码 日常环境和预发环境遇到问题时,可以用远程调试的方法本地打断点,在本地调试.生产环境由于网络隔离和系统稳定性考虑,不能进行远程代码调试. 整体过程是通过修改远程服务JAV ...

  9. 使用Kotlin开发Android应用(I):简单介绍

    使用Kotlin开发Android应用(I):简单介绍 @author ASCE1885的 Github 简书 微博 CSDN 原文链接 Kotlin是一门基于JVM的编程语言.它正成长为Androi ...

随机推荐

  1. 在 C# 中执行 msi 安装

    有时候我们需要在程序中执行另一个程序的安装,这就需要我们去自定义 msi 安装包的执行过程. 需求 比如我要做一个安装管理程序,可以根据用户的选择安装不同的子产品.当用户选择了三个产品时,如果分别显示 ...

  2. 用node-webkit把web应用打包成桌面应用

    node-webkit是一个Chromium和node.js上的结合体,通过它我们可以把建立在chrome浏览器和node.js上的web应用打包成桌面应用,而且还可以跨平台的哦.很显然比起传统的桌面 ...

  3. mac os利用xampp实现apache下的cgi

    折腾了两天终于把问题解决了,mac os是10.10.3..够新了吧 系统原生的apache配置cgi老是配不好,突然发现xampp也有macos版的,准备下下来试试. 安装完成后,打开apache服 ...

  4. Mysql规范和使用注意点(转)

    命名规范: 1表名,字段名,索引名称使用小写字母,数字采用下划线进行分割 2.表名采用模块名3个缩小字符 '前缀'之后顺序为表明 3.表名,字段名不超过32个字符 4.存储尸体数据的表,名称使用名词, ...

  5. 二、PHP基本语法 - PHP零基础快速入门

    我们日常生活中,有些人使用普通话交流,有些人使用家乡话.类比到计算机的世界里,PHP 是人与计算机沟通的语言之一. 既然是语言,那就必须遵循一定的语法规则.譬如 A 向 B 表白,A 会对 B 说:& ...

  6. PHP 以最快的方式判断字符串是否以某给定字符串开始

    好久没搞代码了,最近找工作,重操旧业,在整理以前写的框架的时候发现,之前的自动加载部分执行速度上还是有可优化空间的,就是如果类名是以 risen\ 开始的(我的框架中的类都在此命名空间下),那么可直接 ...

  7. tf.trainable_variables() and tf.all_variables()

    tf.trainable_variables()  返回的是 所有需要训练的变量列表 tf.all_variables() 返回的是 所有变量的列表 v = tf.Variable(0, name=' ...

  8. es6笔记(1) 概要

    什么是ES6 ECMAScript 6.0 (简称ES6) 是继ECMAScript 5.1以后的javascript 语言的下一代标准,在2015年6月份发布. 他的目标是使javascript语言 ...

  9. 动态调用WCF不添加服务(svcutil.exe)

    记录下 首先用svcutil.exe把指定wcf接口的信息下载下来. 生成代理类 比如说接口地址为 http://localhost:6666/Service1.svc 以管理员身份打开cmd 执形 ...

  10. Hello World 和 模块分解

    Hello World 和 模块分解 在命令行中编译运行HelloWorld public class HelloWorld { public static void main(String[] ar ...