[Bug libbacktrace/89273] New: Count inlined functions in skip parm for backtrace_full and backtrace_print
vries at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Feb 10 04:03:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89273
Bug ID: 89273
Summary: Count inlined functions in skip parm for
backtrace_full and backtrace_print
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Severity: enhancement
Priority: P3
Component: libbacktrace
Assignee: unassigned at gcc dot gnu.org
Reporter: vries at gcc dot gnu.org
CC: ian at gcc dot gnu.org
Target Milestone: ---
[ Proposed here: https://gcc.gnu.org/ml/gcc-patches/2019-02/msg00579.html ]
The btest test-case modified like this:
...
diff --git a/libbacktrace/btest.c b/libbacktrace/btest.c
index b1c2a2a860d..0925882aed1 100644
--- a/libbacktrace/btest.c
+++ b/libbacktrace/btest.c
@@ -140,7 +140,7 @@ f13 (int f1line, int f2line)
data.failed = 0;
f3line = __LINE__ + 1;
- i = backtrace_full (state, 0, callback_one, error_callback_one, &data);
+ i = backtrace_full (state, 1, callback_one, error_callback_one, &data);
if (i != 0)
{
@@ -148,9 +148,9 @@ f13 (int f1line, int f2line)
data.failed = 1;
}
- check ("test2", 0, all, f3line, "f13", "btest.c", &data.failed);
- check ("test2", 1, all, f2line, "f12", "btest.c", &data.failed);
- check ("test2", 2, all, f1line, "test2", "btest.c", &data.failed);
+ //check ("test2", 0, all, f3line, "f13", "btest.c", &data.failed);
+ check ("test2", 0, all, f2line, "f12", "btest.c", &data.failed);
+ check ("test2", 1, all, f1line, "test2", "btest.c", &data.failed);
printf ("%s: backtrace_full inline\n", data.failed ? "FAIL" : "PASS");
...
fails like this:
...
PASS: backtrace_full noinline
test2: [0]: got ../csu/libc-start.c expected btest.c
test2: [0]: got 308 expected 126
test2: [0]: got __libc_start_main expected f12
FAIL: backtrace_full inline
PASS: backtrace_simple noinline
PASS: backtrace_simple inline
PASS: backtrace_syminfo variable
...
This is expected behaviour: "SKIP is the number of frames to skip", so the
inline functions don't count.
But arguably, it would be more intuitive if the skip parameter matched the
reduction in number of callbacks in backtrace_full.
More information about the Gcc-bugs
mailing list