Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version check makes potentially invalid assumptions about ELF layout #174

Open
1 task done
jhance opened this issue May 13, 2024 · 47 comments
Open
1 task done

Version check makes potentially invalid assumptions about ELF layout #174

jhance opened this issue May 13, 2024 · 47 comments
Assignees
Labels
bug Something isn't working

Comments

@jhance
Copy link

jhance commented May 13, 2024

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

I have been trying to debug why pystack thinks I am using python version 12.41 and it turns out that my python binary has a different layout. This problem seems to only occur (or at least I've only noticed thus far) when it attempts to find hte value of Py_Version. The version of python supplied by ubuntu has elf section for rodata that looks like this (obtained with readelf -S).

  [18] .rodata           PROGBITS         0000000000312000  00312000
       000000000008806d  0000000000000000   A       0     0     32

Mine looks like this:

  [16] .rodata           PROGBITS         00000000008741c0  004741c0
       000000000035f330  0000000000000000   A       0     0     64

Expected Behavior

The proper way to look up the address would be something like

<addr of Py_Version> - 0x00000000008741c0 + 004741c0

Since these values are the same in most python binaries, the issue would go unnoticed. I am not sure if this is some guarantee that the normal python build process makes or not, so this could also bite regular python versions later.

I was able to validate that the calculation above would work for my binary, where 0x0000000000ba2c68 is the address that pystack is attempting to look up.

 dd if=(path to python) bs=1 skip=$((0x0000000000ba2c68-0x00000000008741c0+0x004741c0)) count=8| hexdump16+0 records in
16+0 records out
16 bytes copied, 8.1777e-05 s, 196 kB/s
0000000 04f0 030b 0000 0000

Steps To Reproduce

I am not sure how you would easily reproduce this issue as you'd need to produce a python binary that has the rodata addresses like the one in my example. If you are able to do that the issue reproduces very easily and all functionality of pystack will fail.

Pystack Version

1.3.0

Python Version

3.11

Linux distribution

Ubuntu

Anything else?

No response

@jhance jhance added the bug Something isn't working label May 13, 2024
@pablogsal
Copy link
Member

Hi @jhance and thanks for opening the issue. We will take a look soon. Meanwhile, could you tell us what version of Ubuntu are you using and how are you obtaining Python (deadsnakes, main repo, pyenv...).

Also is this when analysing a live process or a core file?

@pablogsal
Copy link
Member

Also, just to ensure we use what you already debugged: what's making your rodata section different than a regular binary? (It's not immediate clear from your comment)

@jhance
Copy link
Author

jhance commented May 13, 2024

I am compiling Python from source myself with a crosstool targetting towards a non-distribution provided version of glibc. As such, I don't expect many people to be following the same process. I am not sure what what is resulting in this difference though, maybe because I use gold instead of ld?

I was analyzing a core file while pointing to the same python binary that the core file was extracted from.

I just recently found a workaround is to essentially disable the Py_Version check and rely on the RSS check which seems to work and correctly detect 3.11.

@pablogsal
Copy link
Member

pablogsal commented May 13, 2024

My suspicion here is that what's going on is that you have a first PT_LOAD segment that doesn't map to the start of the file.

