Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
TestToolChainDemo
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
dsq
TestToolChainDemo
Commits
fbbb2c63
Commit
fbbb2c63
authored
Mar 31, 2026
by
qq_38816927
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
调试功能
parent
3acd058f
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
1017 additions
and
42 deletions
+1017
-42
build.gradle.kts
composeApp/build.gradle.kts
+2
-2
MainActivity.kt
...p/src/androidMain/kotlin/com.dong.demo013/MainActivity.kt
+18
-0
App.kt
composeApp/src/commonMain/kotlin/com.dong.demo013/App.kt
+78
-4
DebugDataDemo.kt
...commonMain/kotlin/com.dong.demo013/debug/DebugDataDemo.kt
+82
-14
DebugJson.kt
...src/commonMain/kotlin/com.dong.demo013/debug/DebugJson.kt
+17
-0
DebugStepIntoDemo.kt
...onMain/kotlin/com.dong.demo013/debug/DebugStepIntoDemo.kt
+65
-0
DebugStepOutDemo.kt
...monMain/kotlin/com.dong.demo013/debug/DebugStepOutDemo.kt
+69
-0
DebugStepOverDemo.kt
...onMain/kotlin/com.dong.demo013/debug/DebugStepOverDemo.kt
+63
-0
DebugTenLevelData.kt
...onMain/kotlin/com.dong.demo013/debug/DebugTenLevelData.kt
+219
-0
MainArkUIViewController.kt
...64Main/kotlin/com.dong.demo013/MainArkUIViewController.kt
+7
-0
MainArkUIViewController.kt
...64Main/kotlin/com.dong/demo013/MainArkUIViewController.kt
+2
-0
build-profile.json5
harmonyApp/build-profile.json5
+16
-16
libkn_api.h
harmonyApp/entry/src/main/cpp/include/libkn_api.h
+379
-6
No files found.
composeApp/build.gradle.kts
View file @
fbbb2c63
...
@@ -50,7 +50,7 @@ kotlin {
...
@@ -50,7 +50,7 @@ kotlin {
// 禁用内联类可能有助于 NAPI
// 禁用内联类可能有助于 NAPI
val
main
by
compilations
.
getting
val
main
by
compilations
.
getting
main
.
compilerOptions
.
configure
{
main
.
compilerOptions
.
configure
{
//
freeCompilerArgs.add("-Xbinary=sanitizer=address")
freeCompilerArgs
.
add
(
"-Xbinary=sanitizer=address"
)
}
}
//val resource by main.cinterops.creating {
//val resource by main.cinterops.creating {
// defFile(file("src/ohosArm64Main/cinterop/resource.def"))
// defFile(file("src/ohosArm64Main/cinterop/resource.def"))
...
@@ -68,7 +68,7 @@ kotlin {
...
@@ -68,7 +68,7 @@ kotlin {
}
}
val
main
by
compilations
.
getting
val
main
by
compilations
.
getting
main
.
compilerOptions
.
configure
{
main
.
compilerOptions
.
configure
{
//
freeCompilerArgs.add("-Xbinary=sanitizer=address")
freeCompilerArgs
.
add
(
"-Xbinary=sanitizer=address"
)
}
}
// val resource by main.cinterops.creating {
// val resource by main.cinterops.creating {
// defFile(file("src/ohosX64Main/cinterop/resource.def"))
// defFile(file("src/ohosX64Main/cinterop/resource.def"))
...
...
composeApp/src/androidMain/kotlin/com.dong.demo013/MainActivity.kt
View file @
fbbb2c63
...
@@ -16,4 +16,22 @@ class MainActivity : ComponentActivity() {
...
@@ -16,4 +16,22 @@ class MainActivity : ComponentActivity() {
App
()
App
()
}
}
}
}
//测试普通断点
fun
testCommonBreakpoint
()
{
val
a
:
Int
=
1
;
//普通断点设置处
}
//测试条件断点
fun
testIfBreakpoint
()
{
for
(
i
in
1
..
10
){
if
(
i
==
5
){
//条件断点设置处
println
(
"条件断点命中进入"
)
}
}
}
}
}
composeApp/src/commonMain/kotlin/com.dong.demo013/App.kt
View file @
fbbb2c63
...
@@ -9,7 +9,11 @@ import androidx.compose.ui.Modifier
...
@@ -9,7 +9,11 @@ import androidx.compose.ui.Modifier
import
androidx.compose.ui.graphics.Color
import
androidx.compose.ui.graphics.Color
import
androidx.compose.ui.unit.dp
import
androidx.compose.ui.unit.dp
import
com.dong.demo013.Log.HighLogDemo
import
com.dong.demo013.Log.HighLogDemo
import
com.dong.demo013.debug.DebugStepIntoDemo
import
com.dong.demo013.debug.DebugStepOutDemo
import
com.dong.demo013.debug.DebugStepOverDemo
import
com.dong.demo013.debug.DebugTestDemo
import
com.dong.demo013.debug.DebugTestDemo
import
com.dong.demo013.debug.allBreakpoints
import
com.dong.demo013.navigation.ComponentDemo
import
com.dong.demo013.navigation.ComponentDemo
import
com.dong.demo013.navigation.ComposeGroup
import
com.dong.demo013.navigation.ComposeGroup
import
com.dong.demo013.navigation.Page
import
com.dong.demo013.navigation.Page
...
@@ -18,6 +22,9 @@ import com.dong.maxhap.demos.NativeFaultDemo
...
@@ -18,6 +22,9 @@ import com.dong.maxhap.demos.NativeFaultDemo
@Composable
@Composable
internal
fun
App
()
{
internal
fun
App
()
{
LaunchedEffect
(
Unit
){
allBreakpoints
()
}
MaterialTheme
{
MaterialTheme
{
// 使用 Page 类型的状态,修复类型推断报错
// 使用 Page 类型的状态,修复类型推断报错
var
page
by
remember
{
mutableStateOf
<
Page
>(
Page
.
Home
)
}
var
page
by
remember
{
mutableStateOf
<
Page
>(
Page
.
Home
)
}
...
@@ -48,7 +55,7 @@ internal fun HomeScreen(
...
@@ -48,7 +55,7 @@ internal fun HomeScreen(
.
padding
(
16
.
dp
),
.
padding
(
16
.
dp
),
verticalArrangement
=
Arrangement
.
spacedBy
(
16
.
dp
)
verticalArrangement
=
Arrangement
.
spacedBy
(
16
.
dp
)
)
{
)
{
// 第一个模块:
嵌套
页面
// 第一个模块:
debug
页面
Card
(
Card
(
modifier
=
Modifier
.
fillMaxWidth
(),
modifier
=
Modifier
.
fillMaxWidth
(),
elevation
=
8
.
dp
,
elevation
=
8
.
dp
,
...
@@ -61,7 +68,7 @@ internal fun HomeScreen(
...
@@ -61,7 +68,7 @@ internal fun HomeScreen(
)
{
)
{
//
日志
测试按钮区域
//
debug
测试按钮区域
Column
(
Column
(
modifier
=
Modifier
.
fillMaxWidth
(),
modifier
=
Modifier
.
fillMaxWidth
(),
verticalArrangement
=
Arrangement
.
spacedBy
(
8
.
dp
)
verticalArrangement
=
Arrangement
.
spacedBy
(
8
.
dp
)
...
@@ -78,7 +85,65 @@ internal fun HomeScreen(
...
@@ -78,7 +85,65 @@ internal fun HomeScreen(
},
},
modifier
=
Modifier
.
fillMaxWidth
()
modifier
=
Modifier
.
fillMaxWidth
()
)
{
)
{
Text
(
"进入断点测试-数据裂隙"
)
Text
(
"进入断点测试-数据类型"
)
}
}
Column
(
modifier
=
Modifier
.
fillMaxWidth
(),
verticalArrangement
=
Arrangement
.
spacedBy
(
8
.
dp
)
)
{
Text
(
"单步调试"
)
Button
(
onClick
=
{
val
debugDataDemo
=
ComponentDemo
(
id
=
"debug_stepover_demo"
,
title
=
"单步调试-步过"
,
group
=
ComposeGroup
.
Foundation
)
onSelect
(
debugDataDemo
)
},
modifier
=
Modifier
.
fillMaxWidth
()
)
{
Text
(
"进入单步调试-步过"
)
}
}
Column
(
modifier
=
Modifier
.
fillMaxWidth
(),
verticalArrangement
=
Arrangement
.
spacedBy
(
8
.
dp
)
)
{
Button
(
onClick
=
{
val
debugDataDemo
=
ComponentDemo
(
id
=
"debug_stepinto_demo"
,
title
=
"单步调试-步进"
,
group
=
ComposeGroup
.
Foundation
)
onSelect
(
debugDataDemo
)
},
modifier
=
Modifier
.
fillMaxWidth
()
)
{
Text
(
"进入单步调试-步进"
)
}
}
Column
(
modifier
=
Modifier
.
fillMaxWidth
(),
verticalArrangement
=
Arrangement
.
spacedBy
(
8
.
dp
)
)
{
Button
(
onClick
=
{
val
debugDataDemo
=
ComponentDemo
(
id
=
"debug_stepout_demo"
,
title
=
"单步调试-步出"
,
group
=
ComposeGroup
.
Foundation
)
onSelect
(
debugDataDemo
)
},
modifier
=
Modifier
.
fillMaxWidth
()
)
{
Text
(
"进入单步调试-步出"
)
}
}
}
}
...
@@ -213,10 +278,19 @@ internal fun DemoScreen(
...
@@ -213,10 +278,19 @@ internal fun DemoScreen(
"log_over_demo"
->
{
"log_over_demo"
->
{
NativeFaultDemo
()
NativeFaultDemo
()
}
}
//
debug
调试
//调试
"debug_test_demo"
->
{
"debug_test_demo"
->
{
DebugTestDemo
()
DebugTestDemo
()
}
}
"debug_stepover_demo"
->
{
DebugStepOverDemo
()
}
"debug_stepinto_demo"
->
{
DebugStepIntoDemo
()
}
"debug_stepout_demo"
->
{
DebugStepOutDemo
()
}
else
->
{
else
->
{
Text
(
Text
(
text
=
"暂未实现: ${demo.title}"
,
text
=
"暂未实现: ${demo.title}"
,
...
...
composeApp/src/commonMain/kotlin/com.dong.demo013/debug/DebugDataDemo.kt
View file @
fbbb2c63
...
@@ -14,14 +14,13 @@ internal fun DebugTestDemo() {
...
@@ -14,14 +14,13 @@ internal fun DebugTestDemo() {
verticalArrangement
=
Arrangement
.
spacedBy
(
16
.
dp
)
verticalArrangement
=
Arrangement
.
spacedBy
(
16
.
dp
)
)
{
)
{
// 进入断点
Button
(
Button
(
onClick
=
{
onClick
=
{
getBreakPoint
();
allBreakpoints
()
},
},
)
{
)
{
Text
(
"
进入断点
"
,
color
=
Color
.
White
)
Text
(
"
断点测试
"
,
color
=
Color
.
White
)
}
}
Button
(
Button
(
onClick
=
{
onClick
=
{
...
@@ -29,26 +28,95 @@ internal fun DebugTestDemo() {
...
@@ -29,26 +28,95 @@ internal fun DebugTestDemo() {
},
},
)
{
)
{
Text
(
"所有类型变量(打印+断点)"
,
color
=
Color
.
White
)
Text
(
"所有基础变量"
,
color
=
Color
.
White
)
}
Button
(
onClick
=
{
complexObject
();
},
)
{
Text
(
"复杂对象"
,
color
=
Color
.
White
)
}
Button
(
onClick
=
{
print
(
"打印console调试信息"
)
},
)
{
Text
(
"console信息打印)"
,
color
=
Color
.
White
)
}
}
}
}
}
}
/******所有类型的断点*
* 普通断点
* 条件断点
* 普通变量
* 复杂对象
* ***/
fun
getBreakPoint
(){
fun
allBreakpoints
(){
print
(
"debugInt:空"
);
getJsons
()
//下面为断点处
testIfBreakpoint
()
val
debugInt
:
Int
=
1
;
testCommonBreakpoint
()
print
(
"debugInt:1"
);
complexObject
()
testConditionalBreakpoint
()
}
}
/***变量类型**/
fun
getJsons
(){
fun
getJsons
(){
val
allTypes
=
DebugAllTypesData
();
// val allTypes= DebugAllTypesData ();
print
(
"断点处(所有类型变量)"
)
val
str
:
String
=
"文本"
print
(
"开始打印所有类型变量"
)
print
(
"基础变量查看)"
)
//断点基础变量查看
allTypes
.
printAllTypes
();
}
print
(
"打印所有类型变量结束"
)
//复杂对象
fun
complexObject
(){
val
testObject
=
ComplexClass
();
print
(
testObject
)
//断点复杂变量查看
}
/***断点类型**/
fun
testCommonBreakpoint
()
{
val
a
:
Int
=
1
;
print
(
"a=1"
);
//普通断点设置处
val
b
:
Int
=
2
;
print
(
"b=2"
);
//普通断点禁用设置
val
c
:
Int
=
3
;
print
(
"c=3"
);
//普通断点设置处2
}
//测试条件断点
fun
testIfBreakpoint
()
{
for
(
currentIndex
in
1
..
10
){
//条件断点 currentIndex==5
println
(
"条件断点命中进入"
)
//条件断点设置处
}
}
//表达式断点
fun
testConditionalBreakpoint
()
{
//打印
var
testConditionIndex
:
Int
=
1
;
for
(
currentIndex
in
1
..
100000
){
if
(
currentIndex
<
5
){
//正常只能看testConditionIndex+1 5次的
testConditionIndex
=
testConditionIndex
+
1
;
//使用表达式可以观察1000次+1循环的数据
//在表达式窗口中输入testConditionIndex+1000
println
(
"表达式断点命中进入"
)
//表达式断点设置处
}
}
}
}
\ No newline at end of file
composeApp/src/commonMain/kotlin/com.dong.demo013/debug/DebugJson.kt
View file @
fbbb2c63
...
@@ -174,3 +174,20 @@ class DebugAllTypesData {
...
@@ -174,3 +174,20 @@ class DebugAllTypesData {
unitFunction
()
unitFunction
()
}
}
}
}
//复杂对象
class
ComplexClass
{
val
complexClass1
:
ComplexClass1
=
ComplexClass1
()
val
name
:
String
=
"第一层"
}
class
ComplexClass1
{
val
complexClass2
:
ComplexClass2
=
ComplexClass2
()
val
name
:
String
=
"第二层"
}
class
ComplexClass2
{
val
name
:
String
=
"第三层"
}
\ No newline at end of file
composeApp/src/commonMain/kotlin/com.dong.demo013/debug/DebugStepDemo.kt
→
composeApp/src/commonMain/kotlin/com.dong.demo013/debug/DebugStep
Into
Demo.kt
View file @
fbbb2c63
...
@@ -6,86 +6,60 @@ import androidx.compose.runtime.*
...
@@ -6,86 +6,60 @@ import androidx.compose.runtime.*
import
androidx.compose.ui.Modifier
import
androidx.compose.ui.Modifier
import
androidx.compose.ui.graphics.Color
import
androidx.compose.ui.graphics.Color
import
androidx.compose.ui.unit.dp
import
androidx.compose.ui.unit.dp
import
androidx.compose.ui.unit.sp
@Composable
@Composable
internal
fun
DebugStepDemo
()
{
internal
fun
DebugStep
Into
Demo
()
{
Column
(
Column
(
modifier
=
Modifier
.
fillMaxSize
().
padding
(
16
.
dp
),
modifier
=
Modifier
.
fillMaxSize
().
padding
(
16
.
dp
),
verticalArrangement
=
Arrangement
.
spacedBy
(
16
.
dp
)
verticalArrangement
=
Arrangement
.
spacedBy
(
16
.
dp
)
)
{
)
{
Text
(
"调试步骤"
)
Text
(
"测试包含3层方法"
)
Text
(
"第一层:testGrandfather"
)
Text
(
"第二层:testFather,被testGrandfather包含"
)
Text
(
"第三层:testKid,被testFather包含"
)
Text
(
"层级如下"
)
Text
(
"fun testGrandfather(){\n"
+
" fun testFather(){\n"
+
" fun testKid(){\n"
+
"\n"
+
" }\n"
+
" }\n"
+
"}"
)
// 测试
Button
(
onClick
=
{
},
)
{
Text
(
"step over-步过"
,
color
=
Color
.
White
)
}
// 测试
Button
(
Button
(
onClick
=
{
onClick
=
{
testIntoDebug
()
}
},
)
{
Text
(
"触发断点"
,
color
=
Color
.
White
)
)
{
Text
(
"step into-步进"
,
color
=
Color
.
White
)
}
}
Button
(
Text
(
"调试步骤\n"
+
onClick
=
{
"测试包含3层方法\n"
+
"第一层:testIntoGrandfather\n"
+
},
"第二层:testIntoFather,被testIntoGrandfather包含\n"
+
"第三层:testIntoKid,被testIntoFather包含\n"
+
)
{
"fun testIntoGrandfather(){\n"
+
Text
(
"step into-步出"
,
color
=
Color
.
White
)
" fun testIntoFather(){ \n"
+
}
" fun testIntoKid(){\");\n"
+
" 。 print(\"测试步进断点-结束\");"
+
" }\n"
+
" }\n"
+
"}"
,
fontSize
=
12
.
sp
)
}
}
}
}
/****测试步过****/
/****测试步过****/
fun
test
Over
(){
fun
test
IntoDebug
(){
print
(
"测试步过:跳过下列的方法,不进入testGrandfather"
)
testIntoGrandfather
(
)
}
}
/***通用测试方法**/
/***通用测试方法**/
fun
testGrandfather
(){
fun
testIntoGrandfather
(){
print
(
"进入testGrandfather"
);
testIntoFather
();
// 测试步进断点-开始
testFather
();
print
(
"离开testGrandfather"
);
}
}
fun
testFather
(){
fun
testIntoFather
(){
// 测试步进断点-进入方法
print
(
"进入testFather"
);
testIntoKid
();
// 测试步进断点-结束
testKid
()
print
(
"离开testFather"
);
}
}
fun
testKid
(){
fun
testIntoKid
(){
print
(
"进入testKid"
);
print
(
"测试步进断点-结束"
);
// print("测试步进断点-结束");
print
(
"离开testKid"
);
}
}
fun
testOverLevel2
(){
}
\ No newline at end of file
composeApp/src/commonMain/kotlin/com.dong.demo013/debug/DebugStepOutDemo.kt
0 → 100644
View file @
fbbb2c63
package
com.dong.demo013.debug
import
androidx.compose.foundation.layout.*
import
androidx.compose.material.*
import
androidx.compose.runtime.*
import
androidx.compose.ui.Modifier
import
androidx.compose.ui.graphics.Color
import
androidx.compose.ui.unit.dp
import
androidx.compose.ui.unit.sp
@Composable
internal
fun
DebugStepOutDemo
()
{
Column
(
modifier
=
Modifier
.
fillMaxSize
().
padding
(
16
.
dp
),
verticalArrangement
=
Arrangement
.
spacedBy
(
16
.
dp
)
)
{
// 测试
Button
(
onClick
=
{
testOutDebug
()
}
)
{
Text
(
"触发断点"
,
color
=
Color
.
White
)
}
Text
(
"调试步骤\n"
+
"测试包含3层方法\n"
+
"第一层:testOverGrandfather\n"
+
"第二层:testOverFather,被testOverGrandfather包含\n"
+
"第三层:testOverKid,被testOverFather包含\n"
+
" //第一层内部\n"
+
" fun testOverFather(){ //测试步出断点-结束 \n"
+
" print(\"测试步出断点-开始\");//测试步出断点-开始\n"
+
" //第二层内部\n"
+
" fun testOverKid(){\n"
+
" 。 //第三层内部\n"
+
" }\n"
+
" }\n"
+
"}"
,
fontSize
=
12
.
sp
)
}
}
/****测试步出****/
fun
testOutDebug
(){
testOutGrandfather
();
}
/***通用测试方法**/
private
fun
testOutGrandfather
(){
testOutFather
();
//测试步出断点-结束
}
fun
testOutFather
(){
print
(
"测试步出断点-开始"
);
//测试步出断点-开始
testOutKid
();
}
fun
testOutKid
(){
print
(
"进入testOutKid"
);
print
(
"离开testOutKid"
);
}
composeApp/src/commonMain/kotlin/com.dong.demo013/debug/DebugStepOverDemo.kt
0 → 100644
View file @
fbbb2c63
package
com.dong.demo013.debug
import
androidx.compose.foundation.layout.*
import
androidx.compose.material.*
import
androidx.compose.runtime.*
import
androidx.compose.ui.Modifier
import
androidx.compose.ui.graphics.Color
import
androidx.compose.ui.unit.dp
import
androidx.compose.ui.unit.sp
@Composable
internal
fun
DebugStepOverDemo
()
{
Column
(
modifier
=
Modifier
.
fillMaxSize
().
padding
(
16
.
dp
),
verticalArrangement
=
Arrangement
.
spacedBy
(
16
.
dp
)
)
{
// 测试
Button
(
onClick
=
{
testDebug
()
}
)
{
Text
(
"触发断点"
,
color
=
Color
.
White
)
}
Text
(
"调试步骤\n"
+
"testDebug()\n"
+
" //不进入testOverGrandfather方法内部\n"
+
" testOverGrandfather();//测试步过断点-开始\n"
+
" print(\"测试步过断点-结束\");//测试步过断点-结束\n"
+
"}"
,
fontSize
=
8
.
sp
)
}
}
/****测试步过****/
fun
testDebug
(){
//不进入testOverGrandfather方法内部
testOverGrandfather
();
//测试步过断点-开始
print
(
"测试步过断点-结束"
);
//测试步过断点-结束
}
/***通用测试方法**/
private
fun
testOverGrandfather
(){
testOverFather
();
}
fun
testOverFather
(){
testOverKid
();
}
fun
testOverKid
(){
print
(
"进入testOverKid"
);
print
(
"离开testOverKid"
);
}
composeApp/src/commonMain/kotlin/com.dong.demo013/debug/DebugTenLevelData.kt
0 → 100644
View file @
fbbb2c63
package
com.dong.demo013.debug
/**
* 调试用深层数据:根为 10 个普通变量 + 10 个复杂对象;沿主路径嵌套 **>=10 层** [BranchLayer],
* 每一层 [BranchLayer] / [LeafLayer] 均含 **10 个普通字段 + 10 个复杂子对象**。
*
* 说明:若每层 10 个子树全部满深度展开,节点数为指数级,无法在源码/内存中构造。
* 此处采用「主轴 n0 逐级加深 + 同层 n1..n9 为已达最深规格的 [LeafLayer]」的写法,
* 在调试器里仍可展开到 >=10 层,且每层都能看到 10+10 字段。
*/
sealed
class
ComplexNode
/** 最底层复杂对象:仅普通变量,不再挂子树(视作该层 10 个「终端复杂对象」) */
data class
TerminalComplex
(
val
i0
:
Int
,
val
i1
:
Int
,
val
i2
:
Int
,
val
i3
:
Int
,
val
i4
:
Int
,
val
i5
:
Int
,
val
i6
:
Int
,
val
i7
:
Int
,
val
i8
:
Int
,
val
i9
:
Int
,
val
s0
:
String
,
val
s1
:
String
,
val
s2
:
String
,
val
s3
:
String
,
val
s4
:
String
,
val
s5
:
String
,
val
s6
:
String
,
val
s7
:
String
,
val
s8
:
String
,
val
s9
:
String
,
)
/** 第 11 层(索引 10):10 普通 + 10 个 [TerminalComplex] */
data class
LeafLayer
(
val
p0
:
Int
,
val
p1
:
Int
,
val
p2
:
Int
,
val
p3
:
Int
,
val
p4
:
Int
,
val
p5
:
Int
,
val
p6
:
Int
,
val
p7
:
Int
,
val
p8
:
Int
,
val
p9
:
Int
,
val
q0
:
String
,
val
q1
:
String
,
val
q2
:
String
,
val
q3
:
String
,
val
q4
:
String
,
val
q5
:
String
,
val
q6
:
String
,
val
q7
:
String
,
val
q8
:
String
,
val
q9
:
String
,
val
t0
:
TerminalComplex
,
val
t1
:
TerminalComplex
,
val
t2
:
TerminalComplex
,
val
t3
:
TerminalComplex
,
val
t4
:
TerminalComplex
,
val
t5
:
TerminalComplex
,
val
t6
:
TerminalComplex
,
val
t7
:
TerminalComplex
,
val
t8
:
TerminalComplex
,
val
t9
:
TerminalComplex
,
)
:
ComplexNode
()
/** 第 0..9 层:10 普通 + 10 个 [ComplexNode] 子对象 */
data class
BranchLayer
(
val
p0
:
Int
,
val
p1
:
Int
,
val
p2
:
Int
,
val
p3
:
Int
,
val
p4
:
Int
,
val
p5
:
Int
,
val
p6
:
Int
,
val
p7
:
Int
,
val
p8
:
Int
,
val
p9
:
Int
,
val
q0
:
String
,
val
q1
:
String
,
val
q2
:
String
,
val
q3
:
String
,
val
q4
:
String
,
val
q5
:
String
,
val
q6
:
String
,
val
q7
:
String
,
val
q8
:
String
,
val
q9
:
String
,
val
n0
:
ComplexNode
,
val
n1
:
ComplexNode
,
val
n2
:
ComplexNode
,
val
n3
:
ComplexNode
,
val
n4
:
ComplexNode
,
val
n5
:
ComplexNode
,
val
n6
:
ComplexNode
,
val
n7
:
ComplexNode
,
val
n8
:
ComplexNode
,
val
n9
:
ComplexNode
,
)
:
ComplexNode
()
/** 根:10 个普通变量 + 10 个复杂根对象(各自一棵深度 >=10 的子树) */
data class
DebugTenLevelRoot
(
val
plainInt0
:
Int
,
val
plainInt1
:
Int
,
val
plainInt2
:
Int
,
val
plainInt3
:
Int
,
val
plainInt4
:
Int
,
val
plainInt5
:
Int
,
val
plainInt6
:
Int
,
val
plainInt7
:
Int
,
val
plainInt8
:
Int
,
val
plainInt9
:
Int
,
val
plainStr0
:
String
,
val
plainStr1
:
String
,
val
plainStr2
:
String
,
val
plainStr3
:
String
,
val
plainStr4
:
String
,
val
plainStr5
:
String
,
val
plainStr6
:
String
,
val
plainStr7
:
String
,
val
plainStr8
:
String
,
val
plainStr9
:
String
,
val
complex0
:
ComplexNode
,
val
complex1
:
ComplexNode
,
val
complex2
:
ComplexNode
,
val
complex3
:
ComplexNode
,
val
complex4
:
ComplexNode
,
val
complex5
:
ComplexNode
,
val
complex6
:
ComplexNode
,
val
complex7
:
ComplexNode
,
val
complex8
:
ComplexNode
,
val
complex9
:
ComplexNode
,
)
object
DebugTenLevelData
{
/** 供断点观察的完整样本 */
val
sample
:
DebugTenLevelRoot
=
buildDebugTenLevelRoot
()
/**
* 打印示例(控制台 / Logcat):
* ```
* DebugTenLevelData.printSampleExampleToConsole()
* ```
* 也可直接 `println(DebugTenLevelData.sample)`(整棵 data class 字符串会非常长)。
*/
fun
printSampleExampleToConsole
()
{
val
root
=
sample
println
(
"--- DebugTenLevelRoot 普通变量 ---"
)
println
(
"plainInt0=${root.plainInt0} .. plainInt9=${root.plainInt9}"
)
println
(
"plainStr0=${root.plainStr0} .. plainStr9=${root.plainStr9}"
)
println
(
"--- 主轴 complex0 -> n0 -> n0 ... -> LeafLayer(每层只跟 n0)---"
)
printNodeChain
(
root
.
complex0
,
depthLabel
=
0
)
println
(
"--- 任一叶上终端对象示例 complex0...Leaf.t0 ---"
)
println
(
leafTerminalPreview
(
root
.
complex0
))
}
fun
buildDebugTenLevelRoot
():
DebugTenLevelRoot
=
DebugTenLevelRoot
(
plainInt0
=
1000
,
plainInt1
=
1001
,
plainInt2
=
1002
,
plainInt3
=
1003
,
plainInt4
=
1004
,
plainInt5
=
1005
,
plainInt6
=
1006
,
plainInt7
=
1007
,
plainInt8
=
1008
,
plainInt9
=
1009
,
plainStr0
=
"r0"
,
plainStr1
=
"r1"
,
plainStr2
=
"r2"
,
plainStr3
=
"r3"
,
plainStr4
=
"r4"
,
plainStr5
=
"r5"
,
plainStr6
=
"r6"
,
plainStr7
=
"r7"
,
plainStr8
=
"r8"
,
plainStr9
=
"r9"
,
complex0
=
branchLayer
(
depth
=
0
,
treeSeed
=
0
),
complex1
=
branchLayer
(
depth
=
0
,
treeSeed
=
1
),
complex2
=
branchLayer
(
depth
=
0
,
treeSeed
=
2
),
complex3
=
branchLayer
(
depth
=
0
,
treeSeed
=
3
),
complex4
=
branchLayer
(
depth
=
0
,
treeSeed
=
4
),
complex5
=
branchLayer
(
depth
=
0
,
treeSeed
=
5
),
complex6
=
branchLayer
(
depth
=
0
,
treeSeed
=
6
),
complex7
=
branchLayer
(
depth
=
0
,
treeSeed
=
7
),
complex8
=
branchLayer
(
depth
=
0
,
treeSeed
=
8
),
complex9
=
branchLayer
(
depth
=
0
,
treeSeed
=
9
),
)
}
private
fun
printNodeChain
(
node
:
ComplexNode
,
depthLabel
:
Int
)
{
val
pad
=
" "
.
repeat
(
depthLabel
)
when
(
node
)
{
is
BranchLayer
->
{
println
(
"${pad}[$depthLabel] BranchLayer p0=${node.p0} q0=${node.q0} | n1..n9 -> LeafLayer(略)"
)
printNodeChain
(
node
.
n0
,
depthLabel
+
1
)
}
is
LeafLayer
->
{
println
(
"${pad}[$depthLabel] LeafLayer p0=${node.p0} q0=${node.q0}"
)
println
(
"${pad} t0: i0=${node.t0.i0} s0=${node.t0.s0} | t1.i0=${node.t1.i0} ..."
)
}
}
}
private
fun
leafTerminalPreview
(
node
:
ComplexNode
):
String
{
var
cur
:
ComplexNode
=
node
while
(
cur
is
BranchLayer
)
{
cur
=
cur
.
n0
}
return
when
(
cur
)
{
is
LeafLayer
->
"Leaf.t0 = TerminalComplex(i0=${cur.t0.i0}, s0=${cur.t0.s0})"
else
->
cur
.
toString
()
}
}
private
const
val
MAX_BRANCH_DEPTH
=
9
private
fun
branchLayer
(
depth
:
Int
,
treeSeed
:
Int
):
ComplexNode
{
if
(
depth
>
MAX_BRANCH_DEPTH
)
{
return
leafLayer
(
depth
=
depth
,
treeSeed
=
treeSeed
)
}
val
base
=
treeSeed
*
10
_000
+
depth
*
100
val
p
=
Array
(
10
)
{
idx
->
base
+
idx
}
val
q
=
Array
(
10
)
{
idx
->
"L${depth}_s${treeSeed}_$idx"
}
val
deeper
=
branchLayer
(
depth
=
depth
+
1
,
treeSeed
=
treeSeed
)
return
BranchLayer
(
p0
=
p
[
0
],
p1
=
p
[
1
],
p2
=
p
[
2
],
p3
=
p
[
3
],
p4
=
p
[
4
],
p5
=
p
[
5
],
p6
=
p
[
6
],
p7
=
p
[
7
],
p8
=
p
[
8
],
p9
=
p
[
9
],
q0
=
q
[
0
],
q1
=
q
[
1
],
q2
=
q
[
2
],
q3
=
q
[
3
],
q4
=
q
[
4
],
q5
=
q
[
5
],
q6
=
q
[
6
],
q7
=
q
[
7
],
q8
=
q
[
8
],
q9
=
q
[
9
],
n0
=
deeper
,
n1
=
leafLayer
(
depth
=
MAX_BRANCH_DEPTH
+
1
,
treeSeed
=
treeSeed
*
10
+
1
),
n2
=
leafLayer
(
depth
=
MAX_BRANCH_DEPTH
+
1
,
treeSeed
=
treeSeed
*
10
+
2
),
n3
=
leafLayer
(
depth
=
MAX_BRANCH_DEPTH
+
1
,
treeSeed
=
treeSeed
*
10
+
3
),
n4
=
leafLayer
(
depth
=
MAX_BRANCH_DEPTH
+
1
,
treeSeed
=
treeSeed
*
10
+
4
),
n5
=
leafLayer
(
depth
=
MAX_BRANCH_DEPTH
+
1
,
treeSeed
=
treeSeed
*
10
+
5
),
n6
=
leafLayer
(
depth
=
MAX_BRANCH_DEPTH
+
1
,
treeSeed
=
treeSeed
*
10
+
6
),
n7
=
leafLayer
(
depth
=
MAX_BRANCH_DEPTH
+
1
,
treeSeed
=
treeSeed
*
10
+
7
),
n8
=
leafLayer
(
depth
=
MAX_BRANCH_DEPTH
+
1
,
treeSeed
=
treeSeed
*
10
+
8
),
n9
=
leafLayer
(
depth
=
MAX_BRANCH_DEPTH
+
1
,
treeSeed
=
treeSeed
*
10
+
9
),
)
}
private
fun
leafLayer
(
depth
:
Int
,
treeSeed
:
Int
):
LeafLayer
{
val
base
=
treeSeed
*
1
_000
+
depth
*
50
val
p
=
Array
(
10
)
{
idx
->
base
+
idx
}
val
q
=
Array
(
10
)
{
idx
->
"leaf_d${depth}_t${treeSeed}_$idx"
}
return
LeafLayer
(
p0
=
p
[
0
],
p1
=
p
[
1
],
p2
=
p
[
2
],
p3
=
p
[
3
],
p4
=
p
[
4
],
p5
=
p
[
5
],
p6
=
p
[
6
],
p7
=
p
[
7
],
p8
=
p
[
8
],
p9
=
p
[
9
],
q0
=
q
[
0
],
q1
=
q
[
1
],
q2
=
q
[
2
],
q3
=
q
[
3
],
q4
=
q
[
4
],
q5
=
q
[
5
],
q6
=
q
[
6
],
q7
=
q
[
7
],
q8
=
q
[
8
],
q9
=
q
[
9
],
t0
=
terminalComplex
(
treeSeed
*
100
+
0
),
t1
=
terminalComplex
(
treeSeed
*
100
+
1
),
t2
=
terminalComplex
(
treeSeed
*
100
+
2
),
t3
=
terminalComplex
(
treeSeed
*
100
+
3
),
t4
=
terminalComplex
(
treeSeed
*
100
+
4
),
t5
=
terminalComplex
(
treeSeed
*
100
+
5
),
t6
=
terminalComplex
(
treeSeed
*
100
+
6
),
t7
=
terminalComplex
(
treeSeed
*
100
+
7
),
t8
=
terminalComplex
(
treeSeed
*
100
+
8
),
t9
=
terminalComplex
(
treeSeed
*
100
+
9
),
)
}
private
fun
terminalComplex
(
seed
:
Int
):
TerminalComplex
{
val
b
=
seed
*
11
return
TerminalComplex
(
i0
=
b
,
i1
=
b
+
1
,
i2
=
b
+
2
,
i3
=
b
+
3
,
i4
=
b
+
4
,
i5
=
b
+
5
,
i6
=
b
+
6
,
i7
=
b
+
7
,
i8
=
b
+
8
,
i9
=
b
+
9
,
s0
=
"tc_${seed}_0"
,
s1
=
"tc_${seed}_1"
,
s2
=
"tc_${seed}_2"
,
s3
=
"tc_${seed}_3"
,
s4
=
"tc_${seed}_4"
,
s5
=
"tc_${seed}_5"
,
s6
=
"tc_${seed}_6"
,
s7
=
"tc_${seed}_7"
,
s8
=
"tc_${seed}_8"
,
s9
=
"tc_${seed}_9"
,
)
}
// 使用示例:var xx = DebugTenLevelData.sample
// 若不需要改引用,更推荐:val xx = DebugTenLevelData.sample
composeApp/src/ohosArm64Main/kotlin/com.dong.demo013/MainArkUIViewController.kt
View file @
fbbb2c63
package
com.dong.demo013
package
com.dong.demo013
import
androidx.compose.ui.window.ComposeArkUIViewController
import
androidx.compose.ui.window.ComposeArkUIViewController
import
com.dong.demo013.debug.DebugAllTypesData
import
com.dong.demo013.debug.allBreakpoints
import
kotlinx.cinterop.ExperimentalForeignApi
import
kotlinx.cinterop.ExperimentalForeignApi
import
kotlinx.coroutines.initMainHandler
import
kotlinx.coroutines.initMainHandler
import
platform.ohos.napi_env
import
platform.ohos.napi_env
...
@@ -15,3 +17,8 @@ fun MainArkUIViewController(env: napi_env): napi_value {
...
@@ -15,3 +17,8 @@ fun MainArkUIViewController(env: napi_env): napi_value {
App
()
App
()
}
}
}
}
composeApp/src/ohosX64Main/kotlin/com.dong/demo013/MainArkUIViewController.kt
View file @
fbbb2c63
package
com.dong.demo013
package
com.dong.demo013
import
androidx.compose.ui.window.ComposeArkUIViewController
import
androidx.compose.ui.window.ComposeArkUIViewController
import
com.dong.demo013.debug.allBreakpoints
import
kotlinx.cinterop.ExperimentalForeignApi
import
kotlinx.cinterop.ExperimentalForeignApi
import
kotlinx.coroutines.initMainHandler
import
kotlinx.coroutines.initMainHandler
import
platform.ohos.napi_env
import
platform.ohos.napi_env
...
@@ -13,5 +14,6 @@ fun MainArkUIViewController(env: napi_env): napi_value {
...
@@ -13,5 +14,6 @@ fun MainArkUIViewController(env: napi_env): napi_value {
initMainHandler
(
env
)
initMainHandler
(
env
)
return
ComposeArkUIViewController
(
env
)
{
return
ComposeArkUIViewController
(
env
)
{
App
()
App
()
}
}
}
}
harmonyApp/build-profile.json5
View file @
fbbb2c63
{
{
"app": {
"app": {
"signingConfigs": [
{
"name": "default",
"type": "HarmonyOS",
"material": {
"certpath": "/Users/dongsq/.ohos/config/default_harmonyApp_GthGxfoFAEmCFfCK6Yj5azdigDZk5Ro7gO2DpXptcpU=.cer",
"keyAlias": "debugKey",
"keyPassword": "0000001ACF94E8199DC5062321EC905F3A254531A9FC40398EB3B3D17C32799CFC8CA6217DBAA5C0AF5B",
"profile": "/Users/dongsq/.ohos/config/default_harmonyApp_GthGxfoFAEmCFfCK6Yj5azdigDZk5Ro7gO2DpXptcpU=.p7b",
"signAlg": "SHA256withECDSA",
"storeFile": "/Users/dongsq/.ohos/config/default_harmonyApp_GthGxfoFAEmCFfCK6Yj5azdigDZk5Ro7gO2DpXptcpU=.p12",
"storePassword": "0000001A8317BE0A5EB151014338C7A12BD97954BED4ABD53239B70B94F41430F857A19AD42FBD70C7F7"
}
}
],
"products": [
"products": [
{
{
"name": "default",
"name": "default",
...
@@ -33,11 +18,26 @@
...
@@ -33,11 +18,26 @@
],
],
"buildModeSet": [
"buildModeSet": [
{
{
"name": "debug"
,
"name": "debug"
},
},
{
{
"name": "release"
"name": "release"
}
}
],
"signingConfigs": [
{
"name": "default",
"type": "HarmonyOS",
"material": {
"certpath": "/Users/dongsq/.ohos/config/default_harmonyApp_GthGxfoFAEmCFfCK6Yj5azdigDZk5Ro7gO2DpXptcpU=.cer",
"keyAlias": "debugKey",
"keyPassword": "0000001BA8394766FB6938245FCF0B425C82CB0EB0B88650F52B26CCA027C3A0D90A39D41696DF08A3950D",
"profile": "/Users/dongsq/.ohos/config/default_harmonyApp_GthGxfoFAEmCFfCK6Yj5azdigDZk5Ro7gO2DpXptcpU=.p7b",
"signAlg": "SHA256withECDSA",
"storeFile": "/Users/dongsq/.ohos/config/default_harmonyApp_GthGxfoFAEmCFfCK6Yj5azdigDZk5Ro7gO2DpXptcpU=.p12",
"storePassword": "0000001B9FB9FACFD67106949BAB6E7930858A89437B4C903F5E512C4068CFA080F2FA2237FA273323D288"
}
}
]
]
},
},
"modules": [
"modules": [
...
...
harmonyApp/entry/src/main/cpp/include/libkn_api.h
View file @
fbbb2c63
...
@@ -99,6 +99,33 @@ typedef struct {
...
@@ -99,6 +99,33 @@ typedef struct {
typedef
struct
{
typedef
struct
{
libkn_KNativePtr
pinned
;
libkn_KNativePtr
pinned
;
}
libkn_kref_kotlin_ShortArray
;
}
libkn_kref_kotlin_ShortArray
;
typedef
struct
{
libkn_KNativePtr
pinned
;
}
libkn_kref_com_dong_demo013_debug_ComplexClass
;
typedef
struct
{
libkn_KNativePtr
pinned
;
}
libkn_kref_com_dong_demo013_debug_ComplexClass1
;
typedef
struct
{
libkn_KNativePtr
pinned
;
}
libkn_kref_com_dong_demo013_debug_ComplexClass2
;
typedef
struct
{
libkn_KNativePtr
pinned
;
}
libkn_kref_com_dong_demo013_debug_ComplexNode
;
typedef
struct
{
libkn_KNativePtr
pinned
;
}
libkn_kref_com_dong_demo013_debug_TerminalComplex
;
typedef
struct
{
libkn_KNativePtr
pinned
;
}
libkn_kref_com_dong_demo013_debug_LeafLayer
;
typedef
struct
{
libkn_KNativePtr
pinned
;
}
libkn_kref_com_dong_demo013_debug_BranchLayer
;
typedef
struct
{
libkn_KNativePtr
pinned
;
}
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
;
typedef
struct
{
libkn_KNativePtr
pinned
;
}
libkn_kref_com_dong_demo013_debug_DebugTenLevelData
;
typedef
struct
{
typedef
struct
{
libkn_KNativePtr
pinned
;
libkn_KNativePtr
pinned
;
}
libkn_kref_com_dong_demo013_navigation_ComposeGroup
;
}
libkn_kref_com_dong_demo013_navigation_ComposeGroup
;
...
@@ -327,16 +354,362 @@ typedef struct {
...
@@ -327,16 +354,362 @@ typedef struct {
void
(
*
printAllTypes
)(
libkn_kref_com_dong_demo013_debug_DebugAllTypesData
thiz
);
void
(
*
printAllTypes
)(
libkn_kref_com_dong_demo013_debug_DebugAllTypesData
thiz
);
void
(
*
unitFunction
)(
libkn_kref_com_dong_demo013_debug_DebugAllTypesData
thiz
);
void
(
*
unitFunction
)(
libkn_kref_com_dong_demo013_debug_DebugAllTypesData
thiz
);
}
DebugAllTypesData
;
}
DebugAllTypesData
;
struct
{
libkn_KType
*
(
*
_type
)(
void
);
libkn_kref_com_dong_demo013_debug_ComplexClass
(
*
ComplexClass
)();
libkn_kref_com_dong_demo013_debug_ComplexClass1
(
*
get_complexClass1
)(
libkn_kref_com_dong_demo013_debug_ComplexClass
thiz
);
const
char
*
(
*
get_name
)(
libkn_kref_com_dong_demo013_debug_ComplexClass
thiz
);
}
ComplexClass
;
struct
{
libkn_KType
*
(
*
_type
)(
void
);
libkn_kref_com_dong_demo013_debug_ComplexClass1
(
*
ComplexClass1
)();
libkn_kref_com_dong_demo013_debug_ComplexClass2
(
*
get_complexClass2
)(
libkn_kref_com_dong_demo013_debug_ComplexClass1
thiz
);
const
char
*
(
*
get_name
)(
libkn_kref_com_dong_demo013_debug_ComplexClass1
thiz
);
}
ComplexClass1
;
struct
{
libkn_KType
*
(
*
_type
)(
void
);
libkn_kref_com_dong_demo013_debug_ComplexClass2
(
*
ComplexClass2
)();
const
char
*
(
*
get_name
)(
libkn_kref_com_dong_demo013_debug_ComplexClass2
thiz
);
}
ComplexClass2
;
struct
{
libkn_KType
*
(
*
_type
)(
void
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
ComplexNode
)();
}
ComplexNode
;
struct
{
libkn_KType
*
(
*
_type
)(
void
);
libkn_kref_com_dong_demo013_debug_TerminalComplex
(
*
TerminalComplex
)(
libkn_KInt
i0
,
libkn_KInt
i1
,
libkn_KInt
i2
,
libkn_KInt
i3
,
libkn_KInt
i4
,
libkn_KInt
i5
,
libkn_KInt
i6
,
libkn_KInt
i7
,
libkn_KInt
i8
,
libkn_KInt
i9
,
const
char
*
s0
,
const
char
*
s1
,
const
char
*
s2
,
const
char
*
s3
,
const
char
*
s4
,
const
char
*
s5
,
const
char
*
s6
,
const
char
*
s7
,
const
char
*
s8
,
const
char
*
s9
);
libkn_KInt
(
*
get_i0
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
libkn_KInt
(
*
get_i1
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
libkn_KInt
(
*
get_i2
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
libkn_KInt
(
*
get_i3
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
libkn_KInt
(
*
get_i4
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
libkn_KInt
(
*
get_i5
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
libkn_KInt
(
*
get_i6
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
libkn_KInt
(
*
get_i7
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
libkn_KInt
(
*
get_i8
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
libkn_KInt
(
*
get_i9
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
const
char
*
(
*
get_s0
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
const
char
*
(
*
get_s1
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
const
char
*
(
*
get_s2
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
const
char
*
(
*
get_s3
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
const
char
*
(
*
get_s4
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
const
char
*
(
*
get_s5
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
const
char
*
(
*
get_s6
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
const
char
*
(
*
get_s7
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
const
char
*
(
*
get_s8
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
const
char
*
(
*
get_s9
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
libkn_KInt
(
*
component1
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
libkn_KInt
(
*
component10
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
const
char
*
(
*
component11
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
const
char
*
(
*
component12
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
const
char
*
(
*
component13
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
const
char
*
(
*
component14
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
const
char
*
(
*
component15
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
const
char
*
(
*
component16
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
const
char
*
(
*
component17
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
const
char
*
(
*
component18
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
const
char
*
(
*
component19
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
libkn_KInt
(
*
component2
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
const
char
*
(
*
component20
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
libkn_KInt
(
*
component3
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
libkn_KInt
(
*
component4
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
libkn_KInt
(
*
component5
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
libkn_KInt
(
*
component6
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
libkn_KInt
(
*
component7
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
libkn_KInt
(
*
component8
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
libkn_KInt
(
*
component9
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
libkn_kref_com_dong_demo013_debug_TerminalComplex
(
*
copy
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
,
libkn_KInt
i0
,
libkn_KInt
i1
,
libkn_KInt
i2
,
libkn_KInt
i3
,
libkn_KInt
i4
,
libkn_KInt
i5
,
libkn_KInt
i6
,
libkn_KInt
i7
,
libkn_KInt
i8
,
libkn_KInt
i9
,
const
char
*
s0
,
const
char
*
s1
,
const
char
*
s2
,
const
char
*
s3
,
const
char
*
s4
,
const
char
*
s5
,
const
char
*
s6
,
const
char
*
s7
,
const
char
*
s8
,
const
char
*
s9
);
libkn_KBoolean
(
*
equals
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
,
libkn_kref_kotlin_Any
other
);
libkn_KInt
(
*
hashCode
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
const
char
*
(
*
toString
)(
libkn_kref_com_dong_demo013_debug_TerminalComplex
thiz
);
}
TerminalComplex
;
struct
{
libkn_KType
*
(
*
_type
)(
void
);
libkn_kref_com_dong_demo013_debug_LeafLayer
(
*
LeafLayer
)(
libkn_KInt
p0
,
libkn_KInt
p1
,
libkn_KInt
p2
,
libkn_KInt
p3
,
libkn_KInt
p4
,
libkn_KInt
p5
,
libkn_KInt
p6
,
libkn_KInt
p7
,
libkn_KInt
p8
,
libkn_KInt
p9
,
const
char
*
q0
,
const
char
*
q1
,
const
char
*
q2
,
const
char
*
q3
,
const
char
*
q4
,
const
char
*
q5
,
const
char
*
q6
,
const
char
*
q7
,
const
char
*
q8
,
const
char
*
q9
,
libkn_kref_com_dong_demo013_debug_TerminalComplex
t0
,
libkn_kref_com_dong_demo013_debug_TerminalComplex
t1
,
libkn_kref_com_dong_demo013_debug_TerminalComplex
t2
,
libkn_kref_com_dong_demo013_debug_TerminalComplex
t3
,
libkn_kref_com_dong_demo013_debug_TerminalComplex
t4
,
libkn_kref_com_dong_demo013_debug_TerminalComplex
t5
,
libkn_kref_com_dong_demo013_debug_TerminalComplex
t6
,
libkn_kref_com_dong_demo013_debug_TerminalComplex
t7
,
libkn_kref_com_dong_demo013_debug_TerminalComplex
t8
,
libkn_kref_com_dong_demo013_debug_TerminalComplex
t9
);
libkn_KInt
(
*
get_p0
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_KInt
(
*
get_p1
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_KInt
(
*
get_p2
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_KInt
(
*
get_p3
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_KInt
(
*
get_p4
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_KInt
(
*
get_p5
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_KInt
(
*
get_p6
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_KInt
(
*
get_p7
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_KInt
(
*
get_p8
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_KInt
(
*
get_p9
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
const
char
*
(
*
get_q0
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
const
char
*
(
*
get_q1
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
const
char
*
(
*
get_q2
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
const
char
*
(
*
get_q3
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
const
char
*
(
*
get_q4
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
const
char
*
(
*
get_q5
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
const
char
*
(
*
get_q6
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
const
char
*
(
*
get_q7
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
const
char
*
(
*
get_q8
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
const
char
*
(
*
get_q9
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_kref_com_dong_demo013_debug_TerminalComplex
(
*
get_t0
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_kref_com_dong_demo013_debug_TerminalComplex
(
*
get_t1
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_kref_com_dong_demo013_debug_TerminalComplex
(
*
get_t2
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_kref_com_dong_demo013_debug_TerminalComplex
(
*
get_t3
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_kref_com_dong_demo013_debug_TerminalComplex
(
*
get_t4
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_kref_com_dong_demo013_debug_TerminalComplex
(
*
get_t5
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_kref_com_dong_demo013_debug_TerminalComplex
(
*
get_t6
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_kref_com_dong_demo013_debug_TerminalComplex
(
*
get_t7
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_kref_com_dong_demo013_debug_TerminalComplex
(
*
get_t8
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_kref_com_dong_demo013_debug_TerminalComplex
(
*
get_t9
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_KInt
(
*
component1
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_KInt
(
*
component10
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
const
char
*
(
*
component11
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
const
char
*
(
*
component12
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
const
char
*
(
*
component13
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
const
char
*
(
*
component14
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
const
char
*
(
*
component15
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
const
char
*
(
*
component16
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
const
char
*
(
*
component17
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
const
char
*
(
*
component18
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
const
char
*
(
*
component19
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_KInt
(
*
component2
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
const
char
*
(
*
component20
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_kref_com_dong_demo013_debug_TerminalComplex
(
*
component21
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_kref_com_dong_demo013_debug_TerminalComplex
(
*
component22
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_kref_com_dong_demo013_debug_TerminalComplex
(
*
component23
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_kref_com_dong_demo013_debug_TerminalComplex
(
*
component24
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_kref_com_dong_demo013_debug_TerminalComplex
(
*
component25
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_kref_com_dong_demo013_debug_TerminalComplex
(
*
component26
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_kref_com_dong_demo013_debug_TerminalComplex
(
*
component27
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_kref_com_dong_demo013_debug_TerminalComplex
(
*
component28
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_kref_com_dong_demo013_debug_TerminalComplex
(
*
component29
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_KInt
(
*
component3
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_kref_com_dong_demo013_debug_TerminalComplex
(
*
component30
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_KInt
(
*
component4
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_KInt
(
*
component5
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_KInt
(
*
component6
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_KInt
(
*
component7
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_KInt
(
*
component8
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_KInt
(
*
component9
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
libkn_kref_com_dong_demo013_debug_LeafLayer
(
*
copy
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
,
libkn_KInt
p0
,
libkn_KInt
p1
,
libkn_KInt
p2
,
libkn_KInt
p3
,
libkn_KInt
p4
,
libkn_KInt
p5
,
libkn_KInt
p6
,
libkn_KInt
p7
,
libkn_KInt
p8
,
libkn_KInt
p9
,
const
char
*
q0
,
const
char
*
q1
,
const
char
*
q2
,
const
char
*
q3
,
const
char
*
q4
,
const
char
*
q5
,
const
char
*
q6
,
const
char
*
q7
,
const
char
*
q8
,
const
char
*
q9
,
libkn_kref_com_dong_demo013_debug_TerminalComplex
t0
,
libkn_kref_com_dong_demo013_debug_TerminalComplex
t1
,
libkn_kref_com_dong_demo013_debug_TerminalComplex
t2
,
libkn_kref_com_dong_demo013_debug_TerminalComplex
t3
,
libkn_kref_com_dong_demo013_debug_TerminalComplex
t4
,
libkn_kref_com_dong_demo013_debug_TerminalComplex
t5
,
libkn_kref_com_dong_demo013_debug_TerminalComplex
t6
,
libkn_kref_com_dong_demo013_debug_TerminalComplex
t7
,
libkn_kref_com_dong_demo013_debug_TerminalComplex
t8
,
libkn_kref_com_dong_demo013_debug_TerminalComplex
t9
);
libkn_KBoolean
(
*
equals
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
,
libkn_kref_kotlin_Any
other
);
libkn_KInt
(
*
hashCode
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
const
char
*
(
*
toString
)(
libkn_kref_com_dong_demo013_debug_LeafLayer
thiz
);
}
LeafLayer
;
struct
{
libkn_KType
*
(
*
_type
)(
void
);
libkn_kref_com_dong_demo013_debug_BranchLayer
(
*
BranchLayer
)(
libkn_KInt
p0
,
libkn_KInt
p1
,
libkn_KInt
p2
,
libkn_KInt
p3
,
libkn_KInt
p4
,
libkn_KInt
p5
,
libkn_KInt
p6
,
libkn_KInt
p7
,
libkn_KInt
p8
,
libkn_KInt
p9
,
const
char
*
q0
,
const
char
*
q1
,
const
char
*
q2
,
const
char
*
q3
,
const
char
*
q4
,
const
char
*
q5
,
const
char
*
q6
,
const
char
*
q7
,
const
char
*
q8
,
const
char
*
q9
,
libkn_kref_com_dong_demo013_debug_ComplexNode
n0
,
libkn_kref_com_dong_demo013_debug_ComplexNode
n1
,
libkn_kref_com_dong_demo013_debug_ComplexNode
n2
,
libkn_kref_com_dong_demo013_debug_ComplexNode
n3
,
libkn_kref_com_dong_demo013_debug_ComplexNode
n4
,
libkn_kref_com_dong_demo013_debug_ComplexNode
n5
,
libkn_kref_com_dong_demo013_debug_ComplexNode
n6
,
libkn_kref_com_dong_demo013_debug_ComplexNode
n7
,
libkn_kref_com_dong_demo013_debug_ComplexNode
n8
,
libkn_kref_com_dong_demo013_debug_ComplexNode
n9
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
get_n0
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
get_n1
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
get_n2
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
get_n3
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
get_n4
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
get_n5
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
get_n6
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
get_n7
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
get_n8
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
get_n9
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_KInt
(
*
get_p0
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_KInt
(
*
get_p1
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_KInt
(
*
get_p2
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_KInt
(
*
get_p3
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_KInt
(
*
get_p4
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_KInt
(
*
get_p5
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_KInt
(
*
get_p6
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_KInt
(
*
get_p7
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_KInt
(
*
get_p8
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_KInt
(
*
get_p9
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
const
char
*
(
*
get_q0
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
const
char
*
(
*
get_q1
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
const
char
*
(
*
get_q2
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
const
char
*
(
*
get_q3
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
const
char
*
(
*
get_q4
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
const
char
*
(
*
get_q5
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
const
char
*
(
*
get_q6
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
const
char
*
(
*
get_q7
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
const
char
*
(
*
get_q8
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
const
char
*
(
*
get_q9
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_KInt
(
*
component1
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_KInt
(
*
component10
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
const
char
*
(
*
component11
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
const
char
*
(
*
component12
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
const
char
*
(
*
component13
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
const
char
*
(
*
component14
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
const
char
*
(
*
component15
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
const
char
*
(
*
component16
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
const
char
*
(
*
component17
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
const
char
*
(
*
component18
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
const
char
*
(
*
component19
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_KInt
(
*
component2
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
const
char
*
(
*
component20
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
component21
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
component22
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
component23
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
component24
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
component25
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
component26
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
component27
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
component28
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
component29
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_KInt
(
*
component3
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
component30
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_KInt
(
*
component4
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_KInt
(
*
component5
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_KInt
(
*
component6
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_KInt
(
*
component7
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_KInt
(
*
component8
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_KInt
(
*
component9
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
libkn_kref_com_dong_demo013_debug_BranchLayer
(
*
copy
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
,
libkn_KInt
p0
,
libkn_KInt
p1
,
libkn_KInt
p2
,
libkn_KInt
p3
,
libkn_KInt
p4
,
libkn_KInt
p5
,
libkn_KInt
p6
,
libkn_KInt
p7
,
libkn_KInt
p8
,
libkn_KInt
p9
,
const
char
*
q0
,
const
char
*
q1
,
const
char
*
q2
,
const
char
*
q3
,
const
char
*
q4
,
const
char
*
q5
,
const
char
*
q6
,
const
char
*
q7
,
const
char
*
q8
,
const
char
*
q9
,
libkn_kref_com_dong_demo013_debug_ComplexNode
n0
,
libkn_kref_com_dong_demo013_debug_ComplexNode
n1
,
libkn_kref_com_dong_demo013_debug_ComplexNode
n2
,
libkn_kref_com_dong_demo013_debug_ComplexNode
n3
,
libkn_kref_com_dong_demo013_debug_ComplexNode
n4
,
libkn_kref_com_dong_demo013_debug_ComplexNode
n5
,
libkn_kref_com_dong_demo013_debug_ComplexNode
n6
,
libkn_kref_com_dong_demo013_debug_ComplexNode
n7
,
libkn_kref_com_dong_demo013_debug_ComplexNode
n8
,
libkn_kref_com_dong_demo013_debug_ComplexNode
n9
);
libkn_KBoolean
(
*
equals
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
,
libkn_kref_kotlin_Any
other
);
libkn_KInt
(
*
hashCode
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
const
char
*
(
*
toString
)(
libkn_kref_com_dong_demo013_debug_BranchLayer
thiz
);
}
BranchLayer
;
struct
{
libkn_KType
*
(
*
_type
)(
void
);
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
(
*
DebugTenLevelRoot
)(
libkn_KInt
plainInt0
,
libkn_KInt
plainInt1
,
libkn_KInt
plainInt2
,
libkn_KInt
plainInt3
,
libkn_KInt
plainInt4
,
libkn_KInt
plainInt5
,
libkn_KInt
plainInt6
,
libkn_KInt
plainInt7
,
libkn_KInt
plainInt8
,
libkn_KInt
plainInt9
,
const
char
*
plainStr0
,
const
char
*
plainStr1
,
const
char
*
plainStr2
,
const
char
*
plainStr3
,
const
char
*
plainStr4
,
const
char
*
plainStr5
,
const
char
*
plainStr6
,
const
char
*
plainStr7
,
const
char
*
plainStr8
,
const
char
*
plainStr9
,
libkn_kref_com_dong_demo013_debug_ComplexNode
complex0
,
libkn_kref_com_dong_demo013_debug_ComplexNode
complex1
,
libkn_kref_com_dong_demo013_debug_ComplexNode
complex2
,
libkn_kref_com_dong_demo013_debug_ComplexNode
complex3
,
libkn_kref_com_dong_demo013_debug_ComplexNode
complex4
,
libkn_kref_com_dong_demo013_debug_ComplexNode
complex5
,
libkn_kref_com_dong_demo013_debug_ComplexNode
complex6
,
libkn_kref_com_dong_demo013_debug_ComplexNode
complex7
,
libkn_kref_com_dong_demo013_debug_ComplexNode
complex8
,
libkn_kref_com_dong_demo013_debug_ComplexNode
complex9
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
get_complex0
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
get_complex1
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
get_complex2
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
get_complex3
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
get_complex4
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
get_complex5
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
get_complex6
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
get_complex7
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
get_complex8
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
get_complex9
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_KInt
(
*
get_plainInt0
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_KInt
(
*
get_plainInt1
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_KInt
(
*
get_plainInt2
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_KInt
(
*
get_plainInt3
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_KInt
(
*
get_plainInt4
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_KInt
(
*
get_plainInt5
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_KInt
(
*
get_plainInt6
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_KInt
(
*
get_plainInt7
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_KInt
(
*
get_plainInt8
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_KInt
(
*
get_plainInt9
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
const
char
*
(
*
get_plainStr0
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
const
char
*
(
*
get_plainStr1
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
const
char
*
(
*
get_plainStr2
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
const
char
*
(
*
get_plainStr3
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
const
char
*
(
*
get_plainStr4
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
const
char
*
(
*
get_plainStr5
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
const
char
*
(
*
get_plainStr6
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
const
char
*
(
*
get_plainStr7
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
const
char
*
(
*
get_plainStr8
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
const
char
*
(
*
get_plainStr9
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_KInt
(
*
component1
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_KInt
(
*
component10
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
const
char
*
(
*
component11
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
const
char
*
(
*
component12
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
const
char
*
(
*
component13
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
const
char
*
(
*
component14
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
const
char
*
(
*
component15
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
const
char
*
(
*
component16
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
const
char
*
(
*
component17
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
const
char
*
(
*
component18
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
const
char
*
(
*
component19
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_KInt
(
*
component2
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
const
char
*
(
*
component20
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
component21
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
component22
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
component23
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
component24
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
component25
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
component26
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
component27
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
component28
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
component29
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_KInt
(
*
component3
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_kref_com_dong_demo013_debug_ComplexNode
(
*
component30
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_KInt
(
*
component4
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_KInt
(
*
component5
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_KInt
(
*
component6
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_KInt
(
*
component7
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_KInt
(
*
component8
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_KInt
(
*
component9
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
(
*
copy
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
,
libkn_KInt
plainInt0
,
libkn_KInt
plainInt1
,
libkn_KInt
plainInt2
,
libkn_KInt
plainInt3
,
libkn_KInt
plainInt4
,
libkn_KInt
plainInt5
,
libkn_KInt
plainInt6
,
libkn_KInt
plainInt7
,
libkn_KInt
plainInt8
,
libkn_KInt
plainInt9
,
const
char
*
plainStr0
,
const
char
*
plainStr1
,
const
char
*
plainStr2
,
const
char
*
plainStr3
,
const
char
*
plainStr4
,
const
char
*
plainStr5
,
const
char
*
plainStr6
,
const
char
*
plainStr7
,
const
char
*
plainStr8
,
const
char
*
plainStr9
,
libkn_kref_com_dong_demo013_debug_ComplexNode
complex0
,
libkn_kref_com_dong_demo013_debug_ComplexNode
complex1
,
libkn_kref_com_dong_demo013_debug_ComplexNode
complex2
,
libkn_kref_com_dong_demo013_debug_ComplexNode
complex3
,
libkn_kref_com_dong_demo013_debug_ComplexNode
complex4
,
libkn_kref_com_dong_demo013_debug_ComplexNode
complex5
,
libkn_kref_com_dong_demo013_debug_ComplexNode
complex6
,
libkn_kref_com_dong_demo013_debug_ComplexNode
complex7
,
libkn_kref_com_dong_demo013_debug_ComplexNode
complex8
,
libkn_kref_com_dong_demo013_debug_ComplexNode
complex9
);
libkn_KBoolean
(
*
equals
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
,
libkn_kref_kotlin_Any
other
);
libkn_KInt
(
*
hashCode
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
const
char
*
(
*
toString
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
thiz
);
}
DebugTenLevelRoot
;
struct
{
libkn_KType
*
(
*
_type
)(
void
);
libkn_kref_com_dong_demo013_debug_DebugTenLevelData
(
*
_instance
)();
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
(
*
get_sample
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelData
thiz
);
libkn_kref_com_dong_demo013_debug_DebugTenLevelRoot
(
*
buildDebugTenLevelRoot
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelData
thiz
);
void
(
*
printSampleExampleToConsole
)(
libkn_kref_com_dong_demo013_debug_DebugTenLevelData
thiz
);
}
DebugTenLevelData
;
void
(
*
allBreakpoints
)();
libkn_KInt
(
*
com_dong_demo013_debug_BranchLayer
$
stableprop_getter
)();
libkn_KInt
(
*
com_dong_demo013_debug_ComplexClass
$
stableprop_getter
)();
libkn_KInt
(
*
com_dong_demo013_debug_ComplexClass1
$
stableprop_getter
)();
libkn_KInt
(
*
com_dong_demo013_debug_ComplexClass2
$
stableprop_getter
)();
libkn_KInt
(
*
com_dong_demo013_debug_ComplexNode
$
stableprop_getter
)();
libkn_KInt
(
*
com_dong_demo013_debug_DebugAllTypesData
$
stableprop_getter
)();
libkn_KInt
(
*
com_dong_demo013_debug_DebugAllTypesData
$
stableprop_getter
)();
void
(
*
getBreakPoint
)();
libkn_KInt
(
*
com_dong_demo013_debug_DebugTenLevelData
$
stableprop_getter
)();
libkn_KInt
(
*
com_dong_demo013_debug_DebugTenLevelRoot
$
stableprop_getter
)();
libkn_KInt
(
*
com_dong_demo013_debug_LeafLayer
$
stableprop_getter
)();
libkn_KInt
(
*
com_dong_demo013_debug_TerminalComplex
$
stableprop_getter
)();
void
(
*
complexObject
)();
void
(
*
getJsons
)();
void
(
*
getJsons
)();
void
(
*
testCommonBreakpoint
)();
void
(
*
testConditionalBreakpoint
)();
void
(
*
testIfBreakpoint
)();
libkn_KInt
(
*
com_dong_demo013_debug_BranchLayer
$
stableprop_getter_
)();
libkn_KInt
(
*
com_dong_demo013_debug_ComplexClass
$
stableprop_getter_
)();
libkn_KInt
(
*
com_dong_demo013_debug_ComplexClass1
$
stableprop_getter_
)();
libkn_KInt
(
*
com_dong_demo013_debug_ComplexClass2
$
stableprop_getter_
)();
libkn_KInt
(
*
com_dong_demo013_debug_ComplexNode
$
stableprop_getter_
)();
libkn_KInt
(
*
com_dong_demo013_debug_DebugAllTypesData
$
stableprop_getter_
)();
libkn_KInt
(
*
com_dong_demo013_debug_DebugAllTypesData
$
stableprop_getter_
)();
libkn_KInt
(
*
com_dong_demo013_debug_DebugTenLevelData
$
stableprop_getter_
)();
libkn_KInt
(
*
com_dong_demo013_debug_DebugTenLevelRoot
$
stableprop_getter_
)();
libkn_KInt
(
*
com_dong_demo013_debug_LeafLayer
$
stableprop_getter_
)();
libkn_KInt
(
*
com_dong_demo013_debug_TerminalComplex
$
stableprop_getter_
)();
libkn_KInt
(
*
com_dong_demo013_debug_BranchLayer
$
stableprop_getter__
)();
libkn_KInt
(
*
com_dong_demo013_debug_ComplexClass
$
stableprop_getter__
)();
libkn_KInt
(
*
com_dong_demo013_debug_ComplexClass1
$
stableprop_getter__
)();
libkn_KInt
(
*
com_dong_demo013_debug_ComplexClass2
$
stableprop_getter__
)();
libkn_KInt
(
*
com_dong_demo013_debug_ComplexNode
$
stableprop_getter__
)();
libkn_KInt
(
*
com_dong_demo013_debug_DebugAllTypesData
$
stableprop_getter__
)();
libkn_KInt
(
*
com_dong_demo013_debug_DebugAllTypesData
$
stableprop_getter__
)();
void
(
*
testFather
)();
libkn_KInt
(
*
com_dong_demo013_debug_DebugTenLevelData
$
stableprop_getter__
)();
void
(
*
testGrandfather
)();
libkn_KInt
(
*
com_dong_demo013_debug_DebugTenLevelRoot
$
stableprop_getter__
)();
void
(
*
testKid
)();
libkn_KInt
(
*
com_dong_demo013_debug_LeafLayer
$
stableprop_getter__
)();
void
(
*
testOver
)();
libkn_KInt
(
*
com_dong_demo013_debug_TerminalComplex
$
stableprop_getter__
)();
void
(
*
testOverLevel2
)();
void
(
*
testIntoDebug
)();
void
(
*
testIntoFather
)();
void
(
*
testIntoGrandfather
)();
void
(
*
testIntoKid
)();
libkn_KInt
(
*
com_dong_demo013_debug_BranchLayer
$
stableprop_getter___
)();
libkn_KInt
(
*
com_dong_demo013_debug_ComplexClass
$
stableprop_getter___
)();
libkn_KInt
(
*
com_dong_demo013_debug_ComplexClass1
$
stableprop_getter___
)();
libkn_KInt
(
*
com_dong_demo013_debug_ComplexClass2
$
stableprop_getter___
)();
libkn_KInt
(
*
com_dong_demo013_debug_ComplexNode
$
stableprop_getter___
)();
libkn_KInt
(
*
com_dong_demo013_debug_DebugAllTypesData
$
stableprop_getter___
)();
libkn_KInt
(
*
com_dong_demo013_debug_DebugTenLevelData
$
stableprop_getter___
)();
libkn_KInt
(
*
com_dong_demo013_debug_DebugTenLevelRoot
$
stableprop_getter___
)();
libkn_KInt
(
*
com_dong_demo013_debug_LeafLayer
$
stableprop_getter___
)();
libkn_KInt
(
*
com_dong_demo013_debug_TerminalComplex
$
stableprop_getter___
)();
void
(
*
testOutDebug
)();
void
(
*
testOutFather
)();
void
(
*
testOutKid
)();
libkn_KInt
(
*
com_dong_demo013_debug_BranchLayer
$
stableprop_getter____
)();
libkn_KInt
(
*
com_dong_demo013_debug_ComplexClass
$
stableprop_getter____
)();
libkn_KInt
(
*
com_dong_demo013_debug_ComplexClass1
$
stableprop_getter____
)();
libkn_KInt
(
*
com_dong_demo013_debug_ComplexClass2
$
stableprop_getter____
)();
libkn_KInt
(
*
com_dong_demo013_debug_ComplexNode
$
stableprop_getter____
)();
libkn_KInt
(
*
com_dong_demo013_debug_DebugAllTypesData
$
stableprop_getter____
)();
libkn_KInt
(
*
com_dong_demo013_debug_DebugTenLevelData
$
stableprop_getter____
)();
libkn_KInt
(
*
com_dong_demo013_debug_DebugTenLevelRoot
$
stableprop_getter____
)();
libkn_KInt
(
*
com_dong_demo013_debug_LeafLayer
$
stableprop_getter____
)();
libkn_KInt
(
*
com_dong_demo013_debug_TerminalComplex
$
stableprop_getter____
)();
void
(
*
testDebug
)();
void
(
*
testOverFather
)();
void
(
*
testOverKid
)();
libkn_KInt
(
*
com_dong_demo013_debug_BranchLayer
$
stableprop_getter_____
)();
libkn_KInt
(
*
com_dong_demo013_debug_ComplexClass
$
stableprop_getter_____
)();
libkn_KInt
(
*
com_dong_demo013_debug_ComplexClass1
$
stableprop_getter_____
)();
libkn_KInt
(
*
com_dong_demo013_debug_ComplexClass2
$
stableprop_getter_____
)();
libkn_KInt
(
*
com_dong_demo013_debug_ComplexNode
$
stableprop_getter_____
)();
libkn_KInt
(
*
com_dong_demo013_debug_DebugAllTypesData
$
stableprop_getter_____
)();
libkn_KInt
(
*
com_dong_demo013_debug_DebugTenLevelData
$
stableprop_getter_____
)();
libkn_KInt
(
*
com_dong_demo013_debug_DebugTenLevelRoot
$
stableprop_getter_____
)();
libkn_KInt
(
*
com_dong_demo013_debug_LeafLayer
$
stableprop_getter_____
)();
libkn_KInt
(
*
com_dong_demo013_debug_TerminalComplex
$
stableprop_getter_____
)();
}
debug
;
}
debug
;
struct
{
struct
{
struct
{
struct
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment