android studio lldb配置
- app的edit config选择debugger native only
- lldb post attach command填写下面三条命令
add-dsym E:\work\images\pd2227\5.5\symbols\qssi\system\lib64\libui.so
add-dsym E:\work\images\pd2227\5.5\symbols\qssi\system\lib64\libgui.so
settings set target.source-map /home/wangmin/code/google/skia/out/arm64/../../ D:\android\skia\app\src\main\cpp
- 启动gdbserver
gdbserver 10.90.53.224:2000 ark_aot_compiler --target-triple=aarch64-unknown-linux-gnu --aot-file=test --builtins-dts=lib_ark_builtins.d.abc test.abc
- 创建launch.json
"version": "0.2.0",
"configurations": [
{
"name": "远程调试",
"type": "cppdbg",
"request": "launch",
"program": "/home/w00456713/code/aosp/android12/out/host/linux-x86/bin/dalvikvm64",
// "stopAtEntry": true,
"MIMode": "gdb",
"miDebuggerServerAddress": ":2000",
"cwd": "${workspaceRoot}",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Set Disassembly Flavor to Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
}
]
}
- 创建setting.json
"files.associations": {
"*.inc": "cpp",
},
"typescript.tsc.autoDetect": "off",
"C_Cpp.intelliSenseEngine": "Disabled",
"C_Cpp.autocomplete": "Disabled",
"C_Cpp.errorSquiggles": "Disabled",
- 设置pretty-printer
define pr
p this->acc_.Print($arg0)
end
document pr
Print a gate ref
Usage: pr gateref
end
define pa
p this->circuit_->PrintAllGatesWithBytecode()
end
document pa
Print all gate ref
Usage: pa
end
python
import sys
sys.path.insert(0, '/home/w00456713/code/tools')
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end
# For more information about using CMake with Android Studio, read the
# documentation: https://d.android.com/studio/projects/add-native-code.html
# Sets the minimum version of CMake required to build the native library.
cmake_minimum_required(VERSION 3.4.1)
# Creates and names a library, sets it as either STATIC
# or SHARED, and provides the relative paths to its source code.
# You can define multiple libraries, and CMake builds them for you.
# Gradle automatically packages shared libraries with your APK.
add_library( # Sets the name of the library.
nativejni
# Sets the library as a shared library.
SHARED
# Provides a relative path to your source file(s).
native-lib.cpp )
# Searches for a specified prebuilt library and stores the path as a
# variable. Because CMake includes system libraries in the search path by
# default, you only need to specify the name of the public NDK library
# you want to add. CMake verifies that the library exists before
# completing its build.
target_include_directories(nativejni PUBLIC
${CMAKE_CURRENT_LIST_DIR})
find_library( # Sets the name of the path variable.
log-lib
# Specifies the name of the NDK library that
# you want CMake to locate.
log )
# Specifies libraries CMake should link to your target library. You
# can link multiple libraries, such as libraries you define in this
# build script, prebuilt third-party libraries, or system libraries.
target_link_libraries( # Specifies the target library.
nativejni
# Links the target library to the log library
# included in the NDK.
GLESv3
EGL
${CMAKE_CURRENT_LIST_DIR}/libskia.so
${log-lib} )