This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: Warning: Too many CFI instuctions
- From: fche at redhat dot com (Frank Ch. Eigler)
- To: Mark Wielaard <mark at klomp dot org>
- Cc: Torsten Polle <Torsten dot Polle at gmx dot de>, systemtap at sourceware dot org
- Date: Tue, 05 Feb 2019 15:44:20 -0500
- Subject: Re: Warning: Too many CFI instuctions
- References: <ECDAF54D-9182-4239-930F-59AE9747423C@gmx.de> <20181126175743.GJ31795@wildebeest.org>
mark wrote ... in a necrothread long ago:
> [...]
>> I get the following warning when calculating backtraces with
>> SystemTap: "Too many CFI instuctions“. Therefore I change the output
>> of the warning to print out the number of needed instructions.
>> Would it be possible to either increase the size or make it configurable?
>
> #ifndef MAX_CFI
> #define MAX_CFI 512
> #endif
And this was done.
> would make it possible to just use stap -DMAX_CFI=8192
> (untested)
> But what has 5000+ CFI instructions? That seems excessive.
Just for giggles, I ran
% eu-readelf -wframe BINARY |
awk 'BEGIN { state=0; max=0 }
/initial_location/ { name=$0}
/Program:/ { state=1; count=0; next }
/^.....*/ && (state==1) { count ++ }
/^$/ && (state==1) { print(name, " CFI-length:", count); state=0;
if (max < count) { max = count }}
END { print("max cfi count: ", max)}' | grep max.cfi.count
on some random binaries in fedora29 x86-64.
libavcodec.so.58: 3176
libQt5WebEngineCore.so.5.11.3: 4856
mame: 1805
libxul.so: 2175
vmlinux: 234
so these are real. I'll bump up the number to 8192, which I haven't
seen anything get close.
- FChE