✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ beluga.o2switch.net ​🇻​♯➤ 4.18.0-553.123.2.lve.el8.x86_64 #1 SMP 🇾​♯➤ 2026

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 185.154.139.77 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.84
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗙𝗙 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ 𝗔𝗟𝗟 𝗪𝗢𝗥𝗞𝗜𝗡𝗚....

𝗛𝗢𝗠𝗘
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /opt/alt/python36/lib64/python3.6/Tools/scripts//combinerefs.py
#! /opt/alt/python36/bin/python3.6

"""
combinerefs path

A helper for analyzing PYTHONDUMPREFS output.

When the PYTHONDUMPREFS envar is set in a debug build, at Python shutdown
time Py_FinalizeEx() prints the list of all live objects twice:  first it
prints the repr() of each object while the interpreter is still fully intact.
After cleaning up everything it can, it prints all remaining live objects
again, but the second time just prints their addresses, refcounts, and type
names (because the interpreter has been torn down, calling repr methods at
this point can get into infinite loops or blow up).

Save all this output into a file, then run this script passing the path to
that file.  The script finds both output chunks, combines them, then prints
a line of output for each object still alive at the end:

    address refcnt typename repr

address is the address of the object, in whatever format the platform C
produces for a %p format code.

refcnt is of the form

    "[" ref "]"

when the object's refcount is the same in both PYTHONDUMPREFS output blocks,
or

    "[" ref_before "->" ref_after "]"

if the refcount changed.

typename is object->ob_type->tp_name, extracted from the second PYTHONDUMPREFS
output block.

repr is repr(object), extracted from the first PYTHONDUMPREFS output block.
CAUTION:  If object is a container type, it may not actually contain all the
objects shown in the repr:  the repr was captured from the first output block,
and some of the containees may have been released since then.  For example,
it's common for the line showing the dict of interned strings to display
strings that no longer exist at the end of Py_FinalizeEx; this can be recognized
(albeit painfully) because such containees don't have a line of their own.

The objects are listed in allocation order, with most-recently allocated
printed first, and the first object allocated printed last.


Simple examples:

    00857060 [14] str '__len__'

The str object '__len__' is alive at shutdown time, and both PYTHONDUMPREFS
output blocks said there were 14 references to it.  This is probably due to
C modules that intern the string "__len__" and keep a reference to it in a
file static.

    00857038 [46->5] tuple ()

46-5 = 41 references to the empty tuple were removed by the cleanup actions
between the times PYTHONDUMPREFS produced output.

    00858028 [1025->1456] str '<dummy key>'

The string '<dummy key>', which is used in dictobject.c to overwrite a real
key that gets deleted, grew several hundred references during cleanup.  It
suggests that stuff did get removed from dicts by cleanup, but that the dicts
themselves are staying alive for some reason. """

import re
import sys

# Generate lines from fileiter.  If whilematch is true, continue reading
# while the regexp object pat matches line.  If whilematch is false, lines
# are read so long as pat doesn't match them.  In any case, the first line
# that doesn't match pat (when whilematch is true), or that does match pat
# (when whilematch is false), is lost, and fileiter will resume at the line
# following it.
def read(fileiter, pat, whilematch):
    for line in fileiter:
        if bool(pat.match(line)) == whilematch:
            yield line
        else:
            break

def combine(fname):
    f = open(fname)

    fi = iter(f)

    for line in read(fi, re.compile(r'^Remaining objects:$'), False):
        pass

    crack = re.compile(r'([a-zA-Z\d]+) \[(\d+)\] (.*)')
    addr2rc = {}
    addr2guts = {}
    before = 0
    for line in read(fi, re.compile(r'^Remaining object addresses:$'), False):
        m = crack.match(line)
        if m:
            addr, addr2rc[addr], addr2guts[addr] = m.groups()
            before += 1
        else:
            print('??? skipped:', line)

    after = 0
    for line in read(fi, crack, True):
        after += 1
        m = crack.match(line)
        assert m
        addr, rc, guts = m.groups() # guts is type name here
        if addr not in addr2rc:
            print('??? new object created while tearing down:', line.rstrip())
            continue
        print(addr, end=' ')
        if rc == addr2rc[addr]:
            print('[%s]' % rc, end=' ')
        else:
            print('[%s->%s]' % (addr2rc[addr], rc), end=' ')
        print(guts, addr2guts[addr])

    f.close()
    print("%d objects before, %d after" % (before, after))

