C++ implementation of the Google logging module
Go to file
Peter Collingbourne a93a4511ec symbolize: Calculate a module's zero VA using program headers.
Previously we were using a module's "start address", i.e. the
address at which the module's executable region was mapped, as the
zero virtual address, i.e. the address from which the DSO's virtual
addresses are calculated. This works fine for DSOs created by the
bfd and gold linkers, which will emit a PT_LOAD directive into the
program header which loads the executable region at virtual address
(p_vaddr) and file offset (p_offset) 0.

However, the lld linker may place a read-only region before the
executable region, meaning that both p_vaddr and p_offset for the
executable region are non-zero. This means that any symbols resolved
by the symbolizer are resolved to an incorrect virtual address. To
correctly calculate the address corresponding to virtual address zero,
we need to take into account p_vaddr and p_offset.

Specifically, the calculation starts with the "base address", i.e. the
start address minus the file offset. To get from the base address to
virtual address zero, we first add p_offset. This gives us the mapped
address of the start of the segment, or in other words the mapped
address corresponding to the virtual address of the segment. (Note
that this is distinct from the start address, as p_offset is not
guaranteed to be page aligned.) We then subtract p_vaddr, which takes
us to virtual address zero.
2016-06-22 18:41:43 -07:00
cmake added CMake usage instructions 2016-01-08 15:31:10 +01:00
doc Document update: how to modify FLAGS_* in glog 2013-01-25 06:03:56 +00:00
m4 Run autoreconf on ubuntu precise 2013-01-09 13:26:44 +00:00
packages Fix for "make rpm" and "make deb" 2015-03-10 12:44:30 +09:00
src symbolize: Calculate a module's zero VA using program headers. 2016-06-22 18:41:43 -07:00
vsprojects Add static library project and its unittest. 2009-01-23 18:56:19 +00:00
.gitignore Fix for "make rpm" and "make deb" 2015-03-10 12:44:30 +09:00
aclocal.m4 glog: release 0.3.4 2015-03-09 11:45:07 +09:00
AUTHORS Added support for PowerPC. 2016-03-21 11:28:53 +00:00
ChangeLog Release glog 0.3.3 2013-02-01 06:20:46 +00:00
CMakeLists.txt cmake: allow to refer to imported glog target as glog::glog 2016-01-08 14:55:58 +01:00
compile glog 0.1 2008-10-07 05:43:05 +00:00
config.guess Added support for PowerPC. 2016-03-21 11:28:53 +00:00
config.sub Add InstallFailureSignalHandler(). The function installs a signal handler that 2008-10-30 10:33:45 +00:00
configure glog: release 0.3.4 2015-03-09 11:45:07 +09:00
configure.ac glog: release 0.3.4 2015-03-09 11:45:07 +09:00
CONTRIBUTING.md Add the typical Google contributors and authors files. 2015-03-16 10:50:32 +00:00
CONTRIBUTORS Added support for PowerPC. 2016-03-21 11:28:53 +00:00
COPYING A bug fix for Windows: Use GetSystemTimeAsFileTime instead of GetSystemTime. SYSTEMTIME's mSecond is not a unix time but like tm.tm_sec. 2009-04-09 07:49:44 +00:00
depcomp Add InstallFailureSignalHandler(). The function installs a signal handler that 2008-10-30 10:33:45 +00:00
glog-config.cmake.in cmake: allow to refer to imported glog target as glog::glog 2016-01-08 14:55:58 +01:00
google-glog.sln Add static library project and its unittest. 2009-01-23 18:56:19 +00:00
INSTALL Fix regression of r23. 2009-07-08 15:38:35 +00:00
install-sh Add InstallFailureSignalHandler(). The function installs a signal handler that 2008-10-30 10:33:45 +00:00
libglog.pc.in Generation of pkg-config metadata file. 2009-04-10 05:49:58 +00:00
ltmain.sh Run autoreconf on ubuntu precise 2013-01-09 13:26:44 +00:00
Makefile.am glog: release 0.3.4 2015-03-09 11:45:07 +09:00
Makefile.in glog: release 0.3.4 2015-03-09 11:45:07 +09:00
missing Add InstallFailureSignalHandler(). The function installs a signal handler that 2008-10-30 10:33:45 +00:00
mkinstalldirs Add InstallFailureSignalHandler(). The function installs a signal handler that 2008-10-30 10:33:45 +00:00
NEWS glog 0.1 2008-10-07 05:43:05 +00:00
README glog 0.1 2008-10-07 05:43:05 +00:00
README.windows glog: release 0.3.4 2015-03-09 11:45:07 +09:00
test-driver glog: release 0.3.4 2015-03-09 11:45:07 +09:00

This repository contains a C++ implementation of the Google logging
module.  Documentation for the implementation is in doc/.

See INSTALL for (generic) installation instructions for C++: basically
   ./configure && make && make install