Skip to content

ProcessModule.BaseAddress is sometimes incorrect on Linux #45482

@tmds

Description

@tmds

For example, libcoreclr.so base address is reported 7ffff7371000 instead of 7ffff72ff000 for the following maps file:

7ffff72ff000-7ffff7371000 r--p 00000000 fd:00 18097725                   /usr/lib64/dotnet/shared/Microsoft.NETCore.App/5.0.0/libcoreclr.so
7ffff7371000-7ffff7657000 r-xp 00072000 fd:00 18097725                   /usr/lib64/dotnet/shared/Microsoft.NETCore.App/5.0.0/libcoreclr.so
7ffff7657000-7ffff7659000 rwxp 00358000 fd:00 18097725                   /usr/lib64/dotnet/shared/Microsoft.NETCore.App/5.0.0/libcoreclr.so
7ffff7659000-7ffff780b000 r-xp 0035a000 fd:00 18097725                   /usr/lib64/dotnet/shared/Microsoft.NETCore.App/5.0.0/libcoreclr.so
7ffff780b000-7ffff7812000 r--p 0050c000 fd:00 18097725                   /usr/lib64/dotnet/shared/Microsoft.NETCore.App/5.0.0/libcoreclr.so
7ffff7812000-7ffff7813000 r--p 00513000 fd:00 18097725                   /usr/lib64/dotnet/shared/Microsoft.NETCore.App/5.0.0/libcoreclr.so
7ffff7813000-7ffff7958000 r--p 00514000 fd:00 18097725                   /usr/lib64/dotnet/shared/Microsoft.NETCore.App/5.0.0/libcoreclr.so
7ffff7958000-7ffff797c000 r--p 00658000 fd:00 18097725                   /usr/lib64/dotnet/shared/Microsoft.NETCore.App/5.0.0/libcoreclr.so
7ffff797c000-7ffff7994000 rw-p 0067c000 fd:00 18097725                   /usr/lib64/dotnet/shared/Microsoft.NETCore.App/5.0.0/libcoreclr.so

This happens because we skip entries with don't have rx set, before merging entries for the same file.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions