Re: gdb 11.1: struct inf lacks two members

Simon Marchi via Gdb <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>
On 2021-11-02 19:11, Andrea Monaco via Gdb wrote:
> 
> Hello,
> 
> 
> after a successful configure, gdb 11.1 fails to make in my GNU/Hurd
> system with the following errors:
> 
> 
>   CXX    gnu-nat.o
> gnu-nat.c: In member function 'virtual void gnu_nat_target::create_inferior(const char*, const string&, char**, int)':
> gnu-nat.c:2117:13: error: 'struct inf' has no member named 'target_is_pushed'
>  2117 |   if (!inf->target_is_pushed (this))
>       |             ^~~~~~~~~~~~~~~~
> gnu-nat.c:2118:10: error: 'struct inf' has no member named 'push_target'
>  2118 |     inf->push_target (this);
>       |          ^~~~~~~~~~~
> 
> 
> and some others follow.  I found out that struct inf (from gnu-nat.c) is
> only defined in the GNU/Hurd target, but it lacks the target_is_pushed
> and push_target members which are part of class inferior (from
> inferior.h).  Is this a syntax error?
> 
> 
> 
> Let me know,
> 
> Andrea Monaco
> 

Oh, my bad I think.  This should use the "inferior" variable, not inf.
As you mentioned, there's a "struct inf" type only defined in gnu-nat,
and I got confused with the two similar variables.  The change below
should fix it, can you confirm?


diff --git a/gdb/gnu-nat.c b/gdb/gnu-nat.c
index 54838347f947..13afb3ed8b01 100644
--- a/gdb/gnu-nat.c
+++ b/gdb/gnu-nat.c
@@ -2108,8 +2108,8 @@ gnu_nat_target::create_inferior (const char *exec_file,
 
   inf_debug (inf, "creating inferior");
 
-  if (!inf->target_is_pushed (this))
-    inf->push_target (this);
+  if (!inferior->target_is_pushed (this))
+    inferior->push_target (this);
 
   pid = fork_inferior (exec_file, allargs, env, gnu_ptrace_me,
 		       NULL, NULL, NULL, NULL);
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.