Skip to content
Snippets Groups Projects
  1. Sep 29, 2018
  2. Sep 26, 2018
  3. Sep 21, 2018
  4. Sep 20, 2018
    • Andrea Gussoni's avatar
      Register and add among JT reasons `FunctionSymbol` · 500d77f4
      Andrea Gussoni authored
      The symbol handling has been extended to register whether a symbol
      represents a function or not. This information is then used to register,
      during the global data harvesting phase, all the function symbols and
      explicitly mark them through the "FunctionSymbol" `JTReason`.
      
      We use this information during the CFEP harvesting phase to integrate
      the information produced by the function boundaries detection with
      potential unidentified CFEPs.
      
      This option can be enabled with the `--use-debug-symbols`, which
      supersedes `--use-sections`.
      500d77f4
    • Pietro Fezzardi's avatar
      Add support for pyelftools >= 0.25 · 6e642ea6
      Pietro Fezzardi authored
      From version 0.25 pyelftools changed the API for ENUM_P_TYPE.
      This commit wraps the import in a try-except block to handle older and
      newer versions gracefully.
      6e642ea6
  5. Sep 19, 2018
  6. Sep 18, 2018
  7. Sep 17, 2018
    • Alessandro Di Federico's avatar
      `FilePortion`: force members initialization · 4557c914
      Alessandro Di Federico authored
      This commit fixes a bug triggered by the fact that the constructor of
      the `FilePortion` class was not initializing fields featuring a "native"
      type (which are therefore not automatically zero-initialized).
      
      In particular, this bug was triggered when dealing with a dynamic binary
      lacking the sections for dynamic relocations.
      4557c914
    • Alessandro Di Federico's avatar
      e82635ee
    • Alessandro Di Federico's avatar
      Introduce `StreamWrapper` · 8eb532d7
      Alessandro Di Federico authored
      `StreamWrapper` is a class that wraps a stream of any type. It has a
      `flush` method, that, when called with a `std::stringstream` copies all
      of its content in the wrapped stream.
      
      The main reason for having `StreamWrapper` is being able to have a
      `dumpInternal` method in a `.cpp` file while preserving a
      stream-agnostic `dump` method in the header.
      8eb532d7
    • Alessandro Di Federico's avatar
      Twine: use them only as `const Twine &` arguments · e6bc62f7
      Alessandro Di Federico authored
      `Twine`s are very cool but very subtle objects. You basically have to
      use them as `const Twine &` arguments only. In fact, a Twine keeps a
      reference to objects whose lifetime corresponds to the current
      statament. Therefore, a `Twine` can easily end up holding a reference to
      invalid objects.
      
      This commit fixes a bug in function isolation (which would show up only
      if optimizations are enabled) due to a misusage of
      `Twine`. Additionally, it reduces its usage to safe places in
      `statistics.h`. Finally, we added an assertion in `check-conventions.sh`
      to ensure that no variables of type `Twine` are ever declared.
      e6bc62f7
    • Alessandro Di Federico's avatar
      revamb-dump: `-T` option for dumping statistics · 25278f2e
      Alessandro Di Federico authored
      revamb-dump was missing the `-T` option.
      25278f2e
    • Alessandro Di Federico's avatar
      Drop assertion on `QueueImpl` · 770d61b0
      Alessandro Di Federico authored
      770d61b0
Loading