magras

Results 24 comments of magras

I'd like to add a couple tasks to the todo list: * Rewrite stabilizer for the new llvm pass manager because legacy pass manager is deprecated. * Porting to llvm...

I think you are looking for [`onTimer()`](https://github.com/Dead2/stabilizer/blob/6c081b19c41390272e6a0bfd54c909e8ee3e8a66/runtime/libstabilizer.cpp#L183). It's called every 250 ms to rerandomize stack and functions layout. But there are problems with stabilizer that I don't know how to...

There are two big problems known to me: 1. The `landingpad` instruction requires a constant argument. Load from a relocation table isn't a constant expression. I think this issue can...

Also small note for the future: to enable exception handling remove `lowerinvoke` pass.

I can not reproduce the crash. I tried to use zlib-ng's test suite, but it runs for a while without trouble. ``` cmake -B build -DCMAKE_C_COMPILER=~/src/stabilizer/szcc -DCMAKE_CXX_COMPILER=~/src/stabilizer/szcc++ -DCMAKE_C_FLAGS="-g" -DCMAKE_CXX_FLAGS="-g" --fresh...

> `gdb ./example` I strongly recommend to test programs compiled with `SZ_CODE=1` without a debugger, because it might interfere with stabilizer runtime. Stabilizer runtime writes `int3` (which raises SIGTRAP) and...

I use coredumps and printfs. They are slower, but at work I rarely had a luxury of interactive debugging. With stabilizer I find it very useful to log relocation addresses,...

I don't see any crashes with `Z_TLS` disabled: ``` root@8dec1434f819:/usr/local/src/zlib-ng# cmake -B build -DCMAKE_VERBOSE_MAKEFILE=ON -DWITH_BENCHMARKS=OFF -DWITH_GTEST=OFF -DWITH_OPTIM=OFF -DWITH_NEW_STRATEGIES=OFF -DCMAKE_C_COMPILER=szcc -DCMAKE_C_FLAGS="-Wall -Wpedantic -g3 -ggdb -O0 -DZ_TLS=" . --fresh ... root@8dec1434f819:/usr/local/src/zlib-ng# cmake...

If you use containers, I have a couple for testing stabilizer. This one is for stabilizer and has customizable llvm version (unfortunately llvm provides packages for debian:unstable starting from version...

Storing a vector constant creates a global constant at the backend: ``` $ cat foo.ll define void @foo(* %0) { store , * %0, align 4 ret void } $...