Commit fbbb2c63 authored by qq_38816927's avatar qq_38816927

调试功能

parent 3acd058f
......@@ -50,7 +50,7 @@ kotlin {
// 禁用内联类可能有助于 NAPI
val main by compilations.getting
main.compilerOptions.configure {
// freeCompilerArgs.add("-Xbinary=sanitizer=address")
freeCompilerArgs.add("-Xbinary=sanitizer=address")
}
//val resource by main.cinterops.creating {
// defFile(file("src/ohosArm64Main/cinterop/resource.def"))
......@@ -68,7 +68,7 @@ kotlin {
}
val main by compilations.getting
main.compilerOptions.configure {
// freeCompilerArgs.add("-Xbinary=sanitizer=address")
freeCompilerArgs.add("-Xbinary=sanitizer=address")
}
// val resource by main.cinterops.creating {
// defFile(file("src/ohosX64Main/cinterop/resource.def"))
......
......@@ -16,4 +16,22 @@ class MainActivity : ComponentActivity() {
App()
}
}
//测试普通断点
fun testCommonBreakpoint() {
val a: Int=1;//普通断点设置处
}
//测试条件断点
fun testIfBreakpoint() {
for (i in 1..10){
if (i==5){//条件断点设置处
println("条件断点命中进入")
}
}
}
}
......@@ -9,7 +9,11 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
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.allBreakpoints
import com.dong.demo013.navigation.ComponentDemo
import com.dong.demo013.navigation.ComposeGroup
import com.dong.demo013.navigation.Page
......@@ -18,6 +22,9 @@ import com.dong.maxhap.demos.NativeFaultDemo
@Composable
internal fun App() {
LaunchedEffect(Unit){
allBreakpoints()
}
MaterialTheme {
// 使用 Page 类型的状态,修复类型推断报错
var page by remember { mutableStateOf<Page>(Page.Home) }
......@@ -48,7 +55,7 @@ internal fun HomeScreen(
.padding(16.dp),
verticalArrangement = Arrangement.spacedBy(16.dp)
) {
// 第一个模块:嵌套页面
// 第一个模块:debug页面
Card(
modifier = Modifier.fillMaxWidth(),
elevation = 8.dp,
......@@ -61,7 +68,7 @@ internal fun HomeScreen(
) {
// 日志测试按钮区域
// debug测试按钮区域
Column(
modifier = Modifier.fillMaxWidth(),
verticalArrangement = Arrangement.spacedBy(8.dp)
......@@ -78,7 +85,65 @@ internal fun HomeScreen(
},
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(
"log_over_demo" -> {
NativeFaultDemo()
}
//debug调试
//调试
"debug_test_demo" -> {
DebugTestDemo()
}
"debug_stepover_demo" -> {
DebugStepOverDemo()
}
"debug_stepinto_demo" -> {
DebugStepIntoDemo()
}
"debug_stepout_demo" -> {
DebugStepOutDemo()
}
else -> {
Text(
text = "暂未实现: ${demo.title}",
......
......@@ -14,14 +14,13 @@ internal fun DebugTestDemo() {
verticalArrangement = Arrangement.spacedBy(16.dp)
) {
// 进入断点
Button(
onClick = {
getBreakPoint();
allBreakpoints()
},
) {
Text("进入断点", color = Color.White)
Text("断点测试", color = Color.White)
}
Button(
onClick = {
......@@ -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(){
print("debugInt:空");
//下面为断点处
val debugInt: Int =1;
print("debugInt:1");
fun allBreakpoints(){
getJsons()
testIfBreakpoint()
testCommonBreakpoint()
complexObject()
testConditionalBreakpoint()
}
/***变量类型**/
fun getJsons(){
val allTypes= DebugAllTypesData ();
print("断点处(所有类型变量)")
print("开始打印所有类型变量")
allTypes.printAllTypes();
print("打印所有类型变量结束")
// val allTypes= DebugAllTypesData ();
val str: String="文本"
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
......@@ -174,3 +174,20 @@ class DebugAllTypesData {
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
......@@ -6,86 +6,60 @@ 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 DebugStepDemo() {
internal fun DebugStepIntoDemo() {
Column(
modifier = Modifier.fillMaxSize().padding(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)
testIntoDebug()
}
Button(
onClick = {
},
) {
Text("step into-步进", color = Color.White)
Text("触发断点", color = Color.White)
}
Button(
onClick = {
},
) {
Text("step into-步出", color = Color.White)
}
Text( "调试步骤\n" +
"测试包含3层方法\n" +
"第一层:testIntoGrandfather\n" +
"第二层:testIntoFather,被testIntoGrandfather包含\n" +
"第三层:testIntoKid,被testIntoFather包含\n" +
"fun testIntoGrandfather(){\n"+
" fun testIntoFather(){ \n" +
" fun testIntoKid(){\");\n" +
" 。 print(\"测试步进断点-结束\");" +
" }\n" +
" }\n" +
"}",
fontSize = 12.sp)
}
}
/****测试步过****/
fun testOver(){
print("测试步过:跳过下列的方法,不进入testGrandfather")
fun testIntoDebug(){
testIntoGrandfather()
}
/***通用测试方法**/
fun testGrandfather(){
print("进入testGrandfather");
testFather();
print("离开testGrandfather");
fun testIntoGrandfather(){
testIntoFather();// 测试步进断点-开始
}
fun testFather(){
print("进入testFather");
testKid()
print("离开testFather");
fun testIntoFather(){// 测试步进断点-进入方法
testIntoKid();// 测试步进断点-结束
}
fun testKid(){
print("进入testKid");
print("离开testKid");
fun testIntoKid(){
print("测试步进断点-结束");// print("测试步进断点-结束");
}
fun testOverLevel2(){
}
\ No newline at end of file
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");
}
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");
}
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
package com.dong.demo013
import androidx.compose.ui.window.ComposeArkUIViewController
import com.dong.demo013.debug.DebugAllTypesData
import com.dong.demo013.debug.allBreakpoints
import kotlinx.cinterop.ExperimentalForeignApi
import kotlinx.coroutines.initMainHandler
import platform.ohos.napi_env
......@@ -15,3 +17,8 @@ fun MainArkUIViewController(env: napi_env): napi_value {
App()
}
}
package com.dong.demo013
import androidx.compose.ui.window.ComposeArkUIViewController
import com.dong.demo013.debug.allBreakpoints
import kotlinx.cinterop.ExperimentalForeignApi
import kotlinx.coroutines.initMainHandler
import platform.ohos.napi_env
......@@ -13,5 +14,6 @@ fun MainArkUIViewController(env: napi_env): napi_value {
initMainHandler(env)
return ComposeArkUIViewController(env) {
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": [
{
"name": "default",
......@@ -33,11 +18,26 @@
],
"buildModeSet": [
{
"name": "debug",
"name": "debug"
},
{
"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": [
......
......@@ -99,6 +99,33 @@ typedef struct {
typedef struct {
libkn_KNativePtr pinned;
} 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 {
libkn_KNativePtr pinned;
} libkn_kref_com_dong_demo013_navigation_ComposeGroup;
......@@ -327,16 +354,362 @@ typedef struct {
void (*printAllTypes)(libkn_kref_com_dong_demo013_debug_DebugAllTypesData thiz);
void (*unitFunction)(libkn_kref_com_dong_demo013_debug_DebugAllTypesData thiz);
} 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)();
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 (*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_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__)();
void (*testFather)();
void (*testGrandfather)();
void (*testKid)();
void (*testOver)();
void (*testOverLevel2)();
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 (*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;
struct {
struct {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment