Print error, instead of crash, when running non-PIE executable #463
Closed
Description
Trying to run a position-dependent (non-PIE) shared exectuable in OSv, I got a crash with the following backtrace.
I don't expect this to work (see issue #190), but I would prefer to get an error message saying this is not supported, and not a crash.
#7 0x000000000038980a in page_fault (ef=0xffff800002c36088)
at /home/nyh/osv/arch/x64/mmu.cc:38
#8 <signal handler called>
#9 0x00000000004aeba7 in std::string::_Rep::_M_dispose(std::allocator<char> const&) [clone .part.12] ()
#10 0x00000000004005ef in ~basic_string (this=0x2000001ff960, __in_chrg=<optimized out>)
at /home/nyh/osv/external/x64/gcc.bin/usr/include/c++/4.8.2/bits/basic_string.h:539
#11 ~basic_stringbuf (this=0x2000001ff918, __in_chrg=<optimized out>)
at /home/nyh/osv/external/x64/gcc.bin/usr/include/c++/4.8.2/sstream:64
#12 ~basic_ostringstream (this=0x1, __in_chrg=<optimized out>, __vtt_parm=<optimized out>)
at /home/nyh/osv/external/x64/gcc.bin/usr/include/c++/4.8.2/sstream:453
#13 osv::sprintf<char const*, int> (fmt=<optimized out>)
at /home/nyh/osv/include/osv/printf.hh:50
#14 0x0000000000340a49 in elf::program::get_library (this=0xffff9000015e8000,
name="a.out", extra_path=std::vector of length 0, capacity 0)
at /home/nyh/osv/core/elf.cc:1057
#15 0x00000000003fc02b in osv::application::application (
this=0xffffa000013c3118, command="a.out", args=...)
at /home/nyh/osv/core/app.cc:83
...
Metadata
Assignees
Labels
No labels