@@ -159,6 +159,7 @@ export abstract class GDBDebugSessionBase extends LoggingDebugSession {
159159
160160 protected supportsRunInTerminalRequest = false ;
161161 protected supportsMemoryReferences = false ;
162+ protected supportsMemoryEvent = false ;
162163 public supportsGdbConsole = false ;
163164
164165 /* A reference to the logger to be used by subclasses */
@@ -421,6 +422,7 @@ export abstract class GDBDebugSessionBase extends LoggingDebugSession {
421422 ) : void {
422423 this . supportsRunInTerminalRequest =
423424 args . supportsRunInTerminalRequest === true ;
425+ this . supportsMemoryEvent = args . supportsMemoryEvent === true ;
424426 this . supportsMemoryReferences = args . supportsMemoryReferences === true ;
425427 this . supportsGdbConsole =
426428 os . platform ( ) === 'linux' && this . supportsRunInTerminalRequest ;
@@ -2669,44 +2671,6 @@ export abstract class GDBDebugSessionBase extends LoggingDebugSession {
26692671 } )
26702672 ) . value
26712673 : varobj . value ;
2672- if ( this . supportsMemoryReferences ) {
2673- let memoryReferenceResult :
2674- | MIGDBDataEvaluateExpressionResponse
2675- | undefined ;
2676- let hasMemoryReference = false ;
2677- try {
2678- memoryReferenceResult =
2679- await mi . sendDataEvaluateExpression (
2680- gdb ,
2681- `&(${ varobj . expression } )`
2682- ) ;
2683- // Depending on the GDBServer being used, sometimes the result of evaluating an address of a symbol returns "<address> <symbol name>"
2684- if ( memoryReferenceResult . value ?. includes ( ' ' ) ) {
2685- memoryReferenceResult . value =
2686- memoryReferenceResult . value . split ( ' ' ) [ 0 ] ;
2687- }
2688- hasMemoryReference = true ;
2689- } catch ( err ) {
2690- hasMemoryReference = false ;
2691- }
2692- const variablesReference =
2693- parseInt ( varobj . numchild , 10 ) > 0
2694- ? this . variableHandles . create ( {
2695- type : 'object' ,
2696- frameHandle,
2697- varobjName : varobj . varname ,
2698- } )
2699- : 0 ;
2700- response . body = {
2701- result,
2702- type : varobj . type ,
2703- variablesReference,
2704- memoryReference :
2705- hasMemoryReference && memoryReferenceResult
2706- ? memoryReferenceResult . value
2707- : undefined ,
2708- } ;
2709- }
27102674 const variablesReference =
27112675 parseInt ( varobj . numchild , 10 ) > 0
27122676 ? this . variableHandles . create ( {
@@ -3352,6 +3316,9 @@ export abstract class GDBDebugSessionBase extends LoggingDebugSession {
33523316 this . handleCmdParamChanged ( notifyData ) ;
33533317 break ;
33543318 case 'memory-changed' : {
3319+ if ( ! this . supportsMemoryEvent ) {
3320+ break ;
3321+ }
33553322 let length = 0 ;
33563323 if ( isNaN ( notifyData . len ) ) {
33573324 logger . warn (
0 commit comments