Closed Rupan closed 10 years ago
Thanks for the report. I committed a fix for it right now. Does it resolve your issues?
I am now able to compile the plugin, but it appears not to work. I'm assuming that there is supposed to be some additional menu item under Edit -> Plugins but there is not. The plugin also does not link to libida like the others do:
$ ldd plugins/IDASkins.plx
linux-gate.so.1 => (0xf7730000)
libQtGui.so.4 => /tank/Qt-4.8.4-IDA/lib/libQtGui.so.4 (0xf6c5c000)
libQtCore.so.4 => /tank/Qt-4.8.4-IDA/lib/libQtCore.so.4 (0xf696f000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf685d000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf6840000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf6690000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf6674000)
libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xf6568000)
libpng12.so.0 => /lib/i386-linux-gnu/libpng12.so.0 (0xf653f000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xf6525000)
libfreetype.so.6 => /usr/lib/i386-linux-gnu/libfreetype.so.6 (0xf6485000)
libgobject-2.0.so.0 => /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 (0xf6433000)
libSM.so.6 => /usr/lib/i386-linux-gnu/libSM.so.6 (0xf642a000)
libICE.so.6 => /usr/lib/i386-linux-gnu/libICE.so.6 (0xf640f000)
libXrender.so.1 => /usr/lib/i386-linux-gnu/libXrender.so.1 (0xf6404000)
libfontconfig.so.1 => /usr/lib/i386-linux-gnu/libfontconfig.so.1 (0xf63c9000)
libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf63b6000)
libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf6282000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf623b000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf6236000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf622d000)
/lib/ld-linux.so.2 (0xf7731000)
libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xf61ef000)
libffi.so.6 => /usr/lib/i386-linux-gnu/libffi.so.6 (0xf61e8000)
libuuid.so.1 => /lib/i386-linux-gnu/libuuid.so.1 (0xf61e1000)
libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 (0xf61b8000)
libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf6196000)
libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf6192000)
libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf618b000)
What is your IDA version? I do not own a Linux license for IDA, so I had to test with the demo yesterday, which seemed to be working.
I have a license for IDA version 6.6 on Linux.
Interesting that it would work with the demo. Are you using the IDA 6.6 SDK?
Yep. In fact, I explicitly added this code to the makefile
*-g++* {
LIBS += -L"$${LIBDIR}"
}
else {
LIBS += -L"$${LIBDIR}" -lida
}
to allow compilation with gcc in the first place. When looking into the lib directory of the IDA SDK, there is an ida.lib and a pro.lib for windows, while there's only a pro.a for Linux, so I figured out that Hex-Rays must have been merging them somehow and when I added the above code, everything was fine for me.
I'm was using Xubuntu by the way, however that shouldn't make any difference.
Sorry it has taken so long to respond - I've been short on time. I saw that you added some code for gcc, which fixed the compilation. However, after installation, there are no additional menu entries in the plugins menu. IDA seems to start up fine, but there are no debug messages printed which indicate that the IDAskins plugin has been loaded.
Huh - interesting. I had tried starting IDA several times but had not opened a database. I just tried to open IDA with a database at startup and now it seems that the plugin is working. So it would seem that the plugin is only activated when a database is loaded.
I know that there are different choices regarding when a plugin loads. It has been a while since I looked closely at the IDA SDK, but it seems to me that a skin plugin should always load, regardless of whether a database is open. Just my $0.02.
Didn't see that flag yet, thanks for the hint. I will definitely add it in the next version.
By the way: to make it look good, you will have to alter the font in the stylesheet from Consolas to whatever you selected in IDAs font dialog. Sadly, the SDK is lacking any functions to read the font config. I will have to look for a way to work around that (maybe using Qt's runtime inspection). Or I simply ask Hex-Rays to add it.
After some Google-fu, I realized that you're using C++11 features, so I patched the Makefile to enable it (add -std=c++11 to CXXFLAGS). However, there are still a couple of issues: