Bug 17835

Summary: gdb fails to find members of current object/class (this / self) / case-sensitivity issue
Product: gdb Reporter: Martin <gdb.bugs>
Component: gdbAssignee: Not yet assigned to anyone <unassigned>
Status: RESOLVED FIXED    
Severity: normal    
Priority: P2    
Version: 7.8   
Target Milestone: ---   
Host: Target:
Build: Last reconfirmed:

Description Martin 2015-01-12 23:21:56 UTC
This issue is present in gdb 7.7 and 7.8 (it worked fine with all versions before)

I tested on windows, 32 bit vista, but was told the issue was also present on linux (not tested myself).

Compile the program below using fpc (freepascal). The issue occurs with stabs (fpc -gs) or dwarf2 (fpc -gw).

Set a breakpoint on "writeln" and run.

Try to evaluate:
 ptype member1

This should return (and does with older gdb)
 type = integer

With gdb 7.7 or 7.8 it returns:
 Type TFOO has no component named member1.\n

It seems to be a case sensitivity issue:
this works:  ptype MEMBER1

But
 ptype self.member1
also works, being lowercase.



program classmember;
type
  TFoo = class
    member1: integer;
    procedure bar;
  end;

procedure TFoo.bar;
begin
  member1 := 222;
  writeln;
end;

begin
  TFoo.Create.bar;
end.
Comment 1 Martin 2015-08-31 10:20:09 UTC
Issue is fixed in 7.9.1 

possible due to changes from #17815 ?