@@ -90,7 +90,8 @@ import {
9090 view_str$prompt$filesOptionsComment ,
9191 view_str$virual_doc_provider_banner ,
9292 view_str$missed_stubs_added ,
93- view_str$keil_export_path_warning
93+ view_str$keil_export_path_warning ,
94+ view_str$settings$debugger
9495} from './StringTable' ;
9596import { CodeBuilder , BuildOptions } from './CodeBuilder' ;
9697import { ExceptionToMessage , newMessage } from './Message' ;
@@ -113,7 +114,8 @@ import {
113114 pyocd_getTargetList ,
114115 generateDotnetProgramCmd ,
115116 isGccFamilyToolchain ,
116- cxxDemangle
117+ cxxDemangle ,
118+ DEBUGGER_MAPS
117119} from './utility' ;
118120import { concatSystemEnvPath , DeleteDir , exeSuffix , kill , osType , DeleteAllChildren , userhome , getGlobalState } from './Platform' ;
119121import { KeilARMOption , KeilC51Option , KeilParser , KeilRteDependence } from './KeilXmlParser' ;
@@ -1372,6 +1374,16 @@ class ProjectDataProvider implements vscode.TreeDataProvider<ProjTreeItem>, vsco
13721374 projectIndex : element . val . projectIndex
13731375 } ) ) ;
13741376
1377+ // setting: debugger
1378+ const debuggerId = project . getTargetInfo ( ) . settings . debugger || 'unknown' ;
1379+ iList . push ( new ProjTreeItem ( TreeItemType . SETTINGS_ITEM , {
1380+ key : 'debugger' ,
1381+ value : DEBUGGER_MAPS [ debuggerId ] . name ,
1382+ keyAlias : view_str$settings$debugger ,
1383+ tooltip : newMarkdownString ( `**${ view_str$settings$debugger } **: \`${ DEBUGGER_MAPS [ debuggerId ] . name } \`` ) ,
1384+ projectIndex : element . val . projectIndex
1385+ } ) ) ;
1386+
13751387 // setting: project env
13761388 iList . push ( new ProjTreeItem ( TreeItemType . SETTINGS_ITEM , {
13771389 key : 'project.env' ,
@@ -1970,6 +1982,7 @@ class ProjectDataProvider implements vscode.TreeDataProvider<ProjTreeItem>, vsco
19701982 libList : [ ]
19711983 } ,
19721984 builderOptions : { } ,
1985+ settings : { }
19731986 } ;
19741987 eidePrjCfg . targets [ targetName ] = nEideTarget ;
19751988
@@ -2207,7 +2220,8 @@ class ProjectDataProvider implements vscode.TreeDataProvider<ProjTreeItem>, vsco
22072220 incList : [ ] ,
22082221 defineList : [ ] ,
22092222 libList : [ ]
2210- }
2223+ } ,
2224+ settings : { }
22112225 } ;
22122226
22132227 nEideTarget . cppPreprocessAttrs . defineList = eTarget . builldArgs . cMacros ;
@@ -6213,6 +6227,36 @@ export class ProjectExplorer implements CustomConfigurationProvider {
62136227 }
62146228 }
62156229 break ;
6230+ case 'debugger' :
6231+ {
6232+ const selections : any [ ] = [ ] ;
6233+
6234+ if ( prj . getProjectType ( ) !== 'C51' ) {
6235+
6236+ selections . push ( {
6237+ value : 'cortex-debug' ,
6238+ label : DEBUGGER_MAPS [ 'cortex-debug' ] . name ,
6239+ detail : `extension id: ${ DEBUGGER_MAPS [ 'cortex-debug' ] . extension_id } `
6240+ } ) ;
6241+
6242+ selections . push ( {
6243+ value : 'cdt-gdb-debug' ,
6244+ label : DEBUGGER_MAPS [ 'cdt-gdb-debug' ] . name ,
6245+ detail : `extension id: ${ DEBUGGER_MAPS [ 'cdt-gdb-debug' ] . extension_id } `
6246+ } ) ;
6247+ }
6248+
6249+ const res = await vscode . window . showQuickPick ( selections , { placeHolder : 'Select debugger type' } ) ;
6250+ if ( res ) {
6251+ const targetInfo = prj . getTargetInfo ( ) ;
6252+ if ( targetInfo . settings . debugger !== res . value ) {
6253+ targetInfo . settings . debugger = res . value ;
6254+ this . updateSettingsView ( prj ) ;
6255+ prj . Save ( true ) ;
6256+ }
6257+ }
6258+ }
6259+ break ;
62166260 // 'project.env'
62176261 case 'project.env' :
62186262 {
@@ -7243,7 +7287,8 @@ export class ProjectExplorer implements CustomConfigurationProvider {
72437287 type : 'jlink' | 'openocd' | 'pyocd' ,
72447288 prj : AbstractProject , old_cfgs : any [ ] ) : Promise < { debug_config : any , override_idx : number } | undefined > {
72457289
7246- const _elfPath = File . ToUnixPath ( prj . getOutputDir ( ) ) + '/' + `${ prj . getProjectName ( ) } .elf` ;
7290+ const _outFullName = File . ToUnixPath ( prj . getOutputDir ( ) ) + '/' + `${ prj . getProjectName ( ) } `
7291+ const _elfPath = `${ _outFullName } .elf` ;
72477292 const _debugConfigTemplates = {
72487293 'jlink' : {
72497294 cwd : '${workspaceRoot}' ,
@@ -7281,9 +7326,15 @@ export class ProjectExplorer implements CustomConfigurationProvider {
72817326 } ;
72827327
72837328 const debugConfig : any = _debugConfigTemplates [ type ] ;
7329+ const toolchain = prj . getToolchain ( ) ;
7330+
7331+ if ( toolchain . name == 'AC5' || toolchain . name == 'AC6' ) {
7332+ debugConfig [ 'executable' ] = undefined ;
7333+ debugConfig [ 'loadFiles' ] = [ `${ _outFullName } .hex` ] ;
7334+ debugConfig [ 'symbolFiles' ] = [ `${ _outFullName } .axf` ] ;
7335+ }
72847336
72857337 /* set gdb toolchain */
7286- const toolchain = prj . getToolchain ( ) ;
72877338 if ( toolchain . getToolchainPrefix ) {
72887339 debugConfig . toolchainPrefix = toolchain . getToolchainPrefix ( ) . trim ( ) . replace ( / - $ / , '' ) ;
72897340 } else if ( debugConfig . toolchainPrefix ) {
0 commit comments