Giter Club home page Giter Club logo

mrnet's Introduction

Dyninst

Notes

  • Known issues should have open issues associated with them.
  • ARMv8 (64 bit) support for dynamic instrumentation is experimental and incomplete. For more details about current supported functionality refer to Dyninst Support for the ARMv8 (64 bit).

Build DyninstAPI and its subcomponents

Docker Containers

Containers are provided that can be used for Dyninst development (e.g., make changes to Dyninst and quickly rebuild it) or for development of your own tools (e.g., have a container ready to go with Dyninst). Links will be added here when the containers are pushed to the Dyninst associated package registries. Instructions for usage and building locally are provided in the docker directory.

Install with Spack

spack install dyninst

Build from source

  1. Configure Dyninst with CMake

    cmake /path/to/dyninst/source -DCMAKE_INSTALL_PREFIX=/path/to/installation

  2. Build and install Dyninst in parallel

    make install -jN

If this does not work for you, please refer to the Wiki for detailed instructions. If you encounter any errors, see the Building Dyninst or leave a GitHub issue.

Known Issues

  • Windows 64-bit mode is not yet supported

  • Windows rewriter mode is not yet supported

  • Exceptions in relocated code will not be caught

  • Linux rewriter mode for 32-bit, statically linked binaries does not support binaries with .plt, .rel, or .rela sections.

  • Callbacks at thread or process exit that stop the process will deadlock when a SIGSEGV occurs on a thread other than the main thread of a process

  • Stackwalker is fragile on Windows

  • Parsing a binary with no functions (typically a single object file) will crash at CodeObject destruction time.

mrnet's People

Contributors

bwelton avatar esamanas avatar h4u5 avatar kupsch avatar michaelbrim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

mrnet's Issues

graph is not connected, found 0 potential roots

Anyone know what would cause this error:

graph is not connected, found 0 potential roots

This is using STAT as reported by a user in LLNL/STAT#46. I'm wondering if it is because of the ".bullx" in the FE hostname. Does MRNet think it is a fully qualified hostname? In this case, I don't think "bullx" is the domain name.

XPlat::Connect() does not handle EINTR properly

XPlat::Connect() when it encounters an EINTR error on the connect call will exit the function with -1 without any retries. However the EINTR error is likely recoverable by retrying the connect call again. Need to add EINTR to the list of errors which results in a connection retry.

Build fails on latest LLVM: ISO C++17 does not allow 'register' storage class specifier

@kupsch @bigtrak

I plan to add this to our CI testing at some point even though it doesn't use Dyninst. We should fix this and do a point release.

17 errors found in build log:
     173    Building Depends File byte_order.d ...
     174    Building Depends File BackEndNode.d ...
     175    Building Depends File parser.tab.d ...
     176    Building Depends File scanner.d ...
     177    Compiling CommunicationNodeMain.o ...
     178    Compiling scanner.o ...
  >> 179    <stdout>:738:2: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
     180            register yy_state_type yy_current_state;
     181            ^~~~~~~~~
  >> 182    <stdout>:739:2: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
     183            register char *yy_cp, *yy_bp;
     184            ^~~~~~~~~
  >> 185    <stdout>:739:2: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
     186            register char *yy_cp, *yy_bp;
     187            ^~~~~~~~~
  >> 188    <stdout>:740:2: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
     189            register int yy_act;
     190            ^~~~~~~~~
  >> 191    <stdout>:791:4: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
     192                            register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
     193                            ^~~~~~~~~
  >> 194    <stdout>:1024:6: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
     195            register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
     196            ^~~~~~~~~
  >> 197    <stdout>:1025:2: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
     198            register char *source = (yytext_ptr);
     199            ^~~~~~~~~
  >> 200    <stdout>:1026:2: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
     201            register int number_to_move, i;
     202            ^~~~~~~~~
  >> 203    <stdout>:1026:2: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
     204            register int number_to_move, i;
     205            ^~~~~~~~~
  >> 206    <stdout>:1158:2: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
     207            register yy_state_type yy_current_state;
     208            ^~~~~~~~~
  >> 209    <stdout>:1159:2: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
     210            register char *yy_cp;
     211            ^~~~~~~~~
  >> 212    <stdout>:1165:3: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
     213                    register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
     214                    ^~~~~~~~~
  >> 215    <stdout>:1190:2: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
     216            register int yy_is_jam;
     217            ^~~~~~~~~
  >> 218    <stdout>:1191:6: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
     219            register char *yy_cp = (yy_c_buf_p);
     220            ^~~~~~~~~
  >> 221    <stdout>:1193:2: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
     222            register YY_CHAR yy_c = 1;
     223            ^~~~~~~~~
     224    15 errors generated.

xplat_config.h and mrnet_config.h not installed with Lightweight MRNet

When building lightweight MRNet by itself (via "make lightweight-all") the files xplat_config.h and mrnet_config.h are not installed onto the system when Make Install is called. Thus if you are building MRNet with only lightweight support then you would not have these required headers installed on the system.

No way to specify the location of libexpat

There is no way to currently specify the location of libexpat. This is not a problem on most systems however on some systems a static version of libexpat may not be available which would result in the Cray version of MRNet failing to build properly.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.