Implement extra variables for debugger

This commit is contained in:
Natalia Ukhorskaya
2015-01-21 15:40:51 +03:00
parent 3a03cb48df
commit 2f931f36c8
30 changed files with 811 additions and 12 deletions
@@ -9,7 +9,7 @@ import kotlin.properties.Delegates
fun main(args: Array<String>) {
val a = A()
//Breakpoint!
args.size
args.size()
}
class A {
@@ -0,0 +1,36 @@
LineBreakpoint created at evBreakpointOnPropertyDeclaration.kt:14
!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!;!CUSTOM_LIBRARY!;!RT_JAR! evBreakpointOnPropertyDeclaration.EvBreakpointOnPropertyDeclarationPackage
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
evBreakpointOnPropertyDeclaration.kt:14
package evBreakpointOnPropertyDeclaration
class A {
var prop = 1
}
fun main(args: Array<String>) {
val a1 = A()
val a2 = A()
val a3 = A()
val p1 = a1.prop
//Breakpoint!
val p2 = a2.prop
val p3 = a3.prop
}
// PRINT_FRAME
frame = main():14, EvBreakpointOnPropertyDeclarationPackage$@packagePartHASH {evBreakpointOnPropertyDeclaration}
static = static = evBreakpointOnPropertyDeclaration.EvBreakpointOnPropertyDeclarationPackage$@packagePartHASH
local = args: java.lang.String[] = {java.lang.String[0]@uniqueID} (sp = evBreakpointOnPropertyDeclaration.kt, 7)
local = a1: evBreakpointOnPropertyDeclaration.A = {evBreakpointOnPropertyDeclaration.A@uniqueID} (sp = evBreakpointOnPropertyDeclaration.kt, 8)
field = prop: int = 1 (sp = evBreakpointOnPropertyDeclaration.kt, 4)
local = a2: evBreakpointOnPropertyDeclaration.A = {evBreakpointOnPropertyDeclaration.A@uniqueID} (sp = evBreakpointOnPropertyDeclaration.kt, 9)
field = prop: int = 1 (sp = evBreakpointOnPropertyDeclaration.kt, 4)
local = a3: evBreakpointOnPropertyDeclaration.A = {evBreakpointOnPropertyDeclaration.A@uniqueID} (sp = evBreakpointOnPropertyDeclaration.kt, 10)
field = prop: int = 1 (sp = evBreakpointOnPropertyDeclaration.kt, 4)
local = p1: int = 1 (sp = evBreakpointOnPropertyDeclaration.kt, 12)
extra = a2.prop
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
Process finished with exit code 0
@@ -0,0 +1,31 @@
LineBreakpoint created at evDelegatedProperty.kt:13
!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!;!CUSTOM_LIBRARY!;!RT_JAR! evDelegatedProperty.EvDelegatedPropertyPackage
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
evDelegatedProperty.kt:13
package evDelegatedProperty
import kotlin.properties.Delegates
class A {
var prop: Int by Delegates.notNull()
}
fun main(args: Array<String>) {
val a = A()
a.prop = 1
//Breakpoint!
val b = a.prop
}
// PRINT_FRAME
frame = main():13, EvDelegatedPropertyPackage$@packagePartHASH {evDelegatedProperty}
static = static = evDelegatedProperty.EvDelegatedPropertyPackage$@packagePartHASH
local = args: java.lang.String[] = {java.lang.String[0]@uniqueID} (sp = evDelegatedProperty.kt, 9)
local = a: evDelegatedProperty.A = {evDelegatedProperty.A@uniqueID} (sp = evDelegatedProperty.kt, 10)
field = prop$delegate: kotlin.properties.ReadWriteProperty = {kotlin.properties.NotNullVar@uniqueID} (sp = evDelegatedProperty.kt, 6)
field = value: java.lang.Object = {java.lang.Integer@uniqueID}1 (sp = Delegation.!EXT!)
field = value: int = 1 (sp = Integer.!EXT!)
field = prop: int = 1 (sp = evDelegatedProperty.kt, 6)
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
Process finished with exit code 0
@@ -0,0 +1,26 @@
LineBreakpoint created at evDuplicateItems.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!;!CUSTOM_LIBRARY!;!RT_JAR! evDuplicateItems.EvDuplicateItemsPackage
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
evDuplicateItems.kt:10
package evDuplicateItems
class A {
var prop = 1
}
fun main(args: Array<String>) {
val a = A()
//Breakpoint!
val b = a.prop + a.prop
}
// PRINT_FRAME
frame = main():10, EvDuplicateItemsPackage$@packagePartHASH {evDuplicateItems}
static = static = evDuplicateItems.EvDuplicateItemsPackage$@packagePartHASH
local = args: java.lang.String[] = {java.lang.String[0]@uniqueID} (sp = evDuplicateItems.kt, 7)
local = a: evDuplicateItems.A = {evDuplicateItems.A@uniqueID} (sp = evDuplicateItems.kt, 8)
field = prop: int = 1 (sp = evDuplicateItems.kt, 4)
extra = a.prop
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
Process finished with exit code 0
@@ -0,0 +1,25 @@
LineBreakpoint created at evFinalProperty.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!;!CUSTOM_LIBRARY!;!RT_JAR! evFinalProperty.EvFinalPropertyPackage
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
evFinalProperty.kt:10
package evFinalProperty
class A {
val prop = 1
}
fun main(args: Array<String>) {
val a = A()
//Breakpoint!
val b = a.prop
}
// PRINT_FRAME
frame = main():10, EvFinalPropertyPackage$@packagePartHASH {evFinalProperty}
static = static = evFinalProperty.EvFinalPropertyPackage$@packagePartHASH
local = args: java.lang.String[] = {java.lang.String[0]@uniqueID} (sp = evFinalProperty.kt, 7)
local = a: evFinalProperty.A = {evFinalProperty.A@uniqueID} (sp = evFinalProperty.kt, 8)
field = prop: int = 1 (sp = evFinalProperty.kt, 4)
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
Process finished with exit code 0
@@ -0,0 +1,40 @@
LineBreakpoint created at evLineRange.kt:15
!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!;!CUSTOM_LIBRARY!;!RT_JAR! evLineRange.EvLineRangePackage
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
evLineRange.kt:15
package evLineRange
class A {
var prop = 1
}
fun main(args: Array<String>) {
val a1 = A()
val a2 = A()
val a3 = A()
foo(a1.prop)
val i1 = 1
//Breakpoint!
foo(a2.prop)
val i2 = 1
foo(a3.prop)
}
fun foo(i: Int) {}
// PRINT_FRAME
frame = main():15, EvLineRangePackage$@packagePartHASH {evLineRange}
static = static = evLineRange.EvLineRangePackage$@packagePartHASH
local = args: java.lang.String[] = {java.lang.String[0]@uniqueID} (sp = evLineRange.kt, 7)
local = a1: evLineRange.A = {evLineRange.A@uniqueID} (sp = evLineRange.kt, 8)
field = prop: int = 1 (sp = evLineRange.kt, 4)
local = a2: evLineRange.A = {evLineRange.A@uniqueID} (sp = evLineRange.kt, 9)
field = prop: int = 1 (sp = evLineRange.kt, 4)
local = a3: evLineRange.A = {evLineRange.A@uniqueID} (sp = evLineRange.kt, 10)
field = prop: int = 1 (sp = evLineRange.kt, 4)
local = i1: int = 1 (sp = evLineRange.kt, 13)
extra = a2.prop
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
Process finished with exit code 0
@@ -0,0 +1,28 @@
LineBreakpoint created at evProperty.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!;!CUSTOM_LIBRARY!;!RT_JAR! evProperty.EvPropertyPackage
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
evProperty.kt:10
package evProperty
class A {
var prop = 1
}
fun main(args: Array<String>) {
val a = A()
//Breakpoint!
if (a.prop == 1) {
}
}
// PRINT_FRAME
frame = main():10, EvPropertyPackage$@packagePartHASH {evProperty}
static = static = evProperty.EvPropertyPackage$@packagePartHASH
local = args: java.lang.String[] = {java.lang.String[0]@uniqueID} (sp = evProperty.kt, 7)
local = a: evProperty.A = {evProperty.A@uniqueID} (sp = evProperty.kt, 8)
field = prop: int = 1 (sp = evProperty.kt, 4)
extra = a.prop
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
Process finished with exit code 0
@@ -0,0 +1,29 @@
LineBreakpoint created at evPropertyRefExpr.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!;!CUSTOM_LIBRARY!;!RT_JAR! evPropertyRefExpr.EvPropertyRefExprPackage
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
evPropertyRefExpr.kt:8
package evPropertyRefExpr
class A {
var prop = 1
fun test() {
//Breakpoint!
if (prop == 1) {
}
}
}
fun main(args: Array<String>) {
A().test()
}
// PRINT_FRAME
frame = test():8, A {evPropertyRefExpr}
this = this = {evPropertyRefExpr.A@uniqueID}
field = prop: int = 1 (sp = evPropertyRefExpr.kt, 4)
extra = prop
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
Process finished with exit code 0
@@ -0,0 +1,41 @@
LineBreakpoint created at evSkipAnonymousObject.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!;!CUSTOM_LIBRARY!;!RT_JAR! evSkipAnonymousObject.EvSkipAnonymousObjectPackage
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
evSkipAnonymousObject.kt:12
package evSkipAnonymousObject
class A {
var prop = 1
}
fun main(args: Array<String>) {
val a1 = A()
val a2 = A()
//Breakpoint!
foo(a1.prop)
object: T {
override fun f() {
foo(a2.prop)
}
}
}
trait T {
fun f() {}
}
fun foo(i: Int) {}
// PRINT_FRAME
frame = main():12, EvSkipAnonymousObjectPackage$@packagePartHASH {evSkipAnonymousObject}
static = static = evSkipAnonymousObject.EvSkipAnonymousObjectPackage$@packagePartHASH
local = args: java.lang.String[] = {java.lang.String[0]@uniqueID} (sp = evSkipAnonymousObject.kt, 7)
local = a1: evSkipAnonymousObject.A = {evSkipAnonymousObject.A@uniqueID} (sp = evSkipAnonymousObject.kt, 8)
field = prop: int = 1 (sp = evSkipAnonymousObject.kt, 4)
local = a2: evSkipAnonymousObject.A = {evSkipAnonymousObject.A@uniqueID} (sp = evSkipAnonymousObject.kt, 9)
field = prop: int = 1 (sp = evSkipAnonymousObject.kt, 4)
extra = a1.prop
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
Process finished with exit code 0
@@ -0,0 +1,36 @@
LineBreakpoint created at evSkipLambda.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!;!CUSTOM_LIBRARY!;!RT_JAR! evSkipLambda.EvSkipLambdaPackage
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
evSkipLambda.kt:12
package evSkipLambda
class A {
var prop = 1
}
fun main(args: Array<String>) {
val a1 = A()
val a2 = A()
//Breakpoint!
foo(a1.prop)
l {
foo(a2.prop)
}
}
fun foo(i: Int) {}
fun l(f: () -> Unit) {}
// PRINT_FRAME
frame = main():12, EvSkipLambdaPackage$@packagePartHASH {evSkipLambda}
static = static = evSkipLambda.EvSkipLambdaPackage$@packagePartHASH
local = args: java.lang.String[] = {java.lang.String[0]@uniqueID} (sp = evSkipLambda.kt, 7)
local = a1: evSkipLambda.A = {evSkipLambda.A@uniqueID} (sp = evSkipLambda.kt, 8)
field = prop: int = 1 (sp = evSkipLambda.kt, 4)
local = a2: evSkipLambda.A = {evSkipLambda.A@uniqueID} (sp = evSkipLambda.kt, 9)
field = prop: int = 1 (sp = evSkipLambda.kt, 4)
extra = a1.prop
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
Process finished with exit code 0
@@ -0,0 +1,37 @@
LineBreakpoint created at evSkipLocalClass.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!;!CUSTOM_LIBRARY!;!RT_JAR! evSkipLocalClass.EvSkipLocalClassPackage
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
evSkipLocalClass.kt:12
package evSkipLocalClass
class A {
var prop = 1
}
fun main(args: Array<String>) {
val a1 = A()
val a2 = A()
//Breakpoint!
foo(a1.prop)
class B {
fun bar() {
foo(a2.prop)
}
}
}
fun foo(i: Int) {}
// PRINT_FRAME
frame = main():12, EvSkipLocalClassPackage$@packagePartHASH {evSkipLocalClass}
static = static = evSkipLocalClass.EvSkipLocalClassPackage$@packagePartHASH
local = args: java.lang.String[] = {java.lang.String[0]@uniqueID} (sp = evSkipLocalClass.kt, 7)
local = a1: evSkipLocalClass.A = {evSkipLocalClass.A@uniqueID} (sp = evSkipLocalClass.kt, 8)
field = prop: int = 1 (sp = evSkipLocalClass.kt, 4)
local = a2: evSkipLocalClass.A = {evSkipLocalClass.A@uniqueID} (sp = evSkipLocalClass.kt, 9)
field = prop: int = 1 (sp = evSkipLocalClass.kt, 4)
extra = a1.prop
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
Process finished with exit code 0
@@ -7,7 +7,7 @@ package toStringRenderer
fun main(args: Array<String>) {
val a = A()
//Breakpoint!
args.size
args.size()
}
class A {
@@ -0,0 +1,18 @@
package evBreakpointOnPropertyDeclaration
class A {
var prop = 1
}
fun main(args: Array<String>) {
val a1 = A()
val a2 = A()
val a3 = A()
val p1 = a1.prop
//Breakpoint!
val p2 = a2.prop
val p3 = a3.prop
}
// PRINT_FRAME
@@ -0,0 +1,16 @@
package evDelegatedProperty
import kotlin.properties.Delegates
class A {
var prop: Int by Delegates.notNull()
}
fun main(args: Array<String>) {
val a = A()
a.prop = 1
//Breakpoint!
val b = a.prop
}
// PRINT_FRAME
@@ -0,0 +1,13 @@
package evDuplicateItems
class A {
var prop = 1
}
fun main(args: Array<String>) {
val a = A()
//Breakpoint!
val b = a.prop + a.prop
}
// PRINT_FRAME
@@ -0,0 +1,13 @@
package evFinalProperty
class A {
val prop = 1
}
fun main(args: Array<String>) {
val a = A()
//Breakpoint!
val b = a.prop
}
// PRINT_FRAME
@@ -0,0 +1,22 @@
package evLineRange
class A {
var prop = 1
}
fun main(args: Array<String>) {
val a1 = A()
val a2 = A()
val a3 = A()
foo(a1.prop)
val i1 = 1
//Breakpoint!
foo(a2.prop)
val i2 = 1
foo(a3.prop)
}
fun foo(i: Int) {}
// PRINT_FRAME
@@ -0,0 +1,15 @@
package evProperty
class A {
var prop = 1
}
fun main(args: Array<String>) {
val a = A()
//Breakpoint!
if (a.prop == 1) {
}
}
// PRINT_FRAME
@@ -0,0 +1,18 @@
package evPropertyRefExpr
class A {
var prop = 1
fun test() {
//Breakpoint!
if (prop == 1) {
}
}
}
fun main(args: Array<String>) {
A().test()
}
// PRINT_FRAME
@@ -0,0 +1,26 @@
package evSkipAnonymousObject
class A {
var prop = 1
}
fun main(args: Array<String>) {
val a1 = A()
val a2 = A()
//Breakpoint!
foo(a1.prop)
object: T {
override fun f() {
foo(a2.prop)
}
}
}
trait T {
fun f() {}
}
fun foo(i: Int) {}
// PRINT_FRAME
@@ -0,0 +1,21 @@
package evSkipLambda
class A {
var prop = 1
}
fun main(args: Array<String>) {
val a1 = A()
val a2 = A()
//Breakpoint!
foo(a1.prop)
l {
foo(a2.prop)
}
}
fun foo(i: Int) {}
fun l(f: () -> Unit) {}
// PRINT_FRAME
@@ -0,0 +1,22 @@
package evSkipLocalClass
class A {
var prop = 1
}
fun main(args: Array<String>) {
val a1 = A()
val a2 = A()
//Breakpoint!
foo(a1.prop)
class B {
fun bar() {
foo(a2.prop)
}
}
}
fun foo(i: Int) {}
// PRINT_FRAME
@@ -5,7 +5,7 @@ import kotlin.properties.Delegates
fun main(args: Array<String>) {
val a = A()
//Breakpoint!
args.size
args.size()
}
class A {
@@ -3,7 +3,7 @@ package toStringRenderer
fun main(args: Array<String>) {
val a = A()
//Breakpoint!
args.size
args.size()
}
class A {