Debugger: use extract method to get function arguments

This commit is contained in:
Natalia Ukhorskaya
2014-04-15 14:12:02 +04:00
parent 084c72f91c
commit 2ffcc5124e
25 changed files with 422 additions and 64 deletions
@@ -0,0 +1,7 @@
LineBreakpoint created at classObjectVal.kt:10
!JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !APP_PATH!\classes;!KOTLIN_RUNTIME!;!RT_JAR! classObjectVal.ClassObjectValPackage
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
classObjectVal.kt:9
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
Process finished with exit code 0
@@ -0,0 +1,7 @@
LineBreakpoint created at enums.kt:7
!JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !APP_PATH!\classes;!KOTLIN_RUNTIME!;!RT_JAR! enums.EnumsPackage
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
enums.kt:6
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
Process finished with exit code 0
@@ -0,0 +1,7 @@
LineBreakpoint created at extractLocalVariables.kt:7
!JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !APP_PATH!\classes;!KOTLIN_RUNTIME!;!RT_JAR! extractLocalVariables.ExtractLocalVariablesPackage
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
extractLocalVariables.kt:6
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
Process finished with exit code 0
@@ -0,0 +1,7 @@
LineBreakpoint created at extractThis.kt:12
!JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !APP_PATH!\classes;!KOTLIN_RUNTIME!;!RT_JAR! extractThis.ExtractThisPackage
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
extractThis.kt:11
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
Process finished with exit code 0
@@ -0,0 +1,7 @@
LineBreakpoint created at extractVariablesFromCall.kt:8
!JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !APP_PATH!\classes;!KOTLIN_RUNTIME!;!RT_JAR! extractVariablesFromCall.ExtractVariablesFromCallPackage
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
extractVariablesFromCall.kt:7
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
Process finished with exit code 0
@@ -0,0 +1,7 @@
LineBreakpoint created at multilineExpressionAtBreakpoint.kt:5
!JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !APP_PATH!\classes;!KOTLIN_RUNTIME!;!RT_JAR! multilineExpressionAtBreakpoint.MultilineExpressionAtBreakpointPackage
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
multilineExpressionAtBreakpoint.kt:4
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
Process finished with exit code 0
@@ -0,0 +1,7 @@
LineBreakpoint created at vars.kt:7
!JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !APP_PATH!\classes;!KOTLIN_RUNTIME!;!RT_JAR! vars.VarsPackage
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
vars.kt:6
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
Process finished with exit code 0
@@ -6,10 +6,10 @@ fun main(args: Array<String>) {
}
// EXPRESSION: array(1, 2).map { it.toString() }
// RESULT: instance of java.util.ArrayList(id=347): Ljava/util/ArrayList;
// RESULT: instance of java.util.ArrayList(id=ID): Ljava/util/ArrayList;
// EXPRESSION: array(1, 2, 101, 102).filter { it > 100 }
// RESULT: instance of java.util.ArrayList(id=369): Ljava/util/ArrayList;
// RESULT: instance of java.util.ArrayList(id=ID): Ljava/util/ArrayList;
// EXPRESSION: array(1, 2).none()
// RESULT: 0: Z
@@ -27,7 +27,7 @@ fun main(args: Array<String>) {
// RESULT: 2: I
// EXPRESSION: intArray(1, 2).max()
// RESULT: instance of java.lang.Integer(id=343): Ljava/lang/Integer;
// RESULT: instance of java.lang.Integer(id=ID): Ljava/lang/Integer;
// EXPRESSION: array(1, 2).max()
// RESULT: instance of java.lang.Integer(id=343): Ljava/lang/Integer;
// RESULT: instance of java.lang.Integer(id=ID): Ljava/lang/Integer;
@@ -0,0 +1,22 @@
package classObjectVal
fun main(args: Array<String>) {
MyClass().test()
}
class MyClass {
fun test() {
//Breakpoint!
val a = 1
}
class object {
val coProp = 1
}
}
// EXPRESSION: coProp
// RESULT: 1: I
// EXPRESSION: MyClass.coProp
// RESULT: 1: I
@@ -5,20 +5,20 @@ fun main(args: Array<String>) {
args.size
}
//// EXPRESSION: arrayListOf(1, 2).map { it.toString() }
//// RESULT: instance of java.util.ArrayList(id=380): Ljava/util/ArrayList;
//
//// EXPRESSION: arrayListOf(1, 2, 101, 102).filter { it > 100 }
//// RESULT: instance of java.util.ArrayList(id=390): Ljava/util/ArrayList;
//
// EXPRESSION: arrayListOf(1, 2).map { it.toString() }
// RESULT: instance of java.util.ArrayList(id=ID): Ljava/util/ArrayList;
// EXPRESSION: arrayListOf(1, 2, 101, 102).filter { it > 100 }
// RESULT: instance of java.util.ArrayList(id=ID): Ljava/util/ArrayList;
// EXPRESSION: arrayListOf(1, 2).max()
// RESULT: instance of java.lang.Integer(id=343): Ljava/lang/Integer;
//
//// EXPRESSION: arrayListOf(1, 2).count()
//// RESULT: 2: I
//
//// EXPRESSION: arrayListOf(1, 2).size
//// RESULT: 2: I
//
//// EXPRESSION: arrayListOf(1, 2).drop(1)
//// RESULT: instance of java.util.ArrayList(id=411): Ljava/util/ArrayList;
// RESULT: instance of java.lang.Integer(id=ID): Ljava/lang/Integer;
// EXPRESSION: arrayListOf(1, 2).count()
// RESULT: 2: I
// EXPRESSION: arrayListOf(1, 2).size
// RESULT: 2: I
// EXPRESSION: arrayListOf(1, 2).drop(1)
// RESULT: instance of java.util.ArrayList(id=ID): Ljava/util/ArrayList;
@@ -48,7 +48,7 @@ class Delegate {
// EXPRESSION: 1.testExtVal
// RESULT: 1: I
//
// EXPRESSION: testDelVal
// RESULT: 1: I
@@ -0,0 +1,13 @@
package enums
import enums.MyEnum.A
fun main(args: Array<String>) {
//Breakpoint!
args.size
}
enum class MyEnum { A }
// EXPRESSION: A == MyEnum.A
// RESULT: 1: Z
@@ -0,0 +1,25 @@
package extractLocalVariables
fun main(args: Array<String>) {
val a = 1
val klass = MyClass()
//Breakpoint!
klass.f1(a)
}
class MyClass {
val b = 1
fun f1(p1: Int) = p1
}
// EXPRESSION: a
// RESULT: 1: I
// EXPRESSION: klass.f1(1)
// RESULT: 1: I
// EXPRESSION: args.size
// RESULT: 0: I
// EXPRESSION: klass.b
// RESULT: 1: I
@@ -0,0 +1,20 @@
package extractThis
fun main(args: Array<String>) {
MyClass().test()
}
class MyClass {
val prop = 1
fun test() {
//Breakpoint!
val a = 1
}
}
// EXPRESSION: prop
// RESULT: 1: I
// EXPRESSION: this.prop
// RESULT: 1: I
@@ -0,0 +1,28 @@
package extractVariablesFromCall
fun main(args: Array<String>) {
val a = 1
val s = "str"
val klass = MyClass()
//Breakpoint!
val c = 0
}
fun f1(i: Int, s: String) = i + s.size
fun Int.f2(s: String) = this + s.size
class MyClass {
fun f1(i: Int, s: String) = i + s.size
}
// EXPRESSION: f1(a, s)
// RESULT: 4: I
// EXPRESSION: a.f2(s)
// RESULT: 4: I
// EXPRESSION: a f2 s
// RESULT: 4: I
// EXPRESSION: klass.f1(a, s)
// RESULT: 4: I
@@ -11,13 +11,13 @@ fun main(args: Array<String>) {
}
// EXPRESSION: Collections.emptyList<String>()
// RESULT: instance of java.util.Collections$EmptyList(id=337): Ljava/util/Collections$EmptyList;
// RESULT: instance of java.util.Collections$EmptyList(id=ID): Ljava/util/Collections$EmptyList;
// EXPRESSION: ArrayList<Int>()
// RESULT: instance of java.util.ArrayList(id=383): Ljava/util/ArrayList;
// RESULT: instance of java.util.ArrayList(id=ID): Ljava/util/ArrayList;
// EXPRESSION: HashSet<Int>()
// RESULT: instance of java.util.HashSet(id=387): Ljava/util/HashSet;
// RESULT: instance of java.util.HashSet(id=ID): Ljava/util/HashSet;
// EXPRESSION: JHashMap<Int, Int>()
// RESULT: instance of java.util.HashMap(id=391): Ljava/util/HashMap;
// RESULT: instance of java.util.HashMap(id=ID): Ljava/util/HashMap;
@@ -0,0 +1,11 @@
package multilineExpressionAtBreakpoint
fun main(args: Array<String>) {
//Breakpoint!
args
.size
.indices
}
// EXPRESSION: 1 + 1
// RESULT: 2: I
@@ -6,19 +6,19 @@ fun main(args: Array<String>) {
}
// EXPRESSION: array(100, 101)
// RESULT: instance of java.lang.Integer[2] (id=338): [Ljava/lang/Integer;
// RESULT: instance of java.lang.Integer[2] (id=ID): [Ljava/lang/Integer;
// EXPRESSION: array("a", "b", "c")
// RESULT: instance of java.lang.String[3] (id=346): [Ljava/lang/String;
// RESULT: instance of java.lang.String[3] (id=ID): [Ljava/lang/String;
// EXPRESSION: intArray(1, 2)
// RESULT: instance of int[2] (id=352): [I
// RESULT: instance of int[2] (id=ID): [I
// EXPRESSION: javaClass<String>()
// RESULT: instance of java.lang.Class(reflected class=java.lang.String, id=194): Ljava/lang/Class;
// RESULT: instance of java.lang.Class(reflected class=java.lang.String, id=ID): Ljava/lang/Class;
// EXPRESSION: javaClass<Int>()
// RESULT: instance of java.lang.Class(reflected class=int, id=355): Ljava/lang/Class;
// RESULT: instance of java.lang.Class(reflected class=int, id=ID): Ljava/lang/Class;
// EXPRESSION: 100.toInt()
// RESULT: 100: I
@@ -0,0 +1,17 @@
package vars
fun main(args: Array<String>) {
var a = 1
a += 1
//Breakpoint!
args.size
}
// EXPRESSION: a
// RESULT: 2: I
// EXPRESSION: a += 1
// RESULT: 3: I
// EXPRESSION: a
// RESULT: 2: I