[Bug 1992939] Update Released
Robie Basak
1992939 at bugs.launchpad.net
Wed Jan 31 11:06:17 UTC 2024
The verification of the Stable Release Update for ltrace has completed
successfully and the package is now being released to -updates.
Subsequently, the Ubuntu Stable Release Updates Team is being
unsubscribed and will not receive messages about this bug report. In
the event that you encounter a regression using the package from
-updates please report a new bug using ubuntu-bug and tag the bug report
regression-update so we can easily find any regressions.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1992939
Title:
ltrace produces no debug output at all, workaround is compiling with
"-fcf-protection=none"
Status in ltrace package in Ubuntu:
Fix Released
Status in ltrace source package in Focal:
In Progress
Status in ltrace source package in Jammy:
Fix Released
Status in ltrace source package in Mantic:
Fix Released
Status in ltrace source package in Noble:
Fix Released
Bug description:
[ Impact ]
* ltrace on Intel executable on current Ubuntu produces no debug
output.
* The patch introduces handling of two PLTs on an Intel CET binary.
This requires enabling ARCH_HAVE_LTELF_DATA on x86.
[ Test Plan ]
I'm not sufficiently knowledgeable about this matter to be considered
an expert. I "trust" the patch and the bug reporter. I did sufficient
testing to make sure the patch fixes the issue, and it doesn't
introduce any obvious regression.
* instructions how to reproduce the bug
** run `ltrace ls` on any of the affected release. It will not produce any debug output.
** run ltrace on a hello built using (gcc hello.c -o hello). It will not produce any debug output.
** to see what is the expected output, compile hello.c with -fcf-protection=none. `gcc -fcf-protection=none -o hello hello.c`, then run `ltrace hello`
** another way to see the expected output is to run ltrace on Ubuntu Bionic release. (CET was not enabled by default here in gcc)
* testing the fix
** run the same commands with patched ltrace. It should output the debug symbols.
** steps to build ltrace locally on noble/devel and test
*** clone the repo (git ubuntu clone ltrace ltrace-gu)
*** checkout the branch fix-devel-1992939
*** apply all patches (quilt push -a)
*** ./configure && make
*** ./ltrace <path to hello.out> (should produce debug output)
*** ./ltrace ls (should produce debug output)
* I also did the following regressions tests.
** build a hello (gcc version Ubuntu 7.3.0-16ubuntu3) binary on bionic (mk-sbuild bionic and schroot) and run it with patched ltrace built on noble. it should produce debug output.
** I did the same for Jammy and Focal.
** Compile a hello binary with -fcf-protection=none and ran it with patched ltrace. it should produce debug output.
[ Where problems could occur ]
* There could be a problem if a user is depending on
ARCH_HAVE_LTELF_DATA for x86 being disabled. The chances are very low
though. It has been enabled upstream for since 2013.
[ Other Info ]
* There is a workaround to see debug symbols. Compiling with -fcf-protection=none. See Original bug description for more.
[ Original bug description ]
Hello,
Running ltrace on any executable on current Ubuntu produces no debug output at all.
I have verified the behavior shown below on kinetic and focal.
Compiling with "-fcf-protection=none" seems to be a workaround.
The breakage seems to be related to "Intel CET Support" and the following upstream patch seems relevant:
https://gitlab.com/cespedes/ltrace/-/commit/ec563704ab5ef48bf308924de4ef021c4d0cd2af
More information on how to reproduce follows:
*** kinetic
# cat /etc/os-release
PRETTY_NAME="Ubuntu Kinetic Kudu (development branch)"
NAME="Ubuntu"
VERSION_ID="22.10"
VERSION="22.10 (Kinetic Kudu)"
VERSION_CODENAME=kinetic
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=kinetic
LOGO=ubuntu-logo
# apt install ltrace
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
ltrace is already the newest version (0.7.3-6.1ubuntu6).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
# ltrace ls -d .
.
+++ exited (status 0) +++
FAIL:
$ gcc -o hello hello.c
$ ltrace ./hello
Hello, World!
+++ exited (status 0) +++
SUCCESS:
$ gcc -fcf-protection=none -o hello hello.c
$ ltrace ./hello
puts("Hello, World!"Hello, World!
) = 14
+++ exited (status 0) +++
Thank you,
Vangelis
ProblemType: Bug
DistroRelease: Ubuntu 22.10
Package: ltrace 0.7.3-6.1ubuntu6
Uname: Linux 5.4.72-microsoft-standard-WSL2 x86_64
ApportVersion: 2.23.1-0ubuntu3
Architecture: amd64
CasperMD5CheckResult: unknown
Date: Fri Oct 14 06:40:46 2022
ProcEnviron:
TERM=xterm
PATH=(custom, no user)
SourcePackage: ltrace
UpgradeStatus: No upgrade log present (probably fresh install)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ltrace/+bug/1992939/+subscriptions
More information about the foundations-bugs
mailing list