Shiny on Linux

  • Yuri Ivatchkovitch


    Your profiller is exactly what I was looking for. I've worked with Popcap's SexyApp Framework, and they had something just like it. AWESOME!

    But I'm having some problems to link it on linux 64. To compile I had to change some lines of code:

    ShinyTools.h:60 (forced the cast of a 64bit pointer to 32)
    return static_cast<uint32_t>(reinterpret_cast<uint64_t>(a_Ptr));

    ShinyPrereqs.h:72 (removed the cygwin flag)

    Now I'm having serious trouble to link at linux, a lot of undefined references are shown.

    It seems that the lib isn't being correctly generated.

    My solution was to embed the cpp files into my makefile. Isn't beautifull but worked.

    If you could investigate what is happening....

    And just to make some advertising: you may be interested on a memory debugger that haves the same approach that your profiler haves: ;-)

    Yuri I.

    • Aidin Abedi

      Aidin Abedi - 2008-04-03

      Thank you for your kind words.

      Unfortunetly I don't have access to a Linux 64 but it does work in Windows 64. If you find a solution without embedding please post.

      I actually use Shiny by embedding it into my application project. It's easier. I plan to add a compact version with only 1 .cpp & 1 .h for that reason.

      Nice project memdebug, we can exchange links between our websites if you want to.


    • Gino van den Bergen

      Hi there,

      Thanks for sharing this useful code. I've fixed the code for g++ 4.3.2 under opensuse 11.1 x86_64.

      * I replaced the uint32_t in the reinterpret_cast by uintptr_t rather than uint64_t, so it compies on 32-bit platforms as well.
      * I've added #include <stdlib.h> in ShinyManager.cpp fro malloc and free.



      PS, Here's my svn diff:

      Index: include/ShinyTools.h

      --- include/ShinyTools.h        (revision 13)
      +++ include/ShinyTools.h        (working copy)
      @@ -58,7 +58,7 @@

              inline uint32_t ptr32(const void *a_Ptr) {
      -               return reinterpret_cast<uint32_t>(a_Ptr);
      +               return reinterpret_cast<uintptr_t>(a_Ptr);

      Index: src/ShinyManager.cpp
      --- src/ShinyManager.cpp        (revision 13)
      +++ src/ShinyManager.cpp        (working copy)
      @@ -26,6 +26,7 @@
      #include <fstream>
      #include <memory.h>
      #include <stdio.h>
      +#include <stdlib.h>

      namespace Shiny {

    • sunny

      sunny - 2009-03-17

      I am working on SUSE 11.0 (i586) system...........

      I am having trouble with the Shiny Profiler .........

      I have tried a lot but am not able to remove these following 8 errors related to unidentified references:

      Severity and Description    Path    Resource    Location    Creation Time    Id
      1) /home/amin/workspace/Shiny/include/ShinyManager.h undefined reference to `Shiny::GetTicks(unsigned long*)

      2)/home/amin/workspace/Shiny/include/ShinyManager.h undefined reference to `Shiny::ProfileManager::_lookupNode(Shiny::ProfileNode**, Shiny::ProfileZone*)

      3)/home/amin/workspace/Shiny/include/ShinyManager.h undefined reference to `Shiny::ProfileManager::instance

      4)undefined reference to `Shiny::ProfileManager::instance
      5)undefined reference to `Shiny::ProfileManager::instance
      6)undefined reference to `Shiny::ProfileManager::instance

      7)undefined reference to `Shiny::ProfileManager::output(std::basic_ostream<char, std::char_traits<char> >&)

      8)undefined reference to `Shiny::ProfileManager::update(float)

      Can anybody please help me in this regard.......


  • Maxi

    Maxi - 2013-03-01

    Hi there,
    after my girlfriend successfully used Shiny for a university project in MS Visual Studio, I tried to make it work with my Ubuntu 11.10 x86_64 (64bit) and it took me a while to get where I wanted. I checked out the latest version from the SVN repository and tried to make the static lib and link it to my makefile project.

    The experiences and fixes from this task you can find on the Trackers->Patches page here on the project site where I described the necessary changes to build the lib from source and make it work with GNU C/C++ compiler. All changes apply to SVN revision 39.

    I have tested the changes with gcc AND g++ 4.4.6 and above on Ubuntu 64bit, and with Visual Studio 2010 compiler (32 and 64 bit). The static library is built correctly and can now be linked against my project.

    It would be nice to see my changes in the next revision to help Linux users to use Shiny profiler out of the box - as it should be.


Log in to post a comment.