Thursday, August 03, 2023

Re: [fixbug] devel/valgrind: display symblo

From: Masato Asou <asou@soum.co.jp>
Date: Fri, 04 Aug 2023 07:57:42 +0900 (JST)

> From: Omar Polo <op@omarpolo.com>
> Date: Thu, 03 Aug 2023 23:36:06 +0200
>
>>> > other than this, while the changes are a bit over my head, I've
>>> > quickly tested it and it seems to be working. So, fwiw, OK op@.
>>> >
>>> > I still get some ??? entries, for example with grep:
>>> >
>>> > $ make clean obj
>>> > [...]
>>> > $ make DEBUG='-O0 -g3'
>>> > [...]
>>> > $ valgrind obj/grep foo Makefile
>>> > [...]
>>> > ==31128== Use of uninitialised value of size 8
>>> > ==31128== at 0x49D935D: ??? (in obj/grep)
>>> > ==31128== by 0x10F385: grep_reallocarray (util.c:615)
>>> > ==31128== by 0x10D626: add_pattern (grep.c:186)
>>> > ==31128== by 0x10D426: add_patterns (grep.c:224)
>>> > ==31128== by 0x10D03C: main (grep.c:473)
>>> > [...]
>>>
>>> I also tried DEBUG="-O0 -g3", but ??? was not displayed. Is your
>>> libc.so stripped?
>>
>> nope. while i've rebuilt and installed it, it's not stripped. I can
>> set a breakpoint in, for e.g., reallocarray in egdb and step into libc
>> just fine.
>>
>> Not a blocker for your diff IMHO since it improves the situation.
>> Given the tricky port I guess it's better to have this in.
>
> I will investigate into it again.

I reproduced the problem in my OpenBSD and found the cause. I forget
to attach the diff of coregrind/m_options.c.

comment, ok?
--
ASOU Masato

Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/valgrind/Makefile,v
retrieving revision 1.30
diff -u -p -r1.30 Makefile
--- Makefile 18 Jul 2023 06:17:15 -0000 1.30
+++ Makefile 3 Aug 2023 23:09:52 -0000
@@ -5,6 +5,7 @@ CATEGORIES = devel

V = 3.21.0
DISTNAME = valgrind-${V}
+REVISION = 0
EXTRACT_SUFX = .tar.bz2

MASTER_SITES = https://sourceware.org/pub/valgrind/
Index: patches/patch-coregrind_m_debuginfo_debuginfo_c
===================================================================
RCS file: /cvs/ports/devel/valgrind/patches/patch-coregrind_m_debuginfo_debuginfo_c,v
retrieving revision 1.1
diff -u -p -r1.1 patch-coregrind_m_debuginfo_debuginfo_c
--- patches/patch-coregrind_m_debuginfo_debuginfo_c 18 Jul 2023 06:17:15 -0000 1.1
+++ patches/patch-coregrind_m_debuginfo_debuginfo_c 3 Aug 2023 23:09:52 -0000
@@ -27,7 +27,17 @@
ok = ML_(read_elf_debug_info)( di );
# elif defined(VGO_darwin)
ok = ML_(read_macho_debug_info)( di );
-@@ -1347,7 +1347,7 @@
+@@ -1265,6 +1265,9 @@
+ || defined(VGA_mips64) || defined(VGA_nanomips)
+ is_rx_map = seg->hasR && seg->hasX;
+ is_rw_map = seg->hasR && seg->hasW;
++# elif defined(VGO_openbsd)
++ is_rx_map = seg->hasX;
++ is_rw_map = seg->hasR && seg->hasW;
+ # elif defined(VGA_amd64) || defined(VGA_ppc64be) || defined(VGA_ppc64le) \
+ || defined(VGA_arm) || defined(VGA_arm64)
+ is_rx_map = seg->hasR && seg->hasX && !seg->hasW;
+@@ -1347,7 +1350,7 @@

No comments:

Post a Comment