if __name__ == '__main__':
    combine(sys.argv[1])


Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
25 Jul 2024 8.41 AM
root / linksafe
0755
__pycache__
--
25 Jul 2024 8.41 AM
root / linksafe
0755
2to3
0.094 KB
4 Sep 2021 3.49 AM
root / linksafe
0755
README
4.669 KB
4 Sep 2021 3.49 AM
root / linksafe
0644
abitype.py
5.453 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
analyze_dxp.py
4.085 KB
17 Apr 2024 5.19 PM
root / linksafe
0644
byext.py
3.835 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
byteyears.py
1.622 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
checkpip.py
0.786 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
checkpyc.py
2.174 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
cleanfuture.py
8.432 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
combinerefs.py
4.325 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
copytime.py
0.658 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
crlf.py
0.628 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
db2pickle.py
3.557 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
diff.py
2.215 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
dutree.doc
2.185 KB
4 Sep 2021 3.49 AM
root / linksafe
0644
dutree.py
1.581 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
eptags.py
1.469 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
find-uname.py
1.179 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
find_recursionlimit.py
3.912 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
finddiv.py
2.449 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
findlinksto.py
1.057 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
findnocoding.py
2.895 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
fixcid.py
9.826 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
fixdiv.py
13.567 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
fixheader.py
1.19 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
fixnotice.py
2.998 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
fixps.py
0.89 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
generate_opcode_h.py
1.466 KB
17 Apr 2024 5.19 PM
root / linksafe
0644
get-remote-certificate.py
2.656 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
google.py
0.521 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
gprof2html.py
2.188 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
h2py.py
5.483 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
highlight.py
8.959 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
idle3
0.094 KB
4 Sep 2021 3.49 AM
root / linksafe
0755
ifdef.py
3.644 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
import_diagnostics.py
0.987 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
lfcr.py
0.636 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
linktree.py
2.394 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
lll.py
0.745 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
mailerdaemon.py
7.863 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
make_ctype.py
2.238 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
md5sum.py
2.46 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
mkreal.py
1.604 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
ndiff.py
3.741 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
nm2def.py
2.407 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
objgraph.py
5.851 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
parse_html5_entities.py
3.917 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
parseentities.py
1.667 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
patchcheck.py
9.631 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
pathfix.py
5.097 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
pdeps.py
3.834 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
pickle2db.py
3.938 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
pindent.py
16.736 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
ptags.py
1.209 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
pydoc3
0.078 KB
4 Sep 2021 3.49 AM
root / linksafe
0755
pysource.py
3.785 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
pyvenv
0.427 KB
4 Sep 2021 3.49 AM
root / linksafe
0755
reindent-rst.py
0.272 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
reindent.py
11.385 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
rgrep.py
1.452 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
run_tests.py
1.874 KB
17 Apr 2024 5.19 PM
root / linksafe
0644
serve.py
1.146 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
suff.py
0.509 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
svneol.py
3.423 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
texi2html.py
68.542 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
treesync.py
5.831 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
untabify.py
1.276 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
update_file.py
0.744 KB
17 Apr 2024 5.19 PM
root / linksafe
0644
which.py
1.605 KB
17 Apr 2024 5.19 PM
root / linksafe
0755
win_add2path.py
1.619 KB
17 Apr 2024 5.19 PM
root / linksafe
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF