gdb-9.1 Fails to build: "invalid cast to abstract class type"
Simon Marchi
simark@simark.ca
Thu May 21 14:12:27 GMT 2020
On 2020-05-20 2:24 p.m., Chris Nicol wrote:
> Hello,
>
> I am trying to build a new version of the debugger on a SunBlade 100 running FreeBSD 12.1. This build fails with the following complaint:
>
> CXX sparc64-fbsd-nat.o
> In file included from ../../gdb/sparc64-fbsd-nat.c:26:
> ../../gdb/sparc-nat.h: In instantiation of 'target_xfer_status sparc_target<BaseTarget>::xfer_partial(target_object, const char*, gdb_byte*, const gdb_byte*, ULONGEST, ULONGEST, ULONGEST*) [with BaseTarget = fbsd_nat_target; gdb_byte = unsigned char; ULONGEST = long unsigned int]':
> ../../gdb/sparc-nat.h:67:27: required from here
> ../../gdb/sparc-nat.h:78:12: error: invalid cast to abstract class type 'fbsd_nat_target'
> 78 | return BaseTarget (object, annex, readbuf, writebuf,
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 79 | offset, len, xfered_len);
> | ~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from ../../gdb/sparc64-fbsd-nat.c:24:
> ../../gdb/fbsd-nat.h:36:7: note: because the following virtual functions are pure within 'fbsd_nat_target':
> 36 | class fbsd_nat_target : public inf_ptrace_target
> | ^~~~~~~~~~~~~~~
> In file included from ../../gdb/inf-ptrace.h:23,
> from ../../gdb/fbsd-nat.h:23,
> from ../../gdb/sparc64-fbsd-nat.c:24:
> ../../gdb/inf-child.h:42:8: note: 'virtual void inf_child_target::fetch_registers(regcache*, int)'
> 42 | void fetch_registers (struct regcache *, int) override = 0;
> | ^~~~~~~~~~~~~~~
> ../../gdb/inf-child.h:43:8: note: 'virtual void inf_child_target::store_registers(regcache*, int)'
> 43 | void store_registers (struct regcache *, int) override = 0;
> | ^~~~~~~~~~~~~~~
> gmake[2]: *** [Makefile:1656: sparc64-fbsd-nat.o] Error 1
> gmake[2]: Leaving directory '/usr/home/nicolc/gdb/gdb-9.1/build/gdb'
> gmake[1]: *** [Makefile:9563: all-gdb] Error 2
> gmake[1]: Leaving directory '/usr/home/nicolc/gdb/gdb-9.1/build'
> gmake: *** [Makefile:851: all] Error 2
>
>
> Can anyone provide insight into what is going on here, please? Thank you.
>
> Chris.
> --
> ______________________________________________________________________
>
This has been fixed by this commit:
https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=c6a42d11acf2d485bf70d76eda76fd005fcd6825
So if you use the master branch, you shouldn't see this error.
GDB 9.2 (the bugfix release of 9.1) will be out soon, we could probably
cherry-pick that commit in that branch if that helps you.
Simon
More information about the Gdb
mailing list