[Bug default/24274] New: low-mem files processed in multifile mode
vries at gcc dot gnu.org
sourceware-bugzilla@sourceware.org
Tue Jan 1 00:00:00 GMT 2019
https://sourceware.org/bugzilla/show_bug.cgi?id=24274
Bug ID: 24274
Summary: low-mem files processed in multifile mode
Product: dwz
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: default
Assignee: nobody at sourceware dot org
Reporter: vries at gcc dot gnu.org
CC: dwz at sourceware dot org
Target Milestone: ---
Consider four executables, a.out and b.out a hello world example, and c.out and
d.out copied from the dwz executable itself:
...
$ gcc hello.c -g ; cp a.out b.out
$ cp dwz c.out ; cp c.out d.out
...
This gives us two executables with 130 DIEs, and two executables with 5356
DIEs:
...
$ readelf -w a.out | grep '(DW_TAG' | wc -l
130
$ readelf -w b.out | grep '(DW_TAG' | wc -l
130
$ readelf -w c.out | grep '(DW_TAG' | wc -l
5356
$ readelf -w d.out | grep '(DW_TAG' | wc -l
5356
...
Now consider a gdb script that traces the dwz invocations:
...
$ cat gdb.script
b dwz
commands
continue
end
run
...
We run in multifile mode, with a low-mem limit of 1000 dies, and trace into
LOG:
...
$ gdb \
-batch \
-x gdb.script \
--args dwz -m3 -l1000 a.out b.out c.out d.out \
> LOG 2>&1
...
which we then summarize as follows:
...
$ grep 'dwz (' LOG | awk '{print $5}'
"a.out",
"b.out",
"c.out",
"c.out",
"d.out",
"d.out",
"a.out",
"b.out",
"c.out",
"d.out",
...
The first 6 invocations are according to plan:
- a.out and b.out have fewer DIEs than 1000, and are processed.
- c.out and d.out have more DIEs than 1000, and are each processed twice:
- once in regular mode (where dwz stops at a 1000 processed DIEs and returns
2), and
- once in low-mem mode.
However, then all 4 files are once more processed in fi_multifile mode, while
the intention is that c.out and d.out (being bigger than the low-mem limit) are
not processed anymore.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Dwz
mailing list