wuhailinjerry / edb-debugger

Automatically exported from code.google.com/p/edb-debugger
GNU General Public License v2.0
0 stars 0 forks source link

Unresolved symbol error - LibDebuggerCore.so #60

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
I get this error with v0.9.10

[loadPlugins] Cannot load library /usr/lib/edb/libDebuggerCore.so: 
(/usr/lib/edb/libDebuggerCore.so: undefined symbol: 
_ZN5State12i387RegisteraSERKS0_)

v0.9.9 works fine.

Both were compiled on the same system (qt4 v4.5.2)

Original issue reported on code.google.com by evan.teran on 3 Oct 2012 at 3:21

GoogleCodeExporter commented 9 years ago
A few quick questions. What distro are you using? Did you install from sources 
or from a package of some kind.

It looks like you did a "make install" did you do this after each version's 
compile? edb 0.9.9 plugins are *NOT* binary compatible with 0.9.10 plugins 
since the plugin API was changed.

Finally, if you compile 0.9.10 and just run it from the source directory, does 
that work?

Thanks,
Evan Teran

Original comment by evan.teran on 3 Oct 2012 at 4:17

GoogleCodeExporter commented 9 years ago
Fixed with no version bump.

The fix was to simply change:
    struct i387Register {
to 
    struct EDB_EXPORT i387Register {
in include/arch/*/State.h.

It seems that gcc 4.1 didn't export embedded classes if the parent class is 
exported as gcc 4.3/4.4 does. So I've added the explicit export and it seems to 
work across the board now.

Original comment by evan.teran on 3 Oct 2012 at 4:18