@@ -54,7 +54,7 @@ class LogMessage {
5454 }
5555 }
5656
57- logMsgProcess ( parsed :any ) {
57+ logMsgProcess ( parsed :MINode ) {
5858 this . logMsgBrkList . forEach ( ( brk ) => {
5959 if ( parsed . outOfBandRecord [ 0 ] . output [ 0 ] [ 1 ] == "breakpoint-hit" && parsed . outOfBandRecord [ 0 ] . output [ 2 ] [ 1 ] == brk . id ) {
6060 this . logMsgVar = brk ?. logMessage ;
@@ -264,6 +264,8 @@ export class MI2 extends EventEmitter implements IBackend {
264264 cmds . push ( this . sendCommand ( "file-exec-and-symbols \"" + escape ( target ) + "\"" ) ) ;
265265 if ( this . prettyPrint )
266266 cmds . push ( this . sendCommand ( "enable-pretty-printing" ) ) ;
267+ if ( this . frameFilters )
268+ cmds . push ( this . sendCommand ( "enable-frame-filters" ) ) ;
267269 for ( const cmd of this . extraCommands ) {
268270 cmds . push ( this . sendCommand ( cmd ) ) ;
269271 }
@@ -794,6 +796,11 @@ export class MI2 extends EventEmitter implements IBackend {
794796 const func = MINode . valueOf ( element , "@frame.func" ) ;
795797 const filename = MINode . valueOf ( element , "@frame.file" ) ;
796798 let file : string = MINode . valueOf ( element , "@frame.fullname" ) ;
799+ if ( ! file ) {
800+ // Fallback to using `file` if `fullname` is not provided.
801+ // GDB does this for some reason when frame filters are used.
802+ file = MINode . valueOf ( element , "@frame.file" ) ;
803+ }
797804 if ( file ) {
798805 if ( this . isSSH )
799806 file = path . posix . normalize ( file ) ;
@@ -1012,6 +1019,7 @@ export class MI2 extends EventEmitter implements IBackend {
10121019 }
10131020
10141021 prettyPrint : boolean = true ;
1022+ frameFilters : boolean = true ;
10151023 printCalls : boolean ;
10161024 debugOutput : boolean ;
10171025 features : string [ ] ;
0 commit comments