@@ -3,7 +3,7 @@ import * as vscode from 'vscode';
3
3
import * as path from 'path' ;
4
4
import * as ra from './lsp_ext' ;
5
5
6
- import { Cargo } from './toolchain' ;
6
+ import { Cargo , sysrootForDir as getSysroot } from './toolchain' ;
7
7
import { Ctx } from "./ctx" ;
8
8
import { prepareEnv } from "./run" ;
9
9
@@ -104,7 +104,15 @@ async function getDebugConfiguration(ctx: Ctx, runnable: ra.Runnable): Promise<v
104
104
105
105
const executable = await getDebugExecutable ( runnable ) ;
106
106
const env = prepareEnv ( runnable , ctx . config . runnableEnv ) ;
107
- const debugConfig = knownEngines [ debugEngine . id ] ( runnable , simplifyPath ( executable ) , env , debugOptions . sourceFileMap ) ;
107
+ let sourceFileMap = debugOptions . sourceFileMap ;
108
+ if ( ! sourceFileMap || Object . keys ( sourceFileMap ) . length === 0 ) {
109
+ // let's try to use the default toolchain
110
+ const sysroot = await getSysroot ( wsFolder ) ;
111
+ const rustlib_src = path . normalize ( sysroot + "/lib/rustlib/src/rust" ) ;
112
+ sourceFileMap = { "/rustc/*" : rustlib_src } ;
113
+ }
114
+
115
+ const debugConfig = knownEngines [ debugEngine . id ] ( runnable , simplifyPath ( executable ) , env , sourceFileMap ) ;
108
116
if ( debugConfig . type in debugOptions . engineSettings ) {
109
117
const settingsMap = ( debugOptions . engineSettings as any ) [ debugConfig . type ] ;
110
118
for ( var key in settingsMap ) {
0 commit comments