[valgrind] [Bug 211031] valgrind doesn't show symbols for programs compiled with mingw's gcc

2020-05-25 Thread Jefferson Carpenter
https://bugs.kde.org/show_bug.cgi?id=211031

--- Comment #29 from Jefferson Carpenter  ---
(In reply to Austin English from comment #28)
> Created attachment 128170 [details]
> the impossible happened
> 
> Upon manual review, it didn't assert, but the impossible happened:
> 
> PUTI(136:8xI8)[t1,0] = 0x0:I8   
> 
> 
> 
> vex: the `impossible' happened: 
> 
>stmt_is_guardable: unhandled stmt
> 
> vex storage: T total 9579053828 bytes allocated 
> 
> vex storage: P total 496 bytes allocated
> 
> 
> 
> valgrind: the 'impossible' happened:
> 
>LibVEX called failure_exit().
> 
>  
> 
> in dlls/atl/tests/registrar.c

I ran the same test (valgrind --trace-children=yes
../../../../wine-source/tools/runtest -q -P ../../../loader/wine -T ../../.. -M
atl.dll -p atl_test.exe.so registrar), and the impossible didn't happen on my
machine.  (My configure command included --without-mingw because that's what
causes the .exe.so files to be generated).  Can you confirm that the bug
happens with my patch applied and not on master?  It seems like some spooky
action at a distance if my patch caused new problems generating IR.

-- 
You are receiving this mail because:
You are watching all bug changes.

[valgrind] [Bug 211031] valgrind doesn't show symbols for programs compiled with mingw's gcc

2020-05-04 Thread Jefferson Carpenter
https://bugs.kde.org/show_bug.cgi?id=211031

Jefferson Carpenter  changed:

   What|Removed |Added

 Attachment #126950|0   |1
is obsolete||
 Attachment #126977|0   |1
is obsolete||

--- Comment #26 from Jefferson Carpenter  ---
Created attachment 128132
  --> https://bugs.kde.org/attachment.cgi?id=128132=edit
Add read_pe_debug_info: v3

Apparently the attachment didn't attach.  Attached it again.

-- 
You are receiving this mail because:
You are watching all bug changes.

[valgrind] [Bug 211031] valgrind doesn't show symbols for programs compiled with mingw's gcc

2020-05-04 Thread Jefferson Carpenter
https://bugs.kde.org/show_bug.cgi?id=211031

--- Comment #25 from Jefferson Carpenter  ---
Removed the spurious output.  Did not manually add a mapping, to fix the
"DiCfsi invariant (1) verification failed" message.  Also removed the dwarf3
code - the patch still seems to work for me, and native PE files will of course
not have dwarf3 debug info.

There are still some things I'm very unsure about whether this patch does
correctly.

1: Latest version, I changed the search_all_symtabs logic to search for text
sections using di->text_present and so on, instead of looking at di->fsm
properties.  It seems logical, but since I'm not very familiar with the
Valgrind code it could be a breaking change.  Someone would have to look at it.

2: The way read_pe_debug_info is called into is IMO a messy hack.  I did add a
function for detecting whether a binary is a PE object file, but I think
passing a boolean argument into di_notify_ACHIEVE_ACCEPT_STATE is not the
cleanest way to do it.  The way PDB debug info is requested is through client
requests, so maybe PE debug info should be requested the same way.

3: There's generally a little bit of code duplication.  Some duplicate "if
(!ML_(img_valid)(...))" statements I could try to combine or replace with a
macro.  Also the PE executable file format is modeled both in readpdb.c and
readpe.c currently and should be factored out into a header.  I just didn't
bother to do that at this early stage.

-- 
You are receiving this mail because:
You are watching all bug changes.

[valgrind] [Bug 211031] valgrind doesn't show symbols for programs compiled with mingw's gcc

2020-03-24 Thread Jefferson Carpenter
https://bugs.kde.org/show_bug.cgi?id=211031

--- Comment #22 from Jefferson Carpenter  ---
(In reply to Jefferson Carpenter from comment #21)
> I created the patch using git format-patch, so you should apply it using
> either
> 
> $ git apply 0001-Add-read_pe_debug_info-V2.patch
> 
> or
> 
> $ patch -p 1 <0001-Add-read_pe_debug_info-V2.patch
> 
> I'm still not clear on the best way to create patch files.

Here's what I think happened - by default patch strips all directories off of
the path in the patch file.  Since Makefile.am does exist in the root directory
patch attempts to apply HUNK 1 but fails because HUNK 1 is actually for the
coregrind/Makefile.am file.  (Then, since coregrind/m_debuginfo/debuginfo.c is
modified but debuginfo.c does not exist in the root directory of valgrind,
patch has to ask for its directory.  priv_readpe.h and readpe.c are both new
files, but patch again strips their directories and places them in the root
directory).  Moral of the story: run patch with a -p option if the patch file
has knowledge of the directory structure of your project.

-- 
You are receiving this mail because:
You are watching all bug changes.

[valgrind] [Bug 211031] valgrind doesn't show symbols for programs compiled with mingw's gcc

2020-03-24 Thread Jefferson Carpenter
https://bugs.kde.org/show_bug.cgi?id=211031

--- Comment #21 from Jefferson Carpenter  ---
(In reply to Austin English from comment #20)
> Fails to build:
> make[3]: *** No rule to make target 'm_debuginfo/readpe.c', needed by
> 'm_debuginfo/libcoregrind_amd64_linux_a-readpe.o'.  Stop.
> 
> (try 1 compiles okay)

I created the patch using git format-patch, so you should apply it using either

$ git apply 0001-Add-read_pe_debug_info-V2.patch

or

$ patch -p 1 <0001-Add-read_pe_debug_info-V2.patch

I'm still not clear on the best way to create patch files.

-- 
You are receiving this mail because:
You are watching all bug changes.

[valgrind] [Bug 211031] valgrind doesn't show symbols for programs compiled with mingw's gcc

2020-03-23 Thread Jefferson Carpenter
https://bugs.kde.org/show_bug.cgi?id=211031

--- Comment #19 from Jefferson Carpenter  ---
Created attachment 126977
  --> https://bugs.kde.org/attachment.cgi?id=126977=edit
Hackish patch: Add read_pe_debug_info: v2

Fixed some of the most significant lies from my first patch.  No longer assumes
.text is the first section.  Instead of "main.exe" uses the basename of the
executable as the soname (I don't know whether this is even correct).  Uses
correct-looking arenas for allocations.  Correctly sorts symbols in descending
order and corrects addSym calls.

-- 
You are receiving this mail because:
You are watching all bug changes.

[valgrind] [Bug 211031] valgrind doesn't show symbols for programs compiled with mingw's gcc

2020-03-22 Thread Jefferson Carpenter
https://bugs.kde.org/show_bug.cgi?id=211031

--- Comment #18 from Jefferson Carpenter  ---
Created attachment 126950
  --> https://bugs.kde.org/attachment.cgi?id=126950=edit
Hackish patch: Add read_pe_debug_info

-- 
You are receiving this mail because:
You are watching all bug changes.

[valgrind] [Bug 211031] valgrind doesn't show symbols for programs compiled with mingw's gcc

2020-03-22 Thread Jefferson Carpenter
https://bugs.kde.org/show_bug.cgi?id=211031

Jefferson Carpenter  changed:

   What|Removed |Added

 CC||jeffersoncarpenter2@gmail.c
   ||om

--- Comment #17 from Jefferson Carpenter  ---
(In reply to fenrir+kde-bugs from comment #5)
>  I have attached a very hackish patch against valgrind 3.6.0 that I have
> made  to load the informations. It partially works for VLC: I have the file
> and line number working but that's all. e.g.

In order to get the function names, you may have to iterate through the PE/COFF
symbol table, and insert the symbols into the debuginfo.

I have also attached a very hackish patch, one that reads debug info from the
PE32 file itself having been compiled with mingw.  It does not support PE64. 
In addition to being hackish, it contains numerous lies.  It currently assumes
that the .text section is sections[0] for no particular reason.  It also adds a
DebugInfoMap covering the range [image_base, image_base + size_of_image)
assuming that's where the image will be during execution (I think a better way
to do that would be to intercept the call that moves it there, be that a
memcpy, memmove, mmap, or what have you).

Furthermore, I was not able to tell if there is a way to get the ending address
of symbols - only the starting address.  So I have it pushing all of the
symbols into an array, sorting it descending by symbol starting address, and
setting each symbol's address range to go from its starting address to just
before starting address of the next symbol.  (The last symbol is then said to
end at the end of the text section.)

-- 
You are receiving this mail because:
You are watching all bug changes.

[valgrind] [Bug 418795] command line to inform valgrind of symbols for code that is loaded outside of the normal flow

2020-03-12 Thread Jefferson Carpenter
https://bugs.kde.org/show_bug.cgi?id=418795

Jefferson Carpenter  changed:

   What|Removed |Added

 Resolution|--- |NOT A BUG
 Status|REPORTED|RESOLVED

--- Comment #2 from Jefferson Carpenter  ---
Sorry, this isn't very well defined.

-- 
You are receiving this mail because:
You are watching all bug changes.

[valgrind] [Bug 418795] command line to inform valgrind of symbols for code that is loaded outside of the normal flow

2020-03-12 Thread Jefferson Carpenter
https://bugs.kde.org/show_bug.cgi?id=418795

--- Comment #1 from Jefferson Carpenter  ---
It looks like VG_(di_notify_mmap) could be modified to load symbols for the exe
in this case.  That would be a better solution.

-- 
You are receiving this mail because:
You are watching all bug changes.

[valgrind] [Bug 418795] New: command line to inform valgrind of symbols for code that is loaded outside of the normal flow

2020-03-12 Thread Jefferson Carpenter
https://bugs.kde.org/show_bug.cgi?id=418795

Bug ID: 418795
   Summary: command line to inform valgrind of symbols for code
that is loaded outside of the normal flow
   Product: valgrind
   Version: 3.15 SVN
  Platform: Other
OS: Linux
Status: REPORTED
  Severity: wishlist
  Priority: NOR
 Component: general
  Assignee: jsew...@acm.org
  Reporter: jeffersoncarpent...@gmail.com
  Target Milestone: ---

SUMMARY

gdb has an "add-symbol-file" command to inform the debugger of the symbols to
use for code loaded into a certain address.  It would be nice if Valgrind had
this feature too.  In addition to giving more complete stack traces for errors
that occur in dynamically loaded code, this can be used in conjunction with
suppression files to suppress errors in such code.

Use case: Debugging windows executables under wine, the subroutine `chkstk` is
called, and part of the correct behavior for that function is to read past the
end of the stack.  These executables are loaded outside of the normal dlopen
flow, and so valgrind does not have symbol information.  The chkstk errors can
be suppressed using --ignore-range-below-sp, but this could prevent valgrind
from picking up real errors.


STEPS TO REPRODUCE (Desired behavior):

1. valgrind --suppressions=chkstk.supp --add-symbol-file=./main.exe@0x0040100
--trace-children-yes wine main.exe

No desire on the specific command line syntax for adding symbol info.


OBSERVED RESULT (Desired result):

With a suitable suppressions file, valgrind ignores errors that occur in
__chkstk_ms.

Without the suppressions file, trace includes:

Invalid read of size 4
   at 0x402424: __chkstk_ms (cygwin.S:158)

Instead of:

Invalid read of size 4
   at 0x402424: ???


ADDITIONAL INFORMATION:

I asked about this feature in this email thread
https://sourceforge.net/p/valgrind/mailman/message/36810610/

Julian did suggest using --ignore-range-below-sp but did not say the feature
was a bad idea, so I am posting it here.

-- 
You are receiving this mail because:
You are watching all bug changes.

[valgrind] [Bug 414278] New: VG_(memcpy) used for overlapping moves

2019-11-18 Thread Jefferson Carpenter
https://bugs.kde.org/show_bug.cgi?id=414278

Bug ID: 414278
   Summary: VG_(memcpy) used for overlapping moves
   Product: valgrind
   Version: 3.15 SVN
  Platform: unspecified
OS: Linux
Status: REPORTED
  Severity: minor
  Priority: NOR
 Component: general
  Assignee: jsew...@acm.org
  Reporter: jeffersoncarpent...@gmail.com
  Target Milestone: ---

Created attachment 124003
  --> https://bugs.kde.org/attachment.cgi?id=124003=edit
Specify that memcpy supports overlapping moves

This is used to positive effect in some cases for performance of XArray etc. 
It would be a good idea to specify that VG_(memcpy) additionally supports
overlapping areas if dest < src, since memcpy explicitly states the contrary.

-- 
You are receiving this mail because:
You are watching all bug changes.

[systemsettings] [Bug 373984] xmodmap settings interfere with shortcut keys

2016-12-20 Thread Jefferson Carpenter
https://bugs.kde.org/show_bug.cgi?id=373984

--- Comment #1 from Jefferson Carpenter <jeffersoncarpent...@gmail.com> ---
Created attachment 102912
  --> https://bugs.kde.org/attachment.cgi?id=102912=edit
the xmodmap file i'm using

-- 
You are receiving this mail because:
You are watching all bug changes.

[systemsettings] [Bug 373984] New: xmodmap settings interfere with shortcut keys

2016-12-20 Thread Jefferson Carpenter
https://bugs.kde.org/show_bug.cgi?id=373984

Bug ID: 373984
   Summary: xmodmap settings interfere with shortcut keys
   Product: systemsettings
   Version: 5.8.4
  Platform: Other
OS: Linux
Status: UNCONFIRMED
  Severity: normal
  Priority: NOR
 Component: kcm_keys
  Assignee: k...@michael-jansen.biz
  Reporter: jeffersoncarpent...@gmail.com
  Target Milestone: ---

I use xmodmap to turn my capslock key into a ctrl, my ctrl into an alt, and my
alt into a capslock.  This interferes with KDE keybindings.

Specifically, when I press alt+tab to switch windows, instead of displaying a
window list the window manager takes me back and fourth between the two most
recent windows.  I can assign the key binding like normal using my mapped keys,
just not use it.

As a workaround, I've mapped win+tab to switch windows.  Just submitting this
bug so that you know about this glitch.

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-knotifications] [Bug 373981] Initial volume levels for notifications are loud - weird bug

2016-12-20 Thread Jefferson Carpenter
https://bugs.kde.org/show_bug.cgi?id=373981

Jefferson Carpenter <jeffersoncarpent...@gmail.com> changed:

   What|Removed |Added

Version|unspecified |5.29.0

-- 
You are receiving this mail because:
You are watching all bug changes.

[frameworks-knotifications] [Bug 373981] New: Initial volume levels for notifications are loud - weird bug

2016-12-20 Thread Jefferson Carpenter
https://bugs.kde.org/show_bug.cgi?id=373981

Bug ID: 373981
   Summary: Initial volume levels for notifications are loud -
weird bug
   Product: frameworks-knotifications
   Version: unspecified
  Platform: Other
OS: Linux
Status: UNCONFIRMED
  Severity: normal
  Priority: NOR
 Component: general
  Assignee: mklape...@kde.org
  Reporter: jeffersoncarpent...@gmail.com
CC: kdelibs-b...@kde.org
  Target Milestone: ---

When KDE applications create notifications, the first notification is quite
loud, and subsequent ones are quieter.

For instance, this bug happens each time I open System Settings.  When I modify
a field and then switch to a different tab, the notification is loud. 
Subsequent times, the notification is quiet.

This also appears to affect KDE's desktop's notifications.  The first desktop
notification sound is loud compared to the ones following it.

While jumping out of my seat is a good way to keep the adrenaline pumping, for
now I have disabled all notification sounds as a workaround :)

-- 
You are receiving this mail because:
You are watching all bug changes.