README.md

procmaps

Lifecycle: experimental R build status Codecov test coverage CRAN status

The goal of procmaps is to help determine which library or other region is mapped to a specific address of a process. It is the equivalent of /proc/self/maps as a data frame, and is designed to work on all major platforms.

Installation

You can install the released version of procmaps from CRAN with:

install.packages("procmaps")

Example

This is what /proc/self/maps looks like (on Linux) when this document is rendered:

cat /proc/self/maps
#> 56390592e000-563905936000 r-xp 00000000 fd:01 2883652                    /bin/cat
#> 563905b35000-563905b36000 r--p 00007000 fd:01 2883652                    /bin/cat
#> 563905b36000-563905b37000 rw-p 00008000 fd:01 2883652                    /bin/cat
#> 563906bb9000-563906bda000 rw-p 00000000 00:00 0                          [heap]
#> 7fb42c468000-7fb42c8c7000 r--p 00000000 fd:01 29370411                   /usr/lib/locale/locale-archive
#> 7fb42c8c7000-7fb42caae000 r-xp 00000000 fd:01 15731435                   /lib/x86_64-linux-gnu/libc-2.27.so
#> 7fb42caae000-7fb42ccae000 ---p 001e7000 fd:01 15731435                   /lib/x86_64-linux-gnu/libc-2.27.so
#> 7fb42ccae000-7fb42ccb2000 r--p 001e7000 fd:01 15731435                   /lib/x86_64-linux-gnu/libc-2.27.so
#> 7fb42ccb2000-7fb42ccb4000 rw-p 001eb000 fd:01 15731435                   /lib/x86_64-linux-gnu/libc-2.27.so
#> 7fb42ccb4000-7fb42ccb8000 rw-p 00000000 00:00 0 
#> 7fb42ccb8000-7fb42ccdf000 r-xp 00000000 fd:01 15731135                   /lib/x86_64-linux-gnu/ld-2.27.so
#> 7fb42ceb2000-7fb42ceb4000 rw-p 00000000 00:00 0 
#> 7fb42cebd000-7fb42cedf000 rw-p 00000000 00:00 0 
#> 7fb42cedf000-7fb42cee0000 r--p 00027000 fd:01 15731135                   /lib/x86_64-linux-gnu/ld-2.27.so
#> 7fb42cee0000-7fb42cee1000 rw-p 00028000 fd:01 15731135                   /lib/x86_64-linux-gnu/ld-2.27.so
#> 7fb42cee1000-7fb42cee2000 rw-p 00000000 00:00 0 
#> 7ffed6a9a000-7ffed6abc000 rw-p 00000000 00:00 0                          [stack]
#> 7ffed6b08000-7ffed6b0b000 r--p 00000000 00:00 0                          [vvar]
#> 7ffed6b0b000-7ffed6b0d000 r-xp 00000000 00:00 0                          [vdso]
#> ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]

Other operating systems make this information available in other form. This package provides the equivalent as a data frame, regardless of operating system:

library(procmaps)
procmap_get()
#> Converting to tibble, mute this message with `as_tibble = TRUE`.
#> # A tibble: 378 x 6
#>    from         to          perms offset  inode  pathname                       
#>    <chr>        <chr>       <chr> <chr>   <chr>  <chr>                          
#>  1 000055cc2db… 000055cc2d… r-xp  000000… 29393… /usr/lib/R/bin/exec/R          
#>  2 000055cc2dd… 000055cc2d… r--p  000000… 29393… /usr/lib/R/bin/exec/R          
#>  3 000055cc2dd… 000055cc2d… rw-p  000010… 29393… /usr/lib/R/bin/exec/R          
#>  4 000055cc2e4… 000055cc33… rw-p  000000… 0      [heap]                         
#>  5 00007f9bac9… 00007f9bac… r-xp  000000… 28991… /home/kirill/git/R/r-prof/proc…
#>  6 00007f9bac9… 00007f9bac… ---p  000040… 28991… /home/kirill/git/R/r-prof/proc…
#>  7 00007f9bacb… 00007f9bac… r--p  000030… 28991… /home/kirill/git/R/r-prof/proc…
#>  8 00007f9bacb… 00007f9bac… rw-p  000040… 28991… /home/kirill/git/R/r-prof/proc…
#>  9 00007f9bacb… 00007f9bac… r-xp  000000… 28722… /home/kirill/R-dev/glue/libs/g…
#> 10 00007f9bacb… 00007f9bac… ---p  000020… 28722… /home/kirill/R-dev/glue/libs/g…
#> # … with 368 more rows

Code of Conduct

Please note that the procmaps project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.



Try the procmaps package in your browser

Any scripts or data that you put into this service are public.

procmaps documentation built on Jan. 22, 2023, 1:21 a.m.