Skip to content

Commit b8cd765

Browse files
committed
Break on art_sigsegv_fault and art_sigbus_fault explicitly
1 parent 5782553 commit b8cd765

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

src/debugConfigProvider.ts

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,19 @@ export class LLDBDebugConfigurationProvider implements vscode.DebugConfiguration
6666
dbgConfig.androidLldbServerSocket = socket;
6767

6868
dbgConfig.initCommands = (dbgConfig.initCommands instanceof Array) ? dbgConfig.initCommands : [];
69-
// Improve Android debugging by ignoring SIGBUS and SIGSEGV signal, see https://issuetracker.google.com/issues/240007217#comment17
70-
dbgConfig.initCommands.unshift(`process handle SIGBUS SIGSEGV --pass true --stop false --notify false`);
71-
dbgConfig.initCommands.unshift(`platform connect unix-abstract-connect://[${target.udid}]${socket}`);
72-
dbgConfig.initCommands.unshift(`platform select remote-android`);
7369

74-
dbgConfig.initCommands.push(`settings set plugin.jit-loader.gdb.enable off`);
70+
dbgConfig.initCommands.unshift(
71+
"platform select remote-android",
72+
`platform connect unix-abstract-connect://[${target.udid}]${socket}`,
73+
"settings set plugin.jit-loader.gdb.enable off",
74+
75+
// Ignoring SIGBUS and SIGSEGV signal, see https://issuetracker.google.com/issues/240007217#comment17
76+
// Set breakpoints on unhandled signal handlers in libart.so to break on these signals instead
77+
"process handle SIGBUS SIGSEGV --pass true --stop false --notify false",
78+
"breakpoint set --shlib libart.so --name art_sigsegv_fault",
79+
"breakpoint set --shlib libart.so --name art_sigbus_fault",
80+
);
81+
7582
if (dbgConfig.symbolSearchPaths) {
7683
for (let symbolSeachPath of dbgConfig.symbolSearchPaths) {
7784
dbgConfig.initCommands.push(`settings append target.exec-search-paths '${symbolSeachPath}'`);

0 commit comments

Comments
 (0)