NAME
Linux::Proc::Maps - Read and write /proc/[pid]/maps files
VERSION
version 0.001
SYNOPSIS
use Linux::Proc::Maps qw(read_maps);
# by pid:
my $vm_regions = read_maps(pid => $$);
# by pid with explicit procfs mount:
my $vm_regions = read_maps(mnt => '/proc', pid => 123);
# by file:
my $vm_regions = read_maps(file => '/proc/456/maps');
DESCRIPTION
This module reads and writes /proc/[pid]/maps files that contain listed
mapped memory regions.
METHODS
read_maps
Read and parse a maps file, returning an arrayref of regions (each
represented as a hashref). See "parse_maps_single_line" to see the
format of the hashrefs.
my $regions = read_maps(%args);
Arguments:
* file - Path to maps file
* pid - Process ID (one of file or pid is required)
* mnt - Absolute path where proc(5) is mounted (optional, default:
/proc)
write_maps
Returns a string with the contents of a maps file from the memory
regions passed.
my $file_content = write_maps(\@regions, %args);
This is the opposite of "read_maps".
Arguments:
* fh - Write maps to this open file handle (optional)
* file - Open this filepath and write maps to that file (optional)
parse_maps_single_line
Parse and return a single line from a maps file into a region
represented as a hashref.
my $region = parse_maps_single_line($line);
For example,
# address perms offset dev inode pathname
08048000-08056000 r-xp 00000000 03:0c 64593 /usr/sbin/gpm
becomes:
{
address_start => 134512640,
address_end => 134569984,
read => 1,
write => '',
execute => 1,
shared => '',
offset => 0,
device => '03:0c'
inode => '64593',
pathname => '/usr/sbin/gpm',
}
format_maps_single_line
Return a single line for a maps file from a region represented as a
hashref.
my $line = format_maps_single_line(\%region);
This is the opposite of "parse_maps_single_line".
SEE ALSO
proc(5) describes the file format.
BUGS
Please report any bugs or feature requests on the bugtracker website
https://github.com/chazmcgarvey/Linux-Proc-Maps/issues
When submitting a bug or request, please include a test-file or a patch
to an existing test-file that illustrates the bug or desired feature.
AUTHOR
Charles McGarvey <
[email protected]>
COPYRIGHT AND LICENSE
This software is copyright (c) 2016 by Charles McGarvey.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.