When the linker loads the file in memory, the sections (such as .rodata) don't matter anymore and the only thing the linker sees its LOAD segments. For this reason, we just need to find where the first LOAD segment (the mount point) it's in the file and correct by that (which we aren't doing at the time).

To corroborate this, do you mind sending the output of readelf -a over the binary?

@jhance
Copy link
Author

jhance commented May 13, 2024

https://pastebin.com/4h7wPER6

(I cut out some sections that contain literally all of the Python symbols).

We pass -Wl,-I to the linker to set a custom ld.so as the interpreter, maybe that is the cause for having an offset before the first LOAD segment?

@pablogsal
Copy link
Member

Ah there you go:

  LOAD           0x0000000000000000 0x0000000000400000 0x0000000000400000
                 0x00000000008a8860 0x00000000008a8860  R E    

I will try to make a patch this week

@pablogsal
Copy link
Member

We pass -Wl,-I to the linker to set a custom ld.so as the interpreter, maybe that is the cause for having an offset before the first LOAD segment?

Yeah that's also my guess but I have seen this on the wild as well so I don't think it's unique of this situation

@jhance
Copy link
Author

jhance commented May 13, 2024

Thanks for the quick help, I am hardly an ELF expert so ended up reading a lot of docs today to figure out why this was not working...

@pablogsal
Copy link
Member

After playing with this for a while, I still cannot reproduce in a variety of situations so making a patch it's going to be very difficult. I still think we are handling the code correctly:

The calculation works if you do:

<addr of Py_Version> - 0x00000000008741c0 + 004741c0 

(which is wrong, it only works for offset 0). But that works for the case in this issue so the resulting offsets is correct. The offset was calculated later:

(0x0000000000ba2c68-0x00000000008741c0+0x004741c0)=0x7a2c68

But according to

 LOAD           0x0000000000000000 0x0000000000400000 0x0000000000400000
                 0x00000000008a8860 0x00000000008a8860  R E    0x1000

If you just do what’s in main now:

0x0000000000ba2c68 - 0x0000000000400000 = 0x7a2c68

Which should be correct. That’s also the first map I get:

DEBUG    /src/src/pystack/_pystack.cpython-311-aarch64-linux-gnu.so:test_local_variables.py:18 VirtualMap(start=0x0000000000400000, end=0x0000000000915000, filesize=0x515000, offset=0x0, device='fe:01', flags='r-xp', inode=180507, path='/usr/bin/python3.11')

So I don’t understand the problem as it's described above. I will close this issue until we have a better reproducer that we can investigate.

@pablogsal pablogsal closed this as not planned Won't fix, can't repro, duplicate, stale Aug 13, 2024
@jhance
Copy link
Author

jhance commented Jan 8, 2025

I am sad to see this was closed as I didn't realize you were in need of more information. Would you be willing to investigate if I sent you the python binary itself? I think that should be legal per Pythons license without you being able to construct the binary, and I don't think you should need to actually run the Python binary in order to figure out is wrong.

Alternatively, having a loophole to just pass the python version?

@pablogsal
Copy link
Member

pablogsal commented Jan 9, 2025

We would need the Python binary and all transitive dependencies (shared objects) in a container or environment where we can execute it.

Alternatively you would need to tell us how to build the Python binary that you are experiencing the problem with.

Ideally you can provide us with a docker container or some similar thing that we can inspect.

Unfortunately is impossible for us to debug something as tricky as this without access to a reproducer that is reliable.

@jhance
Copy link
Author

jhance commented Jan 12, 2025

I think it should be possible if I give you the python binary and you could run it against system libc. Its statically linked to everything sans libc, and running it against your libc is a little sketchy but should be mostly fine if we use a jammy container. I will still need to get approval from someone to send you the binary, though.

Otherwise you would need to run https://github.com/dropbox/dbx_build_tools/blob/master/build_tools/drte/tools/drte-build.sh yourself because I don't think its going to be possible for me to send you the libc artifact, which is way too much of a pain to ask.

I guess I will poke around some more later and see if I can find something different on my end than what you said is happening.

@pablogsal
Copy link
Member

Ok, meanwhile could you do the following:

  • Start the Python binary under gdb and get the address of Py_Version
  • run info proc mappings
  • run maintenance info sections with gdb
  • Print again the output of readelf -a over the binary
  • Print the values of /proc/PID/maps of the process (before you detach gdb from it or finish it)

Hopefully I can spot what the hell is going on from how the linker is loading the segments in memory.

@pablogsal pablogsal reopened this Jan 21, 2025
@pablogsal
Copy link
Member

Reopening as I have convinced myself we are doing it wrong

@pablogsal
Copy link
Member

@jhance Can you confirm if #220 fixes the problem for you?

@pablogsal
Copy link
Member

@jhance gentle ping

@jhance
Copy link
Author

jhance commented Jan 24, 2025

Sorry, will check

@jhance
Copy link
Author

jhance commented Jan 24, 2025

It is still giving me an invalid error. I am trying to run the suggested gdb output stuff now. I attempted via cloning that branch, doing pip install . into a virtualenv.

@jhance
Copy link
Author

jhance commented Jan 24, 2025

Reading symbols from /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/external/drtev5_python_311/bin/python...
(gdb) print &Py_Version
$1 = (const unsigned long *) 0xbb8ea8 <Py_Version>

(gdb) info proc mappings
process 2503789
Mapped address spaces:

          Start Addr           End Addr       Size     Offset  Perms  objfile
            0x400000           0xcc2000   0x8c2000        0x0  r-xp   /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/external/drtev5_python_311/bin/python
            0xcc3000           0xcc4000     0x1000   0x8c2000  r--p   /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/external/drtev5_python_311/bin/python
            0xcc4000           0xe23000   0x15f000   0x8c3000  rw-p   /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/external/drtev5_python_311/bin/python
            0xe23000           0xe6e000    0x4b000        0x0  rw-p   
            0xe6e000           0xe8f000    0x21000        0x0  rw-p   [heap]
      0x7ffff7800000     0x7ffff7828000    0x28000        0x0  r--p   /usr/drte/v5/lib64/libc.so.6
      0x7ffff7828000     0x7ffff79a9000   0x181000    0x28000  r-xp   /usr/drte/v5/lib64/libc.so.6
      0x7ffff79a9000     0x7ffff7a01000    0x58000   0x1a9000  r--p   /usr/drte/v5/lib64/libc.so.6
      0x7ffff7a01000     0x7ffff7a02000     0x1000   0x201000  ---p   /usr/drte/v5/lib64/libc.so.6
      0x7ffff7a02000     0x7ffff7a06000     0x4000   0x201000  r--p   /usr/drte/v5/lib64/libc.so.6
      0x7ffff7a06000     0x7ffff7a08000     0x2000   0x205000  rw-p   /usr/drte/v5/lib64/libc.so.6
      0x7ffff7a08000     0x7ffff7a10000     0x8000        0x0  rw-p   
      0x7ffff7c00000     0x7ffff7ca1000    0xa1000        0x0  r--p   /usr/drte/v5/lib64/libstdc++.so.6
      0x7ffff7ca1000     0x7ffff7d96000    0xf5000    0xa1000  r-xp   /usr/drte/v5/lib64/libstdc++.so.6
      0x7ffff7d96000     0x7ffff7e02000    0x6c000   0x196000  r--p   /usr/drte/v5/lib64/libstdc++.so.6
      0x7ffff7e02000     0x7ffff7e03000     0x1000   0x202000  ---p   /usr/drte/v5/lib64/libstdc++.so.6
      0x7ffff7e03000     0x7ffff7e0e000     0xb000   0x202000  r--p   /usr/drte/v5/lib64/libstdc++.so.6
      0x7ffff7e0e000     0x7ffff7e11000     0x3000   0x20d000  rw-p   /usr/drte/v5/lib64/libstdc++.so.6
      0x7ffff7e11000     0x7ffff7e14000     0x3000        0x0  rw-p   
      0x7ffff7e7f000     0x7ffff7e84000     0x5000        0x0  rw-p   
      0x7ffff7e84000     0x7ffff7e87000     0x3000        0x0  r--p   /usr/drte/v5/lib64/libgcc_s.so.1
      0x7ffff7e87000     0x7ffff7e99000    0x12000     0x3000  r-xp   /usr/drte/v5/lib64/libgcc_s.so.1
      0x7ffff7e99000     0x7ffff7e9c000     0x3000    0x15000  r--p   /usr/drte/v5/lib64/libgcc_s.so.1
      0x7ffff7e9c000     0x7ffff7e9d000     0x1000    0x17000  r--p   /usr/drte/v5/lib64/libgcc_s.so.1
      0x7ffff7e9d000     0x7ffff7e9e000     0x1000    0x18000  rw-p   /usr/drte/v5/lib64/libgcc_s.so.1
      0x7ffff7e9e000     0x7ffff7eac000     0xe000        0x0  r--p   /usr/drte/v5/lib64/libm.so.6
      0x7ffff7eac000     0x7ffff7f25000    0x79000     0xe000  r-xp   /usr/drte/v5/lib64/libm.so.6
      0x7ffff7f25000     0x7ffff7f80000    0x5b000    0x87000  r--p   /usr/drte/v5/lib64/libm.so.6
      0x7ffff7f80000     0x7ffff7f81000     0x1000    0xe2000  ---p   /usr/drte/v5/lib64/libm.so.6
      0x7ffff7f81000     0x7ffff7f82000     0x1000    0xe2000  r--p   /usr/drte/v5/lib64/libm.so.6
      0x7ffff7f82000     0x7ffff7f83000     0x1000    0xe3000  rw-p   /usr/drte/v5/lib64/libm.so.6
      0x7ffff7f83000     0x7ffff7f84000     0x1000        0x0  r--p   /usr/drte/v5/lib64/libcrypt.so.1
      0x7ffff7f84000     0x7ffff7f8a000     0x6000     0x1000  r-xp   /usr/drte/v5/lib64/libcrypt.so.1
      0x7ffff7f8a000     0x7ffff7f8c000     0x2000     0x7000  r--p   /usr/drte/v5/lib64/libcrypt.so.1
      0x7ffff7f8c000     0x7ffff7f8d000     0x1000     0x9000  ---p   /usr/drte/v5/lib64/libcrypt.so.1
      0x7ffff7f8d000     0x7ffff7f8e000     0x1000     0x9000  r--p   /usr/drte/v5/lib64/libcrypt.so.1
      0x7ffff7f8e000     0x7ffff7f8f000     0x1000     0xa000  rw-p   /usr/drte/v5/lib64/libcrypt.so.1
      0x7ffff7f8f000     0x7ffff7fbf000    0x30000        0x0  rw-p   
      0x7ffff7fbf000     0x7ffff7fc3000     0x4000        0x0  r--p   [vvar]
      0x7ffff7fc3000     0x7ffff7fc5000     0x2000        0x0  r-xp   [vdso]
      0x7ffff7fc5000     0x7ffff7fc7000     0x2000        0x0  r--p   /usr/drte/v5/lib64/ld-linux-x86-64.so.2
      0x7ffff7fc7000     0x7ffff7fef000    0x28000     0x2000  r-xp   /usr/drte/v5/lib64/ld-linux-x86-64.so.2
      0x7ffff7fef000     0x7ffff7ffa000     0xb000    0x2a000  r--p   /usr/drte/v5/lib64/ld-linux-x86-64.so.2
      0x7ffff7ffb000     0x7ffff7ffd000     0x2000    0x35000  r--p   /usr/drte/v5/lib64/ld-linux-x86-64.so.2
--Type <RET> for more, q to quit, c to continue without paging--
      0x7ffff7ffd000     0x7ffff7fff000     0x2000    0x37000  rw-p   /usr/drte/v5/lib64/ld-linux-x86-64.so.2
      0x7ffffffde000     0x7ffffffff000    0x21000        0x0  rw-p   [stack]
  0xffffffffff600000 0xffffffffff601000     0x1000        0x0  --xp   [vsyscall]

Exec file: 
        `/home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/external/drtev5_python_311/bin/python', file type elf64-x86-64.
 [0]      0x00400270->0x00400298 at 0x00000270: .interp ALLOC LOAD READONLY DATA HAS_CONTENTS
 [1]      0x00400298->0x004002c8 at 0x00000298: .note.gnu.property ALLOC LOAD READONLY DATA HAS_CONTENTS
 [2]      0x004002c8->0x004002e8 at 0x000002c8: .note.ABI-tag ALLOC LOAD READONLY DATA HAS_CONTENTS
 [3]      0x004002e8->0x0040030c at 0x000002e8: .note.gnu.build-id ALLOC LOAD READONLY DATA HAS_CONTENTS
 [4]      0x00400310->0x00411aa0 at 0x00000310: .dynsym ALLOC LOAD READONLY DATA HAS_CONTENTS
 [5]      0x00411aa0->0x0041fa3f at 0x00011aa0: .dynstr ALLOC LOAD READONLY DATA HAS_CONTENTS
 [6]      0x0041fa40->0x00424954 at 0x0001fa40: .gnu.hash ALLOC LOAD READONLY DATA HAS_CONTENTS
 [7]      0x00424954->0x004260a0 at 0x00024954: .gnu.version ALLOC LOAD READONLY DATA HAS_CONTENTS
 [8]      0x004260a0->0x00426290 at 0x000260a0: .gnu.version_r ALLOC LOAD READONLY DATA HAS_CONTENTS
 [9]      0x00426290->0x00426320 at 0x00026290: .rela.dyn ALLOC LOAD READONLY DATA HAS_CONTENTS
 [10]     0x00426320->0x00429518 at 0x00026320: .rela.plt ALLOC LOAD READONLY DATA HAS_CONTENTS
 [11]     0x00429518->0x00429534 at 0x00029518: .init ALLOC LOAD READONLY CODE HAS_CONTENTS
 [12]     0x00429540->0x0042b6a0 at 0x00029540: .plt ALLOC LOAD READONLY CODE HAS_CONTENTS
 [13]     0x0042c000->0x0088819c at 0x0002c000: .text ALLOC LOAD READONLY CODE HAS_CONTENTS
 [14]     0x0088819c->0x008881a5 at 0x0048819c: .fini ALLOC LOAD READONLY CODE HAS_CONTENTS
 [15]     0x008881c0->0x00be9620 at 0x004881c0: .rodata ALLOC LOAD READONLY DATA HAS_CONTENTS
 [16]     0x00be9620->0x00ca0e64 at 0x007e9620: .eh_frame ALLOC LOAD READONLY DATA HAS_CONTENTS
 [17]     0x00ca0e64->0x00cc1f48 at 0x008a0e64: .eh_frame_hdr ALLOC LOAD READONLY DATA HAS_CONTENTS
 [18]     0x00cc3db8->0x00cc3dc0 at 0x008c2db8: .fini_array ALLOC LOAD DATA HAS_CONTENTS
 [19]     0x00cc3dc0->0x00cc3dc8 at 0x008c2dc0: .init_array ALLOC LOAD DATA HAS_CONTENTS
 [20]     0x00cc3dc8->0x00cc3fd8 at 0x008c2dc8: .dynamic ALLOC LOAD DATA HAS_CONTENTS
 [21]     0x00cc3fd8->0x00cc3fe8 at 0x008c2fd8: .got ALLOC LOAD DATA HAS_CONTENTS
 [22]     0x00cc3fe8->0x00cc50a8 at 0x008c2fe8: .got.plt ALLOC LOAD DATA HAS_CONTENTS
 [23]     0x00cc50c0->0x00df9d80 at 0x008c40c0: .data ALLOC LOAD DATA HAS_CONTENTS
 [24]     0x00df9d80->0x00df9d80 at 0x009f8d80: .tm_clone_table ALLOC LOAD DATA HAS_CONTENTS
 [25]     0x00df9d80->0x00e228a0 at 0x009f8d80: .PyRuntime ALLOC LOAD DATA HAS_CONTENTS
 [26]     0x00e228a0->0x00e6ddc8 at 0x00a218a0: .bss ALLOC
 [27]     0x00000000->0x00000029 at 0x00a218a0: .comment READONLY HAS_CONTENTS
 [28]     0x00000000->0x00004950 at 0x00a218d0: .debug_aranges READONLY HAS_CONTENTS
 [29]     0x00000000->0x010982c0 at 0x00a26220: .debug_info READONLY HAS_CONTENTS
 [30]     0x00000000->0x000a79c1 at 0x01abe4e0: .debug_abbrev READONLY HAS_CONTENTS
 [31]     0x00000000->0x002d89cf at 0x01b65ea1: .debug_line READONLY HAS_CONTENTS
 [32]     0x00000000->0x0019df89 at 0x01e3e870: .debug_str READONLY HAS_CONTENTS
 [33]     0x00000000->0x00015a62 at 0x01fdc7f9: .debug_line_str READONLY HAS_CONTENTS
 [34]     0x00000000->0x00099f0d at 0x01ff225b: .debug_rnglists READONLY HAS_CONTENTS
 [35]     0x00000000->0x000000f0 at 0x0208c168: .debug_frame READONLY HAS_CONTENTS
 [36]     0x00000000->0x0060a2f3 at 0x0208c258: .debug_loclists READONLY HAS_CONTENTS
 [37]     0x00000000->0x0000001c at 0x0269654c: .note.gnu.gold-version READONLY HAS_CONTENTS

00400000-00cc2000 r-xp 00000000 fc:01 19924555                           /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/external/drtev5_python_311/bin/python
00cc3000-00cc4000 r--p 008c2000 fc:01 19924555                           /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/external/drtev5_python_311/bin/python
00cc4000-00e23000 rw-p 008c3000 fc:01 19924555                           /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/external/drtev5_python_311/bin/python
00e23000-00e6e000 rw-p 00000000 00:00 0 
00e6e000-00e8f000 rw-p 00000000 00:00 0                                  [heap]
7ffff7800000-7ffff7828000 r--p 00000000 fc:01 23465664                   /usr/drte/v5/lib64/libc.so.6
7ffff7828000-7ffff79a9000 r-xp 00028000 fc:01 23465664                   /usr/drte/v5/lib64/libc.so.6
7ffff79a9000-7ffff7a01000 r--p 001a9000 fc:01 23465664                   /usr/drte/v5/lib64/libc.so.6
7ffff7a01000-7ffff7a02000 ---p 00201000 fc:01 23465664                   /usr/drte/v5/lib64/libc.so.6
7ffff7a02000-7ffff7a06000 r--p 00201000 fc:01 23465664                   /usr/drte/v5/lib64/libc.so.6
7ffff7a06000-7ffff7a08000 rw-p 00205000 fc:01 23465664                   /usr/drte/v5/lib64/libc.so.6
7ffff7a08000-7ffff7a10000 rw-p 00000000 00:00 0 
7ffff7c00000-7ffff7ca1000 r--p 00000000 fc:01 23465633                   /usr/drte/v5/lib64/libstdc++.so.6
7ffff7ca1000-7ffff7d96000 r-xp 000a1000 fc:01 23465633                   /usr/drte/v5/lib64/libstdc++.so.6
7ffff7d96000-7ffff7e02000 r--p 00196000 fc:01 23465633                   /usr/drte/v5/lib64/libstdc++.so.6
7ffff7e02000-7ffff7e03000 ---p 00202000 fc:01 23465633                   /usr/drte/v5/lib64/libstdc++.so.6
7ffff7e03000-7ffff7e0e000 r--p 00202000 fc:01 23465633                   /usr/drte/v5/lib64/libstdc++.so.6
7ffff7e0e000-7ffff7e11000 rw-p 0020d000 fc:01 23465633                   /usr/drte/v5/lib64/libstdc++.so.6
7ffff7e11000-7ffff7e14000 rw-p 00000000 00:00 0 
7ffff7e7f000-7ffff7e84000 rw-p 00000000 00:00 0 
7ffff7e84000-7ffff7e87000 r--p 00000000 fc:01 23465659                   /usr/drte/v5/lib64/libgcc_s.so.1
7ffff7e87000-7ffff7e99000 r-xp 00003000 fc:01 23465659                   /usr/drte/v5/lib64/libgcc_s.so.1
7ffff7e99000-7ffff7e9c000 r--p 00015000 fc:01 23465659                   /usr/drte/v5/lib64/libgcc_s.so.1
7ffff7e9c000-7ffff7e9d000 r--p 00017000 fc:01 23465659                   /usr/drte/v5/lib64/libgcc_s.so.1
7ffff7e9d000-7ffff7e9e000 rw-p 00018000 fc:01 23465659                   /usr/drte/v5/lib64/libgcc_s.so.1
7ffff7e9e000-7ffff7eac000 r--p 00000000 fc:01 23465654                   /usr/drte/v5/lib64/libm.so.6
7ffff7eac000-7ffff7f25000 r-xp 0000e000 fc:01 23465654                   /usr/drte/v5/lib64/libm.so.6
7ffff7f25000-7ffff7f80000 r--p 00087000 fc:01 23465654                   /usr/drte/v5/lib64/libm.so.6
7ffff7f80000-7ffff7f81000 ---p 000e2000 fc:01 23465654                   /usr/drte/v5/lib64/libm.so.6
7ffff7f81000-7ffff7f82000 r--p 000e2000 fc:01 23465654                   /usr/drte/v5/lib64/libm.so.6
7ffff7f82000-7ffff7f83000 rw-p 000e3000 fc:01 23465654                   /usr/drte/v5/lib64/libm.so.6
7ffff7f83000-7ffff7f84000 r--p 00000000 fc:01 23465661                   /usr/drte/v5/lib64/libcrypt.so.1
7ffff7f84000-7ffff7f8a000 r-xp 00001000 fc:01 23465661                   /usr/drte/v5/lib64/libcrypt.so.1
7ffff7f8a000-7ffff7f8c000 r--p 00007000 fc:01 23465661                   /usr/drte/v5/lib64/libcrypt.so.1
7ffff7f8c000-7ffff7f8d000 ---p 00009000 fc:01 23465661                   /usr/drte/v5/lib64/libcrypt.so.1
7ffff7f8d000-7ffff7f8e000 r--p 00009000 fc:01 23465661                   /usr/drte/v5/lib64/libcrypt.so.1
7ffff7f8e000-7ffff7f8f000 rw-p 0000a000 fc:01 23465661                   /usr/drte/v5/lib64/libcrypt.so.1
7ffff7f8f000-7ffff7fbf000 rw-p 00000000 00:00 0 
7ffff7fbf000-7ffff7fc3000 r--p 00000000 00:00 0                          [vvar]
7ffff7fc3000-7ffff7fc5000 r-xp 00000000 00:00 0                          [vdso]
7ffff7fc5000-7ffff7fc7000 r--p 00000000 fc:01 23465669                   /usr/drte/v5/lib64/ld-linux-x86-64.so.2
7ffff7fc7000-7ffff7fef000 r-xp 00002000 fc:01 23465669                   /usr/drte/v5/lib64/ld-linux-x86-64.so.2
7ffff7fef000-7ffff7ffa000 r--p 0002a000 fc:01 23465669                   /usr/drte/v5/lib64/ld-linux-x86-64.so.2
7ffff7ffb000-7ffff7ffd000 r--p 00035000 fc:01 23465669                   /usr/drte/v5/lib64/ld-linux-x86-64.so.2
7ffff7ffd000-7ffff7fff000 rw-p 00037000 fc:01 23465669                   /usr/drte/v5/lib64/ld-linux-x86-64.so.2
7ffffffde000-7ffffffff000 rw-p 00000000 00:00 0                          [stack]
ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0                  [vsyscall]

Readelf: https://gist.github.com/jhance/b6d9db093077cf7fd872f219581cc774

@pablogsal
Copy link
Member

It is still giving me an invalid error. I am trying to run the suggested gdb output stuff now. I attempted via cloning that branch, doing pip install . into a virtualenv.

Wow that's surprising! Could you maybe try to add some print calls or use gdb in the getMemoryLocationFromElf function to know why is failing to locate the version in the segments?

@pablogsal
Copy link
Member

I will review your last comment in an hour to see if I can make sense on what's going on

@pablogsal
Copy link
Member

pablogsal commented Jan 24, 2025

You are going to need to help me here because I think what the PR is doing should be correct. The first PT_LOAD affording to readelf is loaded at
0x0000000000400000:

LOAD 0x0000000000000000 0x0000000000400000 0x0000000000400000
0x00000000008c1f48 0x00000000008c1f48 R E 0x1000

Which is also the load point of the binary according to gdb:

Start Addr End Addr Size Offset Perms objfile
0x400000 0xcc2000 0x8c2000 0x0 r-xp /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/external/drtev5_python_311/bin/python

That gives us a bias of 0 so the address of the symbol relocated to the elf would be:

0xbb8ea8 -(0x400000-0x400000)= 0xbb8ea8

That is the same as the address of the symbol in the readelf output. Then from there the computation is only with data from the file by substracting the virtual addr and adding the offset.

Do you mind trying to step though that function or add some print debugging to know what are we getting wrong?

@jhance
Copy link
Author

jhance commented Jan 24, 2025

Turning on --verbose shows that the address is indeed as you say it is.

INFO(parse_maps_file_for_binary): python binary first map found: VirtualMap(start=0x0000000000400000, end=0x0000000000cc2000, filesize=0x1000, offset=0x8000, device='', flags='rx', inode=0, path='/home/jhance/src/server/bazel-bin/pip/six/six_cpython-311_import_test.runfiles/drtev5_python_311/bin/python')
INFO(parse_maps_file_for_binary): Process does not have a libpython.so, reading from binary
INFO(_get_bss): Determined exact addr of .bss section: 0xe228a0 (0x400000 + 0xa228a0)
INFO(parse_maps_file_for_binary): bss map found: VirtualMap(start=0x0000000000e228a0, end=0x0000000000e6ddc8, filesize=0x4b528, offset=0x1688a0, device='', flags='', inode=0, path='None')
INFO(process_core): Attempting to find symbol '_PyRuntime' in python
INFO(process_core): Symbol '_PyRuntime' found at address 0xdf9d80
INFO(process_core): Attempting to find symbol 'Py_Version' in python
INFO(process_core): Symbol 'Py_Version' found at address 0xbb8ea8

Is there something wrong with my Py_Version symbol?

(gdb) print Py_Version
$2 = 51055088

I realize this error is now being thrown from getCPythonOffsets. I am going to try to add some print there to see what it thinks. This maybe a different failure case than the original issue.

@jhance
Copy link
Author

jhance commented Jan 24, 2025

Its passing major = 0, minor = 0 into getCPythonOffsets

@pablogsal
Copy link
Member

We still need to know if the function is doing what is doing. The fact that the address or the symbol is correct doesn't mean that the contents of the symbol are. The contents are fetched from the elf so that's why I am asking you to add some print debugging or using gdb to follow that we are reading the memory correctly.

The fact that we are passing (0,0) means likely that we are reading it wrong somehow

@jhance
Copy link
Author

jhance commented Jan 24, 2025

Figured out how to get debug logs to fire and added some more prints:

INFO(process_core): Attempting to find symbol 'Py_Version' in python
INFO(process_core): Symbol 'Py_Version' found at address 0xbb8ea8
DEBUG(process_core): Address for symbol Py_Version resolved to: 0xbb8ea8
DEBUG(process_core): called findSymbol Py_Version: 
DEBUG(process_core): copying object Py_Version from process
DEBUG(process_core): Python version copied: 427
DEBUG(process_core): Python version determined from symbols: 0.0
WARNING(process_core): Invalid version: 0.0

I will try to get some more debug logs in the internals of fetching the object from the process

@pablogsal
Copy link
Member

Basically we need to know that this is doing the correct thing:


   // Get the load address of the elf file
    remote_addr_t elf_load_addr = cache_it->second[0].vaddr;

    // Now relocate the address to the elf file
    remote_addr_t symbol_vaddr = addr - (shared_libs_it->start - elf_load_addr);

    // Find the correct segment
    for (const auto& segment : cache_it->second) {
        if (symbol_vaddr >= segment.vaddr && symbol_vaddr < segment.vaddr + segment.size) {
            *offset_in_file = (symbol_vaddr - segment.vaddr) + segment.offset;
            return StatusCode::SUCCESS;
        }
    }

That should put in offset_in_file the same offset you are using in your dd command which should point to the location of the contents of PyVersion within the elf file.

Try your follow all the values to check that we are doing the calculation correctly. If we are maybe the problem is somewhere else but it's important to confirm that that is working correctly in the PR

@pablogsal
Copy link
Member

DEBUG(process_core): Python version copied: 427
DEBUG(process_core): Python version determined from symbols: 0.0

Yeah that points that we are copying the wrong thing so let's try to see what part of the calculation is wrong

We are very close!

@jhance
Copy link
Author

jhance commented Jan 24, 2025

I was able to get a print from getMemoryLocationFromCore trying to read offset 8130216 which failed. None if the debugs from the lines you pointed to are firing, though

@pablogsal
Copy link
Member

pablogsal commented Jan 24, 2025

Can you try to follow why we are not calling into the code I referred? I think that is likely what I am not understanding.

If the function is not being called is because somehow it thinks the memory is in the core.... which should not be because somehow is failing.

Try to give me as much print debugging of what's going on in that function as possible

@jhance
Copy link
Author

jhance commented Jan 24, 2025

Yeah, working on it

The way I am testing it doesn't seem to have very good partial compilation

@jhance
Copy link
Author

jhance commented Jan 24, 2025

getMemoryLocationFromCore is succeeding, I am going to dig into that function

@jhance
Copy link
Author

jhance commented Jan 24, 2025

DEBUG(process_core): Address for symbol Py_Version resolved to: 0xbb8ea8
DEBUG(process_core): calling getMemoryLocationFromCore
DEBUG(process_core): addr = 12291752
DEBUG(process_core): map start = 4194304
DEBUG(process_core): map end = 13377536
DEBUG(process_core): map filesize = 4096
DEBUG(process_core): map offset = 32768
DEBUG(process_core): corefile_it offset = 32768
DEBUG(process_core): corefile_it start = 4194304
DEBUG(process_core): base = 18446744073705390080
DEBUG(process_core): getMemoryLocationFromCore succeeded****

This is the log lines I added

diff --git a/src/pystack/_pystack/mem.cpp b/src/pystack/_pystack/mem.cpp
index 5c0f035..e6727cb 100644
--- a/src/pystack/_pystack/mem.cpp
+++ b/src/pystack/_pystack/mem.cpp
@@ -365,18 +365,22 @@ CorefileRemoteMemoryManager::copyMemoryFromProcess(remote_addr_t addr, size_t si
 {
     off_t offset_in_file = 0;
 
+    LOG(DEBUG) << "calling getMemoryLocationFromCore";
     StatusCode ret = getMemoryLocationFromCore(addr, &offset_in_file);
 
     if (ret == StatusCode::SUCCESS) {
+        LOG(DEBUG) << "getMemoryLocationFromCore succeeded";
         if (size > d_corefile_size || static_cast<size_t>(offset_in_file) > d_corefile_size - size) {
             throw InvalidRemoteAddress();
         }
         memcpy(destination, d_corefile_data.get() + offset_in_file, size);
         return size;
     }
+    LOG(DEBUG) << "getMemoryLocationFromCore failed";
 
     // The memory may be in the data segment of some shared library
     const std::string* filename = nullptr;
+    LOG(DEBUG) << "calling getMemoryLocationFromElf";
     ret = getMemoryLocationFromElf(addr, &filename, &offset_in_file);
 
     if (ret == StatusCode::ERROR) {
@@ -397,7 +401,14 @@ CorefileRemoteMemoryManager::copyMemoryFromProcess(remote_addr_t addr, size_t si
 CorefileRemoteMemoryManager::StatusCode
 CorefileRemoteMemoryManager::getMemoryLocationFromCore(remote_addr_t addr, off_t* offset_in_file) const
 {
+    LOG(DEBUG) << "addr = " << addr;
+
     auto corefile_it = std::find_if(d_vmaps.cbegin(), d_vmaps.cend(), [&](auto& map) {
+        LOG(DEBUG) << "map start = " << map.Start();
+        LOG(DEBUG) << "map end = " << map.End();
+        LOG(DEBUG) << "map filesize = " << map.FileSize();
+        LOG(DEBUG) << "map offset = " << map.Offset();
+
         return (map.Start() <= addr && addr < map.End()) && (map.FileSize() != 0 && map.Offset() != 0);
     });
     if (corefile_it == d_vmaps.cend()) {
@@ -405,6 +416,9 @@ CorefileRemoteMemoryManager::getMemoryLocationFromCore(remote_addr_t addr, off_t
     }
 
     unsigned long base = corefile_it->Offset() - corefile_it->Start();
+    LOG(DEBUG) << "corefile_it offset = " << corefile_it->Offset();
+    LOG(DEBUG) << "corefile_it start = " << corefile_it->Start();
+    LOG(DEBUG) << "base = " << base;
     *offset_in_file = base + addr;
     return StatusCode::SUCCESS;
 }
@@ -459,6 +473,7 @@ CorefileRemoteMemoryManager::getMemoryLocationFromElf(
     });
 
     if (shared_libs_it == d_shared_libs.cend()) {
+        LOG(DEBUG) << "shared_libs_it not found thing";
         return StatusCode::ERROR;
     }
 
@@ -475,17 +490,22 @@ CorefileRemoteMemoryManager::getMemoryLocationFromElf(
     }
 
     if (cache_it->second.empty()) {
+        LOG(DEBUG) << "second was empty";
         return StatusCode::ERROR;
     }
 
     // Get the load address of the elf file
     remote_addr_t elf_load_addr = cache_it->second[0].vaddr;
+    LOG(DEBUG) << "elf_load_addr = " << elf_load_addr;
 
     // Now relocate the address to the elf file
     remote_addr_t symbol_vaddr = addr - (shared_libs_it->start - elf_load_addr);
+    LOG(DEBUG) << "symbol_vaddr = " << elf_load_addr;
 
     // Find the correct segment
     for (const auto& segment : cache_it->second) {
+        LOG(DEBUG) << "segment.vaddr = " << segment.vaddr;
+        LOG(DEBUG) << "segment.size = " << segment.size;
         if (symbol_vaddr >= segment.vaddr && symbol_vaddr < segment.vaddr + segment.size) {
             *offset_in_file = (symbol_vaddr - segment.vaddr) + segment.offset;
             return StatusCode::SUCCESS;

@jhance
Copy link
Author

jhance commented Jan 24, 2025

Me not knowing anything about how this works thinks the unsigned long offset - start where offset < start it a little bit sus. Seems like this is underflowing?

@pablogsal
Copy link
Member

Oh wow according to this we have a map in the core with the symbol! Wow that's super strange.

Can you give me the following

  • Attach gdb to the core and execute "into proc mappings"

  • The full output of pystack with -vvvvv. That should show the mappings in full we are getting to the core

@pablogsal
Copy link
Member

pablogsal commented Jan 24, 2025

Also can you try to force it to go to the elf file for that address in particular instead of to the core to confirm that the function I am fixing works? Just hardcore a conditional for that specific address

@jhance
Copy link
Author

jhance commented Jan 24, 2025

Guess the core I'm using in this example has a lot of numpy <_<

The output of -vvvvv is in this gist https://gist.github.com/jhance/ff913fb69ab5a617be4ebe318b0a701c

(gdb) info proc mappings

Mapped address spaces:

          Start Addr           End Addr       Size     Offset objfile

            0x400000           0xcc2000   0x8c2000        0x0 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/external/drtev5_python_311/bin/python

            0xcc3000           0xcc4000     0x1000   0x8c2000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/external/drtev5_python_311/bin/python

            0xcc4000           0xe23000   0x15f000   0x8c3000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/external/drtev5_python_311/bin/python

      0x7bc50bc00000     0x7bc50fb84000  0x3f84000        0x0 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/external/arrow/python/pyarrow/_json.cpython-311-x86_64-linux-gnu.so

      0x7bc50fb84000     0x7bc50fbf2000    0x6e000  0x3f83000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/external/arrow/python/pyarrow/_json.cpython-311-x86_64-linux-gnu.so

      0x7bc50fbf2000     0x7bc50fcb6000    0xc4000  0x3ff1000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/external/arrow/python/pyarrow/_json.cpython-311-x86_64-linux-gnu.so

      0x7bc50ff6a000     0x7bc510021000    0xb7000        0x0 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_generator.cpython-311-x86_64-linux-gnu.so

      0x7bc510021000     0x7bc510022000     0x1000    0xb7000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8---Type <RET> for more, q to quit, c to continue without paging--

dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_generator.cpython-311-x86_64-linux-gnu.so

      0x7bc510022000     0x7bc510023000     0x1000    0xb7000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_generator.cpython-311-x86_64-linux-gnu.so

      0x7bc510023000     0x7bc51004b000    0x28000    0xb8000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_generator.cpython-311-x86_64-linux-gnu.so

      0x7bc51004d000     0x7bc5100d4000    0x87000        0x0 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/mtrand.cpython-311-x86_64-linux-gnu.so

      0x7bc5100d4000     0x7bc5100d5000     0x1000    0x87000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/mtrand.cpython-311-x86_64-linux-gnu.so

      0x7bc5100d5000     0x7bc5100d6000     0x1000    0x87000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/mtrand.cpython-311-x86_64-linux-gnu.so

      0x7bc5100d6000     0x7bc5100fe000    0x28000    0x88000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/mtrand.cpython-311-x86_64-linux-gnu.so

      0x7bc510200000     0x7bc5103d2000   0x1d2000        0x0 /home/jhance/.cache/b--Type <RET> for more, q to quit, c to continue without paging--

azel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/linalg/_umath_linalg.cpython-311-x86_64-linux-gnu.so

      0x7bc5103d2000     0x7bc5103d3000     0x1000   0x1d1000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/linalg/_umath_linalg.cpython-311-x86_64-linux-gnu.so

      0x7bc5103d3000     0x7bc5103d6000     0x3000   0x1d2000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/linalg/_umath_linalg.cpython-311-x86_64-linux-gnu.so

      0x7bc510600000     0x7bc510b6b000   0x56b000        0x0 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/core/_multiarray_umath.cpython-311-x86_64-linux-gnu.so

      0x7bc510b6b000     0x7bc510b6c000     0x1000   0x56b000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/core/_multiarray_umath.cpython-311-x86_64-linux-gnu.so

      0x7bc510b6c000     0x7bc510b6e000     0x2000   0x56b000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/core/_multiarray_umath.cpython-311-x86_64-linux-gnu.so

      0x7bc510b6e000     0x7bc510b91000    0x23000   0x56d000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/core/_multiarray_umath.cpython-311-x86_64-linux-gnu.so

--Type <RET> for more, q to quit, c to continue without paging--

      0x7bc510bc5000     0x7bc510bd0000     0xb000        0x0 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_sfc64.cpython-311-x86_64-linux-gnu.so

      0x7bc510bd0000     0x7bc510bd1000     0x1000     0xa000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_sfc64.cpython-311-x86_64-linux-gnu.so

      0x7bc510bd1000     0x7bc510bd2000     0x1000     0xb000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_sfc64.cpython-311-x86_64-linux-gnu.so

      0x7bc510bd2000     0x7bc510be6000    0x14000        0x0 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_pcg64.cpython-311-x86_64-linux-gnu.so

      0x7bc510be6000     0x7bc510be7000     0x1000    0x14000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_pcg64.cpython-311-x86_64-linux-gnu.so

      0x7bc510be7000     0x7bc510be8000     0x1000    0x14000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_pcg64.cpython-311-x86_64-linux-gnu.so

      0x7bc510be8000     0x7bc510beb000     0x3000    0x15000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_pcg64.cpython-311-x86_64-linu--Type <RET> for more, q to quit, c to continue without paging--

x-gnu.so

      0x7bc510beb000     0x7bc510bfc000    0x11000        0x0 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_philox.cpython-311-x86_64-linux-gnu.so

      0x7bc510bfc000     0x7bc510bfd000     0x1000    0x11000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_philox.cpython-311-x86_64-linux-gnu.so

      0x7bc510bfd000     0x7bc510bfe000     0x1000    0x11000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_philox.cpython-311-x86_64-linux-gnu.so

      0x7bc510bfe000     0x7bc510c00000     0x2000    0x12000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_philox.cpython-311-x86_64-linux-gnu.so

      0x7bc511000000     0x7bc51584e000  0x484e000        0x0 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/external/arrow/python/pyarrow/lib.cpython-311-x86_64-linux-gnu.so

      0x7bc51584e000     0x7bc51584f000     0x1000  0x484e000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/external/arrow/python/pyarrow/lib.cpython-311-x86_64-linux-gnu.so

      0x7bc51584f000     0x7bc5158cb000    0x7c000  0x484e000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/external/arrow/python/pyarrow/lib.cpython-311-x86_64-linux-gnu.so

      0x7bc5158cb000     0x7bc5159c4000    0xf9000  0x48ca000 /home/jhance/.cache/b--Type <RET> for more, q to quit, c to continue without paging--

azel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/external/arrow/python/pyarrow/lib.cpython-311-x86_64-linux-gnu.so

      0x7bc5159fc000     0x7bc515a50000    0x54000        0x0 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_bounded_integers.cpython-311-x86_64-linux-gnu.so

      0x7bc515a50000     0x7bc515a51000     0x1000    0x53000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_bounded_integers.cpython-311-x86_64-linux-gnu.so

      0x7bc515a51000     0x7bc515a52000     0x1000    0x54000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_bounded_integers.cpython-311-x86_64-linux-gnu.so

      0x7bc515a54000     0x7bc515a8f000    0x3b000        0x0 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_common.cpython-311-x86_64-linux-gnu.so

      0x7bc515a8f000     0x7bc515a90000     0x1000    0x3a000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_common.cpython-311-x86_64-linux-gnu.so

      0x7bc515a90000     0x7bc515a92000     0x2000    0x3b000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_common.cpython-311-x86_64-linux-gnu.so

      0x7bc516586000     0x7bc51659b000    0x15000        0x0 /home/jhance/.cache/b--Type <RET> for more, q to quit, c to continue without paging--

azel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_mt19937.cpython-311-x86_64-linux-gnu.so

      0x7bc51659b000     0x7bc51659c000     0x1000    0x14000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_mt19937.cpython-311-x86_64-linux-gnu.so

      0x7bc51659c000     0x7bc51659e000     0x2000    0x15000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_mt19937.cpython-311-x86_64-linux-gnu.so

      0x7bc51659e000     0x7bc5165c7000    0x29000        0x0 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/bit_generator.cpython-311-x86_64-linux-gnu.so

      0x7bc5165c7000     0x7bc5165c8000     0x1000    0x29000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/bit_generator.cpython-311-x86_64-linux-gnu.so

      0x7bc5165c8000     0x7bc5165c9000     0x1000    0x29000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/bit_generator.cpython-311-x86_64-linux-gnu.so

      0x7bc5165c9000     0x7bc5165ce000     0x5000    0x2a000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/bit_generator.cpython-311-x86_64-linux-gnu.so

--Type <RET> for more, q to quit, c to continue without paging--

      0x7bc5165cf000     0x7bc5165e1000    0x12000        0x0 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/fft/_pocketfft_internal.cpython-311-x86_64-linux-gnu.so

      0x7bc5165e1000     0x7bc5165e2000     0x1000    0x12000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/fft/_pocketfft_internal.cpython-311-x86_64-linux-gnu.so

      0x7bc5165e2000     0x7bc5165e3000     0x1000    0x12000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/fft/_pocketfft_internal.cpython-311-x86_64-linux-gnu.so

      0x7bc5165e3000     0x7bc5165e4000     0x1000    0x13000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/fft/_pocketfft_internal.cpython-311-x86_64-linux-gnu.so

      0x7bc5167ed000     0x7bc516807000    0x1a000        0x0 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/core/_multiarray_tests.cpython-311-x86_64-linux-gnu.so

      0x7bc516807000     0x7bc516808000     0x1000    0x1a000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/core/_multiarray_tests.cpython-311-x86_64-linux-gnu.so

      0x7bc516808000     0x7bc516809000     0x1000    0x1a000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/core/_multiarray_tests.cpython-311-x8--Type <RET> for more, q to quit, c to continue without paging--

6_64-linux-gnu.so

      0x7bc516809000     0x7bc51680b000     0x2000    0x1b000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/core/_multiarray_tests.cpython-311-x86_64-linux-gnu.so

      0x7bc51680b000     0x7bc516815000     0xa000        0x0 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/simplejson/simplejson-cpython-311/lib/simplejson/_speedups.cpython-311-x86_64-linux-gnu.so

      0x7bc516815000     0x7bc516816000     0x1000     0x9000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/simplejson/simplejson-cpython-311/lib/simplejson/_speedups.cpython-311-x86_64-linux-gnu.so

      0x7bc516816000     0x7bc516817000     0x1000     0xa000 /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/simplejson/simplejson-cpython-311/lib/simplejson/_speedups.cpython-311-x86_64-linux-gnu.so

      0x7bc516b7d000     0x7bc516e66000   0x2e9000        0x0 /usr/drte/v5/lib64/locale/locale-archive

      0x7bc516e6b000     0x7bc516e93000    0x28000        0x0 /usr/drte/v5/lib64/libc.so.6

      0x7bc516e93000     0x7bc517014000   0x181000    0x28000 /usr/drte/v5/lib64/libc.so.6

      0x7bc517014000     0x7bc51706c000    0x58000   0x1a9000 /usr/drte/v5/lib64/libc.so.6

      0x7bc51706c000     0x7bc51706d000     0x1000   0x201000 /usr/drte/v5/lib64/libc.so.6

--Type <RET> for more, q to quit, c to continue without paging--

      0x7bc51706d000     0x7bc517071000     0x4000   0x201000 /usr/drte/v5/lib64/libc.so.6

      0x7bc517071000     0x7bc517073000     0x2000   0x205000 /usr/drte/v5/lib64/libc.so.6

      0x7bc51707b000     0x7bc51707e000     0x3000        0x0 /usr/drte/v5/lib64/libgcc_s.so.1

      0x7bc51707e000     0x7bc517090000    0x12000     0x3000 /usr/drte/v5/lib64/libgcc_s.so.1

      0x7bc517090000     0x7bc517093000     0x3000    0x15000 /usr/drte/v5/lib64/libgcc_s.so.1

      0x7bc517093000     0x7bc517094000     0x1000    0x17000 /usr/drte/v5/lib64/libgcc_s.so.1

      0x7bc517094000     0x7bc517095000     0x1000    0x18000 /usr/drte/v5/lib64/libgcc_s.so.1

      0x7bc517095000     0x7bc517136000    0xa1000        0x0 /usr/drte/v5/lib64/libstdc++.so.6

      0x7bc517136000     0x7bc51722b000    0xf5000    0xa1000 /usr/drte/v5/lib64/libstdc++.so.6

      0x7bc51722b000     0x7bc517297000    0x6c000   0x196000 /usr/drte/v5/lib64/libstdc++.so.6

      0x7bc517297000     0x7bc517298000     0x1000   0x202000 /usr/drte/v5/lib64/libstdc++.so.6

      0x7bc517298000     0x7bc5172a3000     0xb000   0x202000 /usr/drte/v5/lib64/libstdc++.so.6

      0x7bc5172a3000     0x7bc5172a6000     0x3000   0x20d000 /usr/drte/v5/lib64/libstdc++.so.6

      0x7bc5172a9000     0x7bc5172b7000     0xe000        0x0 /usr/drte/v5/lib64/li--Type <RET> for more, q to quit, c to continue without paging--

bm.so.6

      0x7bc5172b7000     0x7bc517330000    0x79000     0xe000 /usr/drte/v5/lib64/libm.so.6

      0x7bc517330000     0x7bc51738b000    0x5b000    0x87000 /usr/drte/v5/lib64/libm.so.6

      0x7bc51738b000     0x7bc51738c000     0x1000    0xe2000 /usr/drte/v5/lib64/libm.so.6

      0x7bc51738c000     0x7bc51738d000     0x1000    0xe2000 /usr/drte/v5/lib64/libm.so.6

      0x7bc51738d000     0x7bc51738e000     0x1000    0xe3000 /usr/drte/v5/lib64/libm.so.6

      0x7bc51738e000     0x7bc51738f000     0x1000        0x0 /usr/drte/v5/lib64/libcrypt.so.1

      0x7bc51738f000     0x7bc517395000     0x6000     0x1000 /usr/drte/v5/lib64/libcrypt.so.1

      0x7bc517395000     0x7bc517397000     0x2000     0x7000 /usr/drte/v5/lib64/libcrypt.so.1

      0x7bc517397000     0x7bc517398000     0x1000     0x9000 /usr/drte/v5/lib64/libcrypt.so.1

      0x7bc517398000     0x7bc517399000     0x1000     0x9000 /usr/drte/v5/lib64/libcrypt.so.1

      0x7bc517399000     0x7bc51739a000     0x1000     0xa000 /usr/drte/v5/lib64/libcrypt.so.1

      0x7bc5173ca000     0x7bc5173cc000     0x2000        0x0 /usr/drte/v5/lib64/ld-linux-x86-64.so.2

      0x7bc5173cc000     0x7bc5173f4000    0x28000     0x2000 /usr/drte/v5/lib64/ld-linux-x86-64.so.2

--Type <RET> for more, q to quit, c to continue without paging--

      0x7bc5173f4000     0x7bc5173ff000     0xb000    0x2a000 /usr/drte/v5/lib64/ld-linux-x86-64.so.2

      0x7bc517400000     0x7bc517402000     0x2000    0x35000 /usr/drte/v5/lib64/ld-linux-x86-64.so.2

      0x7bc517402000     0x7bc517404000     0x2000    0x37000 /usr/drte/v5/lib64/ld-linux-x86-64.so.2

@pablogsal
Copy link
Member

I am also suspicious of this:

DEBUG(process_core): map start = 4194304
DEBUG(process_core): map end = 13377536
DEBUG(process_core): map filesize = 4096
DEBUG(process_core): map offset = 32768

That seems to imply that the map covers from 4194304 to 13377536 but only has a file size of 4k!

@jhance
Copy link
Author

jhance commented Jan 24, 2025

It seems to work when I hack it to not use the core for that address like you suggested.

One other thing that might be relevant is that there is no libpython.so or whatever it is all statically linked in

@pablogsal
Copy link
Member

Can you give me the output of readelf -a on the core file itself?

@pablogsal
Copy link
Member

This is my understanding of the situation:

The core contains a mapping that has a big range but somehow it doesn't contain everything in the mapping. That's super weird as my understanding is that normally you just have a file size of 0 to say "the data is somewhere else in the original file" but I am correct it means we need to account for a mapping having some partial content of the full range.

Once we identify how to know that we are in this situation we can properly redirect to copy from the elf file and update my PR and problem solved.

We just need to be able to confirm this situation.

@jhance
Copy link
Author

jhance commented Jan 24, 2025

  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              CORE (Core file)
  Machine:                           Advanced Micro Devices X86-64
  Version:                           0x1
  Entry point address:               0x0
  Start of program headers:          64 (bytes into file)
  Start of section headers:          0 (bytes into file)
  Flags:                             0x0
  Size of this header:               64 (bytes)
  Size of program headers:           56 (bytes)
  Number of program headers:         127
  Size of section headers:           0 (bytes)
  Number of section headers:         0
  Section header string table index: 0

There are no sections in this file.

There are no section groups in this file.

Program Headers:
  Type           Offset             VirtAddr           PhysAddr
                 FileSiz            MemSiz              Flags  Align
  NOTE           0x0000000000001c08 0x0000000000000000 0x0000000000000000
                 0x00000000000059e8 0x0000000000000000         0x4
  LOAD           0x0000000000008000 0x0000000000400000 0x0000000000000000
                 0x0000000000001000 0x00000000008c2000  R E    0x1000
  LOAD           0x0000000000009000 0x0000000000cc3000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  R      0x1000
  LOAD           0x000000000000a000 0x0000000000cc4000 0x0000000000000000
                 0x000000000015f000 0x000000000015f000  RW     0x1000
  LOAD           0x0000000000169000 0x0000000000e23000 0x0000000000000000
                 0x000000000004b000 0x000000000004b000  RW     0x1000
  LOAD           0x00000000001b4000 0x0000000033029000 0x0000000000000000
                 0x00000000007b9000 0x00000000007b9000  RW     0x1000
  LOAD           0x000000000096d000 0x00007bc504000000 0x0000000000000000
                 0x0000000000021000 0x0000000000021000  RW     0x1000
  LOAD           0x000000000098e000 0x00007bc504021000 0x0000000000000000
                 0x0000000000000000 0x0000000003fdf000         0x1000
  LOAD           0x000000000098e000 0x00007bc50ae00000 0x0000000000000000
                 0x0000000000200000 0x0000000000200000  RW     0x1000
  LOAD           0x0000000000b8e000 0x00007bc50b000000 0x0000000000000000
                 0x0000000000000000 0x0000000000001000         0x1000
  LOAD           0x0000000000b8e000 0x00007bc50b001000 0x0000000000000000
                 0x0000000000800000 0x0000000000800000  RW     0x1000
  LOAD           0x000000000138e000 0x00007bc50ba00000 0x0000000000000000
                 0x0000000000200000 0x0000000000200000  RW     0x1000
  LOAD           0x000000000158e000 0x00007bc50bc00000 0x0000000000000000
                 0x0000000000001000 0x0000000003f84000  R E    0x1000
  LOAD           0x000000000158f000 0x00007bc50fb84000 0x0000000000000000
                 0x000000000006e000 0x000000000006e000  R      0x1000
  LOAD           0x00000000015fd000 0x00007bc50fbf2000 0x0000000000000000
                 0x00000000000c4000 0x00000000000c4000  RW     0x1000
  LOAD           0x00000000016c1000 0x00007bc50fcb6000 0x0000000000000000
                 0x0000000000024000 0x0000000000024000  RW     0x1000
  LOAD           0x00000000016e5000 0x00007bc50fe6a000 0x0000000000000000
                 0x0000000000100000 0x0000000000100000  RW     0x1000
  LOAD           0x00000000017e5000 0x00007bc50ff6a000 0x0000000000000000
                 0x0000000000001000 0x00000000000b7000  R E    0x1000
  LOAD           0x00000000017e6000 0x00007bc510021000 0x0000000000000000
                 0x0000000000000000 0x0000000000001000         0x1000
  LOAD           0x00000000017e6000 0x00007bc510022000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  R      0x1000
  LOAD           0x00000000017e7000 0x00007bc510023000 0x0000000000000000
                 0x0000000000028000 0x0000000000028000  RW     0x1000
  LOAD           0x000000000180f000 0x00007bc51004b000 0x0000000000000000
                 0x0000000000002000 0x0000000000002000  RW     0x1000
  LOAD           0x0000000001811000 0x00007bc51004d000 0x0000000000000000
                 0x0000000000001000 0x0000000000087000  R E    0x1000
  LOAD           0x0000000001812000 0x00007bc5100d4000 0x0000000000000000
                 0x0000000000000000 0x0000000000001000         0x1000
  LOAD           0x0000000001812000 0x00007bc5100d5000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  R      0x1000
  LOAD           0x0000000001813000 0x00007bc5100d6000 0x0000000000000000
                 0x0000000000028000 0x0000000000028000  RW     0x1000
  LOAD           0x000000000183b000 0x00007bc5100fe000 0x0000000000000000
                 0x0000000000102000 0x0000000000102000  RW     0x1000
  LOAD           0x000000000193d000 0x00007bc510200000 0x0000000000000000
                 0x0000000000001000 0x00000000001d2000  R E    0x1000
  LOAD           0x000000000193e000 0x00007bc5103d2000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  R      0x1000
  LOAD           0x000000000193f000 0x00007bc5103d3000 0x0000000000000000
                 0x0000000000003000 0x0000000000003000  RW     0x1000
  LOAD           0x0000000001942000 0x00007bc5103d6000 0x0000000000000000
                 0x00000000000b3000 0x00000000000b3000  RW     0x1000
  LOAD           0x00000000019f5000 0x00007bc510500000 0x0000000000000000
                 0x0000000000100000 0x0000000000100000  RW     0x1000
  LOAD           0x0000000001af5000 0x00007bc510600000 0x0000000000000000
                 0x0000000000001000 0x000000000056b000  R E    0x1000
  LOAD           0x0000000001af6000 0x00007bc510b6b000 0x0000000000000000
                 0x0000000000000000 0x0000000000001000         0x1000
  LOAD           0x0000000001af6000 0x00007bc510b6c000 0x0000000000000000
                 0x0000000000002000 0x0000000000002000  R      0x1000
  LOAD           0x0000000001af8000 0x00007bc510b6e000 0x0000000000000000
                 0x0000000000023000 0x0000000000023000  RW     0x1000
  LOAD           0x0000000001b1b000 0x00007bc510b91000 0x0000000000000000
                 0x0000000000020000 0x0000000000020000  RW     0x1000
  LOAD           0x0000000001b3b000 0x00007bc510bc5000 0x0000000000000000
                 0x0000000000001000 0x000000000000b000  R E    0x1000
  LOAD           0x0000000001b3c000 0x00007bc510bd0000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  R      0x1000
  LOAD           0x0000000001b3d000 0x00007bc510bd1000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  RW     0x1000
  LOAD           0x0000000001b3e000 0x00007bc510bd2000 0x0000000000000000
                 0x0000000000001000 0x0000000000014000  R E    0x1000
  LOAD           0x0000000001b3f000 0x00007bc510be6000 0x0000000000000000
                 0x0000000000000000 0x0000000000001000         0x1000
  LOAD           0x0000000001b3f000 0x00007bc510be7000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  R      0x1000
  LOAD           0x0000000001b40000 0x00007bc510be8000 0x0000000000000000
                 0x0000000000003000 0x0000000000003000  RW     0x1000
  LOAD           0x0000000001b43000 0x00007bc510beb000 0x0000000000000000
                 0x0000000000001000 0x0000000000011000  R E    0x1000
  LOAD           0x0000000001b44000 0x00007bc510bfc000 0x0000000000000000
                 0x0000000000000000 0x0000000000001000         0x1000
  LOAD           0x0000000001b44000 0x00007bc510bfd000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  R      0x1000
  LOAD           0x0000000001b45000 0x00007bc510bfe000 0x0000000000000000
                 0x0000000000002000 0x0000000000002000  RW     0x1000
  LOAD           0x0000000001b47000 0x00007bc510c00000 0x0000000000000000
                 0x0000000000200000 0x0000000000200000  RW     0x1000
  LOAD           0x0000000001d47000 0x00007bc510e00000 0x0000000000000000
                 0x0000000000200000 0x0000000000200000  RW     0x1000
  LOAD           0x0000000001f47000 0x00007bc511000000 0x0000000000000000
                 0x0000000000001000 0x000000000484e000  R E    0x1000
  LOAD           0x0000000001f48000 0x00007bc51584e000 0x0000000000000000
                 0x0000000000000000 0x0000000000001000         0x1000
  LOAD           0x0000000001f48000 0x00007bc51584f000 0x0000000000000000
                 0x000000000007c000 0x000000000007c000  R      0x1000
  LOAD           0x0000000001fc4000 0x00007bc5158cb000 0x0000000000000000
                 0x00000000000f9000 0x00000000000f9000  RW     0x1000
  LOAD           0x00000000020bd000 0x00007bc5159c4000 0x0000000000000000
                 0x0000000000032000 0x0000000000032000  RW     0x1000
  LOAD           0x00000000020ef000 0x00007bc5159fc000 0x0000000000000000
                 0x0000000000001000 0x0000000000054000  R E    0x1000
  LOAD           0x00000000020f0000 0x00007bc515a50000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  R      0x1000
  LOAD           0x00000000020f1000 0x00007bc515a51000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  RW     0x1000
  LOAD           0x00000000020f2000 0x00007bc515a52000 0x0000000000000000
                 0x0000000000002000 0x0000000000002000  RW     0x1000
  LOAD           0x00000000020f4000 0x00007bc515a54000 0x0000000000000000
                 0x0000000000001000 0x000000000003b000  R E    0x1000
  LOAD           0x00000000020f5000 0x00007bc515a8f000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  R      0x1000
  LOAD           0x00000000020f6000 0x00007bc515a90000 0x0000000000000000
                 0x0000000000002000 0x0000000000002000  RW     0x1000
  LOAD           0x00000000020f8000 0x00007bc515a92000 0x0000000000000000
                 0x0000000000aec000 0x0000000000aec000  RW     0x1000
  LOAD           0x0000000002be4000 0x00007bc516586000 0x0000000000000000
                 0x0000000000001000 0x0000000000015000  R E    0x1000
  LOAD           0x0000000002be5000 0x00007bc51659b000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  R      0x1000
  LOAD           0x0000000002be6000 0x00007bc51659c000 0x0000000000000000
                 0x0000000000002000 0x0000000000002000  RW     0x1000
  LOAD           0x0000000002be8000 0x00007bc51659e000 0x0000000000000000
                 0x0000000000001000 0x0000000000029000  R E    0x1000
  LOAD           0x0000000002be9000 0x00007bc5165c7000 0x0000000000000000
                 0x0000000000000000 0x0000000000001000         0x1000
  LOAD           0x0000000002be9000 0x00007bc5165c8000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  R      0x1000
  LOAD           0x0000000002bea000 0x00007bc5165c9000 0x0000000000000000
                 0x0000000000005000 0x0000000000005000  RW     0x1000
  LOAD           0x0000000002bef000 0x00007bc5165ce000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  RW     0x1000
  LOAD           0x0000000002bf0000 0x00007bc5165cf000 0x0000000000000000
                 0x0000000000001000 0x0000000000012000  R E    0x1000
  LOAD           0x0000000002bf1000 0x00007bc5165e1000 0x0000000000000000
                 0x0000000000000000 0x0000000000001000         0x1000
  LOAD           0x0000000002bf1000 0x00007bc5165e2000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  R      0x1000
  LOAD           0x0000000002bf2000 0x00007bc5165e3000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  RW     0x1000
  LOAD           0x0000000002bf3000 0x00007bc5165e4000 0x0000000000000000
                 0x0000000000200000 0x0000000000200000  RW     0x1000
  LOAD           0x0000000002df3000 0x00007bc5167ed000 0x0000000000000000
                 0x0000000000001000 0x000000000001a000  R E    0x1000
  LOAD           0x0000000002df4000 0x00007bc516807000 0x0000000000000000
                 0x0000000000000000 0x0000000000001000         0x1000
  LOAD           0x0000000002df4000 0x00007bc516808000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  R      0x1000
  LOAD           0x0000000002df5000 0x00007bc516809000 0x0000000000000000
                 0x0000000000002000 0x0000000000002000  RW     0x1000
  LOAD           0x0000000002df7000 0x00007bc51680b000 0x0000000000000000
                 0x0000000000001000 0x000000000000a000  R E    0x1000
  LOAD           0x0000000002df8000 0x00007bc516815000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  R      0x1000
  LOAD           0x0000000002df9000 0x00007bc516816000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  RW     0x1000
  LOAD           0x0000000002dfa000 0x00007bc516817000 0x0000000000000000
                 0x0000000000366000 0x0000000000366000  RW     0x1000
  LOAD           0x0000000003160000 0x00007bc516b7d000 0x0000000000000000
                 0x0000000000000000 0x00000000002e9000  R      0x1000
  LOAD           0x0000000003160000 0x00007bc516e66000 0x0000000000000000
                 0x0000000000005000 0x0000000000005000  RW     0x1000
  LOAD           0x0000000003165000 0x00007bc516e6b000 0x0000000000000000
                 0x0000000000001000 0x0000000000028000  R      0x1000
  LOAD           0x0000000003166000 0x00007bc516e93000 0x0000000000000000
                 0x0000000000000000 0x0000000000181000  R E    0x1000
  LOAD           0x0000000003166000 0x00007bc517014000 0x0000000000000000
                 0x0000000000000000 0x0000000000058000  R      0x1000
  LOAD           0x0000000003166000 0x00007bc51706c000 0x0000000000000000
                 0x0000000000000000 0x0000000000001000         0x1000
  LOAD           0x0000000003166000 0x00007bc51706d000 0x0000000000000000
                 0x0000000000004000 0x0000000000004000  R      0x1000
  LOAD           0x000000000316a000 0x00007bc517071000 0x0000000000000000
                 0x0000000000002000 0x0000000000002000  RW     0x1000
  LOAD           0x000000000316c000 0x00007bc517073000 0x0000000000000000
                 0x0000000000008000 0x0000000000008000  RW     0x1000
  LOAD           0x0000000003174000 0x00007bc51707b000 0x0000000000000000
                 0x0000000000001000 0x0000000000003000  R      0x1000
  LOAD           0x0000000003175000 0x00007bc51707e000 0x0000000000000000
                 0x0000000000000000 0x0000000000012000  R E    0x1000
  LOAD           0x0000000003175000 0x00007bc517090000 0x0000000000000000
                 0x0000000000000000 0x0000000000003000  R      0x1000
  LOAD           0x0000000003175000 0x00007bc517093000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  R      0x1000
  LOAD           0x0000000003176000 0x00007bc517094000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  RW     0x1000
  LOAD           0x0000000003177000 0x00007bc517095000 0x0000000000000000
                 0x0000000000001000 0x00000000000a1000  R      0x1000
  LOAD           0x0000000003178000 0x00007bc517136000 0x0000000000000000
                 0x0000000000000000 0x00000000000f5000  R E    0x1000
  LOAD           0x0000000003178000 0x00007bc51722b000 0x0000000000000000
                 0x0000000000000000 0x000000000006c000  R      0x1000
  LOAD           0x0000000003178000 0x00007bc517297000 0x0000000000000000
                 0x0000000000000000 0x0000000000001000         0x1000
  LOAD           0x0000000003178000 0x00007bc517298000 0x0000000000000000
                 0x000000000000b000 0x000000000000b000  R      0x1000
  LOAD           0x0000000003183000 0x00007bc5172a3000 0x0000000000000000
                 0x0000000000003000 0x0000000000003000  RW     0x1000
  LOAD           0x0000000003186000 0x00007bc5172a6000 0x0000000000000000
                 0x0000000000003000 0x0000000000003000  RW     0x1000
  LOAD           0x0000000003189000 0x00007bc5172a9000 0x0000000000000000
                 0x0000000000001000 0x000000000000e000  R      0x1000
  LOAD           0x000000000318a000 0x00007bc5172b7000 0x0000000000000000
                 0x0000000000000000 0x0000000000079000  R E    0x1000
  LOAD           0x000000000318a000 0x00007bc517330000 0x0000000000000000
                 0x0000000000000000 0x000000000005b000  R      0x1000
  LOAD           0x000000000318a000 0x00007bc51738b000 0x0000000000000000
                 0x0000000000000000 0x0000000000001000         0x1000
  LOAD           0x000000000318a000 0x00007bc51738c000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  R      0x1000
  LOAD           0x000000000318b000 0x00007bc51738d000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  RW     0x1000
  LOAD           0x000000000318c000 0x00007bc51738e000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  R      0x1000
  LOAD           0x000000000318d000 0x00007bc51738f000 0x0000000000000000
                 0x0000000000000000 0x0000000000006000  R E    0x1000
  LOAD           0x000000000318d000 0x00007bc517395000 0x0000000000000000
                 0x0000000000000000 0x0000000000002000  R      0x1000
  LOAD           0x000000000318d000 0x00007bc517397000 0x0000000000000000
                 0x0000000000000000 0x0000000000001000         0x1000
  LOAD           0x000000000318d000 0x00007bc517398000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  R      0x1000
  LOAD           0x000000000318e000 0x00007bc517399000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000  RW     0x1000
  LOAD           0x000000000318f000 0x00007bc51739a000 0x0000000000000000
                 0x0000000000030000 0x0000000000030000  RW     0x1000
  LOAD           0x00000000031bf000 0x00007bc5173ca000 0x0000000000000000
                 0x0000000000001000 0x0000000000002000  R      0x1000
  LOAD           0x00000000031c0000 0x00007bc5173cc000 0x0000000000000000
                 0x0000000000000000 0x0000000000028000  R E    0x1000
  LOAD           0x00000000031c0000 0x00007bc5173f4000 0x0000000000000000
                 0x0000000000000000 0x000000000000b000  R      0x1000
  LOAD           0x00000000031c0000 0x00007bc517400000 0x0000000000000000
                 0x0000000000002000 0x0000000000002000  R      0x1000
  LOAD           0x00000000031c2000 0x00007bc517402000 0x0000000000000000
                 0x0000000000002000 0x0000000000002000  RW     0x1000
  LOAD           0x00000000031c4000 0x00007ffd94525000 0x0000000000000000
                 0x0000000000024000 0x0000000000024000  RW     0x1000
  LOAD           0x00000000031e8000 0x00007ffd94597000 0x0000000000000000
                 0x0000000000004000 0x0000000000004000  R      0x1000
  LOAD           0x00000000031ec000 0x00007ffd9459b000 0x0000000000000000
                 0x0000000000002000 0x0000000000002000  R E    0x1000
  LOAD           0x00000000031ee000 0xffffffffff600000 0x0000000000000000
                 0x0000000000001000 0x0000000000001000    E    0x1000

There is no dynamic section in this file.

There are no relocations in this file.
No processor specific unwind information to decode

Dynamic symbol information is not available for displaying symbols.

No version information found in this file.

Displaying notes found at file offset 0x00001c08 with length 0x000059e8:
  Owner                Data size 	Description
  CORE                 0x00000150	NT_PRSTATUS (prstatus structure)
  CORE                 0x00000088	NT_PRPSINFO (prpsinfo structure)
  CORE                 0x00000080	NT_SIGINFO (siginfo_t data)
  CORE                 0x00000170	NT_AUXV (auxiliary vector)
  CORE                 0x00003af5	NT_FILE (mapped files)
    Page size: 4096
                 Start                 End         Page Offset
    0x0000000000400000  0x0000000000cc2000  0x0000000000000000
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/external/drtev5_python_311/bin/python
    0x0000000000cc3000  0x0000000000cc4000  0x00000000000008c2
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/external/drtev5_python_311/bin/python
    0x0000000000cc4000  0x0000000000e23000  0x00000000000008c3
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/external/drtev5_python_311/bin/python
    0x00007bc50bc00000  0x00007bc50fb84000  0x0000000000000000
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/external/arrow/python/pyarrow/_json.cpython-311-x86_64-linux-gnu.so
    0x00007bc50fb84000  0x00007bc50fbf2000  0x0000000000003f83
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/external/arrow/python/pyarrow/_json.cpython-311-x86_64-linux-gnu.so
    0x00007bc50fbf2000  0x00007bc50fcb6000  0x0000000000003ff1
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/external/arrow/python/pyarrow/_json.cpython-311-x86_64-linux-gnu.so
    0x00007bc50ff6a000  0x00007bc510021000  0x0000000000000000
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_generator.cpython-311-x86_64-linux-gnu.so
    0x00007bc510021000  0x00007bc510022000  0x00000000000000b7
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_generator.cpython-311-x86_64-linux-gnu.so
    0x00007bc510022000  0x00007bc510023000  0x00000000000000b7
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_generator.cpython-311-x86_64-linux-gnu.so
    0x00007bc510023000  0x00007bc51004b000  0x00000000000000b8
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_generator.cpython-311-x86_64-linux-gnu.so
    0x00007bc51004d000  0x00007bc5100d4000  0x0000000000000000
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/mtrand.cpython-311-x86_64-linux-gnu.so
    0x00007bc5100d4000  0x00007bc5100d5000  0x0000000000000087
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/mtrand.cpython-311-x86_64-linux-gnu.so
    0x00007bc5100d5000  0x00007bc5100d6000  0x0000000000000087
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/mtrand.cpython-311-x86_64-linux-gnu.so
    0x00007bc5100d6000  0x00007bc5100fe000  0x0000000000000088
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/mtrand.cpython-311-x86_64-linux-gnu.so
    0x00007bc510200000  0x00007bc5103d2000  0x0000000000000000
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/linalg/_umath_linalg.cpython-311-x86_64-linux-gnu.so
    0x00007bc5103d2000  0x00007bc5103d3000  0x00000000000001d1
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/linalg/_umath_linalg.cpython-311-x86_64-linux-gnu.so
    0x00007bc5103d3000  0x00007bc5103d6000  0x00000000000001d2
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/linalg/_umath_linalg.cpython-311-x86_64-linux-gnu.so
    0x00007bc510600000  0x00007bc510b6b000  0x0000000000000000
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/core/_multiarray_umath.cpython-311-x86_64-linux-gnu.so
    0x00007bc510b6b000  0x00007bc510b6c000  0x000000000000056b
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/core/_multiarray_umath.cpython-311-x86_64-linux-gnu.so
    0x00007bc510b6c000  0x00007bc510b6e000  0x000000000000056b
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/core/_multiarray_umath.cpython-311-x86_64-linux-gnu.so
    0x00007bc510b6e000  0x00007bc510b91000  0x000000000000056d
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/core/_multiarray_umath.cpython-311-x86_64-linux-gnu.so
    0x00007bc510bc5000  0x00007bc510bd0000  0x0000000000000000
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_sfc64.cpython-311-x86_64-linux-gnu.so
    0x00007bc510bd0000  0x00007bc510bd1000  0x000000000000000a
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_sfc64.cpython-311-x86_64-linux-gnu.so
    0x00007bc510bd1000  0x00007bc510bd2000  0x000000000000000b
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_sfc64.cpython-311-x86_64-linux-gnu.so
    0x00007bc510bd2000  0x00007bc510be6000  0x0000000000000000
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_pcg64.cpython-311-x86_64-linux-gnu.so
    0x00007bc510be6000  0x00007bc510be7000  0x0000000000000014
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_pcg64.cpython-311-x86_64-linux-gnu.so
    0x00007bc510be7000  0x00007bc510be8000  0x0000000000000014
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_pcg64.cpython-311-x86_64-linux-gnu.so
    0x00007bc510be8000  0x00007bc510beb000  0x0000000000000015
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_pcg64.cpython-311-x86_64-linux-gnu.so
    0x00007bc510beb000  0x00007bc510bfc000  0x0000000000000000
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_philox.cpython-311-x86_64-linux-gnu.so
    0x00007bc510bfc000  0x00007bc510bfd000  0x0000000000000011
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_philox.cpython-311-x86_64-linux-gnu.so
    0x00007bc510bfd000  0x00007bc510bfe000  0x0000000000000011
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_philox.cpython-311-x86_64-linux-gnu.so
    0x00007bc510bfe000  0x00007bc510c00000  0x0000000000000012
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_philox.cpython-311-x86_64-linux-gnu.so
    0x00007bc511000000  0x00007bc51584e000  0x0000000000000000
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/external/arrow/python/pyarrow/lib.cpython-311-x86_64-linux-gnu.so
    0x00007bc51584e000  0x00007bc51584f000  0x000000000000484e
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/external/arrow/python/pyarrow/lib.cpython-311-x86_64-linux-gnu.so
    0x00007bc51584f000  0x00007bc5158cb000  0x000000000000484e
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/external/arrow/python/pyarrow/lib.cpython-311-x86_64-linux-gnu.so
    0x00007bc5158cb000  0x00007bc5159c4000  0x00000000000048ca
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/external/arrow/python/pyarrow/lib.cpython-311-x86_64-linux-gnu.so
    0x00007bc5159fc000  0x00007bc515a50000  0x0000000000000000
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_bounded_integers.cpython-311-x86_64-linux-gnu.so
    0x00007bc515a50000  0x00007bc515a51000  0x0000000000000053
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_bounded_integers.cpython-311-x86_64-linux-gnu.so
    0x00007bc515a51000  0x00007bc515a52000  0x0000000000000054
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_bounded_integers.cpython-311-x86_64-linux-gnu.so
    0x00007bc515a54000  0x00007bc515a8f000  0x0000000000000000
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_common.cpython-311-x86_64-linux-gnu.so
    0x00007bc515a8f000  0x00007bc515a90000  0x000000000000003a
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_common.cpython-311-x86_64-linux-gnu.so
    0x00007bc515a90000  0x00007bc515a92000  0x000000000000003b
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_common.cpython-311-x86_64-linux-gnu.so
    0x00007bc516586000  0x00007bc51659b000  0x0000000000000000
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_mt19937.cpython-311-x86_64-linux-gnu.so
    0x00007bc51659b000  0x00007bc51659c000  0x0000000000000014
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_mt19937.cpython-311-x86_64-linux-gnu.so
    0x00007bc51659c000  0x00007bc51659e000  0x0000000000000015
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/_mt19937.cpython-311-x86_64-linux-gnu.so
    0x00007bc51659e000  0x00007bc5165c7000  0x0000000000000000
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/bit_generator.cpython-311-x86_64-linux-gnu.so
    0x00007bc5165c7000  0x00007bc5165c8000  0x0000000000000029
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/bit_generator.cpython-311-x86_64-linux-gnu.so
    0x00007bc5165c8000  0x00007bc5165c9000  0x0000000000000029
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/bit_generator.cpython-311-x86_64-linux-gnu.so
    0x00007bc5165c9000  0x00007bc5165ce000  0x000000000000002a
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/random/bit_generator.cpython-311-x86_64-linux-gnu.so
    0x00007bc5165cf000  0x00007bc5165e1000  0x0000000000000000
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/fft/_pocketfft_internal.cpython-311-x86_64-linux-gnu.so
    0x00007bc5165e1000  0x00007bc5165e2000  0x0000000000000012
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/fft/_pocketfft_internal.cpython-311-x86_64-linux-gnu.so
    0x00007bc5165e2000  0x00007bc5165e3000  0x0000000000000012
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/fft/_pocketfft_internal.cpython-311-x86_64-linux-gnu.so
    0x00007bc5165e3000  0x00007bc5165e4000  0x0000000000000013
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/fft/_pocketfft_internal.cpython-311-x86_64-linux-gnu.so
    0x00007bc5167ed000  0x00007bc516807000  0x0000000000000000
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/core/_multiarray_tests.cpython-311-x86_64-linux-gnu.so
    0x00007bc516807000  0x00007bc516808000  0x000000000000001a
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/core/_multiarray_tests.cpython-311-x86_64-linux-gnu.so
    0x00007bc516808000  0x00007bc516809000  0x000000000000001a
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/core/_multiarray_tests.cpython-311-x86_64-linux-gnu.so
    0x00007bc516809000  0x00007bc51680b000  0x000000000000001b
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/numpy/numpy-cpython-311/lib/numpy/core/_multiarray_tests.cpython-311-x86_64-linux-gnu.so
    0x00007bc51680b000  0x00007bc516815000  0x0000000000000000
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/simplejson/simplejson-cpython-311/lib/simplejson/_speedups.cpython-311-x86_64-linux-gnu.so
    0x00007bc516815000  0x00007bc516816000  0x0000000000000009
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/simplejson/simplejson-cpython-311/lib/simplejson/_speedups.cpython-311-x86_64-linux-gnu.so
    0x00007bc516816000  0x00007bc516817000  0x000000000000000a
        /home/jhance/.cache/bazel/_bazel_jhance/a6e3576ae080825f7543244aa416f963/execroot/__main__/bazel-out/k8-dbg/bin/pip/simplejson/simplejson-cpython-311/lib/simplejson/_speedups.cpython-311-x86_64-linux-gnu.so
    0x00007bc516b7d000  0x00007bc516e66000  0x0000000000000000
        /usr/drte/v5/lib64/locale/locale-archive
    0x00007bc516e6b000  0x00007bc516e93000  0x0000000000000000
        /usr/drte/v5/lib64/libc.so.6
    0x00007bc516e93000  0x00007bc517014000  0x0000000000000028
        /usr/drte/v5/lib64/libc.so.6
    0x00007bc517014000  0x00007bc51706c000  0x00000000000001a9
        /usr/drte/v5/lib64/libc.so.6
    0x00007bc51706c000  0x00007bc51706d000  0x0000000000000201
        /usr/drte/v5/lib64/libc.so.6
    0x00007bc51706d000  0x00007bc517071000  0x0000000000000201
        /usr/drte/v5/lib64/libc.so.6
    0x00007bc517071000  0x00007bc517073000  0x0000000000000205
        /usr/drte/v5/lib64/libc.so.6
    0x00007bc51707b000  0x00007bc51707e000  0x0000000000000000
        /usr/drte/v5/lib64/libgcc_s.so.1
    0x00007bc51707e000  0x00007bc517090000  0x0000000000000003
        /usr/drte/v5/lib64/libgcc_s.so.1
    0x00007bc517090000  0x00007bc517093000  0x0000000000000015
        /usr/drte/v5/lib64/libgcc_s.so.1
    0x00007bc517093000  0x00007bc517094000  0x0000000000000017
        /usr/drte/v5/lib64/libgcc_s.so.1
    0x00007bc517094000  0x00007bc517095000  0x0000000000000018
        /usr/drte/v5/lib64/libgcc_s.so.1
    0x00007bc517095000  0x00007bc517136000  0x0000000000000000
        /usr/drte/v5/lib64/libstdc++.so.6
    0x00007bc517136000  0x00007bc51722b000  0x00000000000000a1
        /usr/drte/v5/lib64/libstdc++.so.6
    0x00007bc51722b000  0x00007bc517297000  0x0000000000000196
        /usr/drte/v5/lib64/libstdc++.so.6
    0x00007bc517297000  0x00007bc517298000  0x0000000000000202
        /usr/drte/v5/lib64/libstdc++.so.6
    0x00007bc517298000  0x00007bc5172a3000  0x0000000000000202
        /usr/drte/v5/lib64/libstdc++.so.6
    0x00007bc5172a3000  0x00007bc5172a6000  0x000000000000020d
        /usr/drte/v5/lib64/libstdc++.so.6
    0x00007bc5172a9000  0x00007bc5172b7000  0x0000000000000000
        /usr/drte/v5/lib64/libm.so.6
    0x00007bc5172b7000  0x00007bc517330000  0x000000000000000e
        /usr/drte/v5/lib64/libm.so.6
    0x00007bc517330000  0x00007bc51738b000  0x0000000000000087
        /usr/drte/v5/lib64/libm.so.6
    0x00007bc51738b000  0x00007bc51738c000  0x00000000000000e2
        /usr/drte/v5/lib64/libm.so.6
    0x00007bc51738c000  0x00007bc51738d000  0x00000000000000e2
        /usr/drte/v5/lib64/libm.so.6
    0x00007bc51738d000  0x00007bc51738e000  0x00000000000000e3
        /usr/drte/v5/lib64/libm.so.6
    0x00007bc51738e000  0x00007bc51738f000  0x0000000000000000
        /usr/drte/v5/lib64/libcrypt.so.1
    0x00007bc51738f000  0x00007bc517395000  0x0000000000000001
        /usr/drte/v5/lib64/libcrypt.so.1
    0x00007bc517395000  0x00007bc517397000  0x0000000000000007
        /usr/drte/v5/lib64/libcrypt.so.1
    0x00007bc517397000  0x00007bc517398000  0x0000000000000009
        /usr/drte/v5/lib64/libcrypt.so.1
    0x00007bc517398000  0x00007bc517399000  0x0000000000000009
        /usr/drte/v5/lib64/libcrypt.so.1
    0x00007bc517399000  0x00007bc51739a000  0x000000000000000a
        /usr/drte/v5/lib64/libcrypt.so.1
    0x00007bc5173ca000  0x00007bc5173cc000  0x0000000000000000
        /usr/drte/v5/lib64/ld-linux-x86-64.so.2
    0x00007bc5173cc000  0x00007bc5173f4000  0x0000000000000002
        /usr/drte/v5/lib64/ld-linux-x86-64.so.2
    0x00007bc5173f4000  0x00007bc5173ff000  0x000000000000002a
        /usr/drte/v5/lib64/ld-linux-x86-64.so.2
    0x00007bc517400000  0x00007bc517402000  0x0000000000000035
        /usr/drte/v5/lib64/ld-linux-x86-64.so.2
    0x00007bc517402000  0x00007bc517404000  0x0000000000000037
        /usr/drte/v5/lib64/ld-linux-x86-64.so.2
  CORE                 0x00000200	NT_FPREGSET (floating point registers)
  LINUX                0x00000a88	NT_X86_XSTATE (x86 XSAVE extended state)
   description data: 7f 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 1f 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 52 0a 33 00 00 00 00 ce 54 0a 33 00 00 00 00 ce 54 0a 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 e0 32 40 17 c5 7b 00 00 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e7 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a2 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 04 00 00 00 00 ef 01 00 00 00 00 00 00 ff 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 6d 70 6f 72 74 6c 69 62 6d 70 6f 72 74 6c 69 62 5f 65 78 74 65 72 6e 61 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 54 55 55 55 00 00 00 00 
  CORE                 0x00000150	NT_PRSTATUS (prstatus structure)
  CORE                 0x00000200	NT_FPREGSET (floating point registers)
  LINUX                0x00000a88	NT_X86_XSTATE (x86 XSAVE extended state)
   description data: 7f 03 22 04 00 00 00 00 a5 49 9c 10 c5 7b 00 00 00 00 00 00 00 00 00 00 a2 1f 00 00 ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 61 0d d1 d4 3c be 7f e4 fc 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 fc 43 4b 2c b3 ce 81 98 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 f8 03 c0 00 00 00 00 00 00 f5 fc 43 4b 2c b3 ce 81 98 3f 00 00 00 00 00 00 2c 65 19 e2 58 17 b7 d1 f1 3f 00 00 00 00 00 00 00 00 00 00 00 00 00 c0 ff 7f 00 00 00 00 00 00 48 c3 03 33 00 00 00 00 20 c3 03 33 00 00 00 00 20 c3 03 33 00 00 00 00 00 00 00 00 00 00 00 00 48 c3 03 33 00 00 00 00 20 c3 03 33 00 00 00 00 b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce cf d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db dc dd de df e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb ec ed ee ef f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff d0 30 e0 00 00 00 00 00 a0 67 db 00 00 00 00 00 04 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 58 86 e0 00 00 00 00 00 30 95 b3 15 c5 7b 00 00 30 95 b3 15 c5 7b 00 00 00 00 00 00 00 00 00 00 70 9a 1d 16 c5 7b 00 00 90 75 e8 15 c5 7b 00 00 38 00 00 00 00 00 00 00 1d 00 00 00 00 00 00 00 60 88 ae 16 c5 7b 00 00 30 27 f2 0f c5 7b 00 00 30 27 f2 0f c5 7b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e7 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a3 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 3e 00 00 00 00 00 00 00 00 00 00 00 00 ff 07 ff 07 00 00 00 00 fe 00 00 00 00 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4a 53 4f 4e 20 70 61 72 73 65 20 65 72 72 6f 72 3a 20 4d 69 73 73 69 6e 67 20 61 20 63 6f 6d 6d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 61 20 6f 72 20 27 7d 27 20 61 66 74 65 72 20 61 6e 20 6f 62 6a 65 63 74 20 6d 65 6d 62 65 72 2e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 61 66 74 65 72 20 61 6e 20 6f 62 6a 65 63 74 20 6d 65 6d 62 65 72 2e 20 69 6e 20 72 6f 77 20 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 65 20 65 72 72 6f 72 3a 20 4d 69 73 73 69 6e 67 20 61 20 63 6f 6d 6d 61 20 6f 72 20 27 7d 27 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 72 74 79 2f 61 72 72 6f 77 2f 6a 73 6f 6e 5f 74 65 73 74 2e 72 75 6e 66 69 6c 65 73 2f 5f 5f 6d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6e 5f 5f 2f 62 61 7a 65 6c 2d 6f 75 74 2f 6b 38 2d 64 62 67 2f 62 69 6e 2f 74 68 69 72 64 70 61 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 66 37 35 34 33 32 34 34 61 61 34 31 36 66 39 36 33 2f 65 78 65 63 72 6f 6f 74 2f 5f 5f 6d 61 69 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 61 74 65 72 0a 74 68 61 6e 20 61 6e 79 20 6f 74 68 65 72 20 6e 6f 6e 2d 6e 75 6c 6c 20 76 61 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6e 41 61 5f 35 37 4f 62 6a 65 5f 29 00 00 00 00 50 41 4f 37 41 59 5f 41 20 2a 20 20 5f 20 20 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 36 2f 24 33 2d 30 3b 61 26 3d 41 0b 1f 45 4e 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 36 2f 24 33 2d 30 3b 61 26 3d 41 0b 1f 45 4e 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 54 55 55 55 00 00 00 00 

@pablogsal
Copy link
Member

Ok I think I got this.

I will update my PR in one hour

@pablogsal
Copy link
Member

@jhance I updated the PR can you give it another go?

@jhance
Copy link
Author

jhance commented Jan 24, 2025

Yeah it works.

@pablogsal
Copy link
Member

Ok, I will clean it up and merge it soon. Thanks for all the patience and all the help and for insisting for us to fix the issue :)

@jhance
Copy link
Author

jhance commented Jan 24, 2025

Thank you for supporting our obscure python-built-with-bazel setup

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants