https://bugs.winehq.org/show_bug.cgi?id=50369
Bug ID: 50369
Summary: Multiple tools for viewing GDI handles/resources list
and GDI leak detection require support for
PEB->GdiSharedHandleTable (GDIView, GDILeaks)
Product: Wine
Version: 6.0-rc3
Hardware: x86-64
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: ntdll
Assignee: wine-bugs(a)winehq.org
Reporter: focht(a)gmx.net
Distribution: ---
Hello folks,
as it says. I know this information can be retrieved tracing processes with
Wine 'gdi' debug channel.
https://source.winehq.org/git/wine.git/blob/56e7cd12ce0ce3bb331a8595b25aedb…
Currently investigating bug 23221 where the application massively leaks GDI
handles. App bug, most likely unrelated to the actual problem of the ticket.
I wanted to see the leakage in a realtime-view with absolute values, leak rate
per second, changes when doing certain UI actions. It's possible to extract
that from Wine trace logs as well using timestamps and filtering for specific
messages but it takes way more effort to associate the leak rate with certain
UI actions (controls).
Multiple tools provide that information in a convenient way. Unfortunately they
rely on the shared handle table being exposed.
---
* https://www.nirsoft.net/utils/gdi_handles.html ("GDIView - View GDI
handles/resources list and detect GDI leaks")
Stable download link via Internet Archive:
https://web.archive.org/web/20201127182337/http://www.nirsoft.net/utils/gdi…
*
https://docs.microsoft.com/en-us/archive/msdn-magazine/2003/january/detect-…
("Detect and Plug GDI Leaks in Your Code with Two Powerful Tools for Windows
XP")
Stable download link via Internet Archive:
https://web.archive.org/web/20170911002438/http://download.microsoft.com/do…
The MSDN article provides the struct layout for entry:
--- quote ---
In his book Windows Graphics Programming: Win32 GDI and DirectDraw (Prentice
Hall, 2002), Feng Huan provides another way to access this table, but he also
describes the structure of each of the 0x4000 entries of this table, as you can
see here:
...
typedef struct {
DWORD pKernelInfo;
WORD ProcessID;
WORD _nCount;
WORD nUpper;
WORD nType;
DWORD pUserInfo;
} GDITableEntry;
--- quote ---
'GDILeaks' self-extractor contains multiple example applications as binaries
and with sources.
https://www.geoffchappell.com/studies/windows/win32/ntdll/structs/peb/index…
--- quote ---
Offset (x86) Offset (x64) Definition Versions
0x94 0xF8 PVOID GdiSharedHandleTable; 3.51 and higher
--- quote ---
The app crashes because the 'PEB->GdiSharedHandleTable' pointer is NULL:
--- snip ---
$ WINEDEBUG=+seh,+relay wine ./GDIView.exe >>log.txt 2>&1
...
0104:Call KERNEL32.GetModuleHandleW(140011eb0 L"ntdll.dll") ret=140004c52
...
0104:Ret KERNEL32.GetModuleHandleW() retval=7bc00000 ret=140004c52
0104:Call KERNEL32.GetProcAddress(7bc00000,140011ec8 "RtlGetCurrentPeb")
ret=140004c67
0104:Ret KERNEL32.GetProcAddress() retval=7bc068e4 ret=140004c67
0104:Call ntdll.RtlGetCurrentPeb() ret=140004c6e
0104:Ret ntdll.RtlGetCurrentPeb() retval=7fffffdaf000 ret=140004c6e
0104:trace:seh:dispatch_exception code=c0000005 flags=0 addr=0000000140004CA6
ip=0000000140004CA6 tid=0104
0104:trace:seh:dispatch_exception info[0]=0000000000000000
0104:trace:seh:dispatch_exception info[1]=0000000000000008
0104:trace:seh:dispatch_exception rax=0000000000000000 rbx=0000000000f314c0
rcx=000000000021ee48 rdx=0000000000000000
0104:trace:seh:dispatch_exception rsi=0000000000000000 rdi=0000000000000000
rbp=0000000000000000 rsp=000000000021edf8
0104:trace:seh:dispatch_exception r8=000000000021ee30 r9=0000000000000000
r10=0000000000000000 r11=0000000000000246
0104:trace:seh:dispatch_exception r12=0000000000000415 r13=0000000000000001
r14=0000000000000000 r15=000000000021f168
0104:trace:seh:call_vectored_handlers calling handler at 000000007B011BA0
code=c0000005 flags=0
0104:trace:seh:call_vectored_handlers handler at 000000007B011BA0 returned 0
0104:warn:seh:virtual_unwind exception data not found in L"GDIView.exe"
--- snip ---
Wine source:
--- snip ---
$ grep -Hrni GdiSharedHandleTable
include/winternl.h:339: PVOID GdiSharedHandleTable;
/* 094/0f8 */
include/winternl.h:584: ULONG64 GdiSharedHandleTable;
/* 00f8 */
--- snip ---
https://source.winehq.org/git/wine.git/blob/56e7cd12ce0ce3bb331a8595b25aedb…
(x86)
https://source.winehq.org/git/wine.git/blob/56e7cd12ce0ce3bb331a8595b25aedb…
(x86_64)
$ sha1sum gdiview*.zip
4bacc3fed9a41678c72eba41937ff73b7e98ee90 gdiview-x64.zip
1115a41a1784127380ac2df0d3960f4bf09955db gdiview.zip
$Â du -sh gdiview*.zip
68K gdiview-x64.zip
52K gdiview.zip
$Â wine --version
wine-6.0-rc3
Regards
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=32893
Bug #: 32893
Summary: SNES9x DirectDraw display not refreshed correctly when
menus shown
Product: Wine
Version: 1.5.23
Platform: x86-64
URL: http://files.ipherswipsite.com/snes9x/snes9x-1.53-win3
2.zip
OS/Version: Linux
Status: UNCONFIRMED
Severity: minor
Priority: P2
Component: -unknown
AssignedTo: wine-bugs(a)winehq.org
ReportedBy: markk(a)clara.co.uk
Classification: Unclassified
Created attachment 43440
--> http://bugs.winehq.org/attachment.cgi?id=43440
Showing refresh problem #1
I'm testing with Wine 1.5.23, SNES9x 1.53, Lubuntu 11.10 x86-64, Nvidia driver
304.64.
There is a small issue with the way the SNES9x DirectDraw display is refreshed.
When you browse the menus, as you move from menu to menu the previous menu area
is cleared to black, instead of showing the emulated game.
There was a change at some point between Wine 1.5.18 and 1.5.23. With 1.5.18
all "old" menus remained onscreen (see
http://bugs.winehq.org/attachment.cgi?id=42660), so the current behaviour is
better but not perfect.
To reproduce
- Download and unzip SNES9x.
- Download a SNES ROM, e.g. from
http://pdroms.de/files/supernintendoentertainmentsystem/skipp-and-friends-p…
- Run SNES9x. Select File->Load Game... and select SAF.smc
- Currently the default Direct3D output gives an empty/black window (bug
32319). So change to DirectDraw output: select Video->Display Configuration...,
change Output Method to DirectDraw and click OK.
- Click on the menu bar to browse the menus. As you move from menu to menu,
notice that the region which was occupied by the previously-shown menu is
black.
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=44507
Bug ID: 44507
Summary: Railroad Tycoon 3 (GOG version): invisible mouse
cursor in RT3 Mini-Game
Product: Wine
Version: 3.1
Hardware: x86
OS: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: -unknown
Assignee: wine-bugs(a)winehq.org
Reporter: t6zm3v62fkp7fe5(a)yandex.ru
Distribution: ---
Created attachment 60464
--> https://bugs.winehq.org/attachment.cgi?id=60464
Screenshot
Railroad Tycoon 3 (GOG version) has additional RT3 Mini-Game. But it's
impossible to play it because the mouse cursor becomes transparent after moving
it into the game's window and appears over after moving it out (but it works,
you can even try to move rails with this invisible cursor until you get tired,
screenshot is attached).
Terminal shows only this:
1@device:~$ WINEARCH=win32 WINEPREFIX=~/win32 wine '/home/1/win32/drive_c/GOG
Games/Railroad Tycoon 3/_Extras/MiniGame/RT3Game.exe'
0009:fixme:msg:pack_message msg 14 (WM_ERASEBKGND) not supported yet
002f:fixme:msg:pack_message msg 14 (WM_ERASEBKGND) not supported yet
Lubuntu 16.04.3, Wine 3.1 from official PPA.
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=48306
Bug ID: 48306
Summary: Roblox Player: Client kicked with Error Code 268
Product: Wine
Version: 5.0-rc1
Hardware: x86
OS: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: -unknown
Assignee: wine-bugs(a)winehq.org
Reporter: nerdyminer18(a)gmail.com
Distribution: ---
To preface this, Wine cannot normally run the Roblox Player unless a tool, like
Grapejuice (https://gitlab.com/brinkervii/grapejuice), is installed so Wine can
launch the application from the Roblox website.
Whenever the Roblox Player connects to a game, there is a ~5 second window
where the application will work properly until the client is forced to
disconnect by the server. When this happens, a box with the text "Disconnected
| You have been kicked due to unexpected client behavior (Error Code: 268)"
appears. This error code only appears when the application detects that an
external application is modifying the application(Ex: Running Cheat Engine's
debugger triggers this error). Wine in this case is being treated as a sort of
exploit in the case that it's trying to modify the application somehow.
[I cannot provide a log/backtrace as of the time this bug gets submitted, but I
will do so later on]
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=39390
Bug ID: 39390
Summary: Backgrounds are black in 99 Spirits
Product: Wine
Version: 1.7.51
Hardware: x86
OS: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: -unknown
Assignee: wine-bugs(a)winehq.org
Reporter: funtimeschaos(a)rocketmail.com
Distribution: ---
Created attachment 52501
--> https://bugs.winehq.org/attachment.cgi?id=52501
Terminal output
All backgrounds fail to render, replaced by plain blackness instead.
The terminal doesn't seem to provide much helpful out, but I've attached it
regardless.
According to the terminal, this may be a duplicate of 9127, but the normal work
around steps (winetricks quartz, wmp10, allcodecs) removed the quartz fixme
messages but not the problem.
Would love to put up a more helpful output, if I knew which WINEDEBUG flags to
use.
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=34188
Bug #: 34188
Summary: crash when creating a new wineprefix with winemac.drv
Product: Wine
Version: 1.6
Platform: x86
OS/Version: Mac OS X
Status: NEW
Severity: normal
Priority: P2
Component: winemac.drv
AssignedTo: wine-bugs(a)winehq.org
ReportedBy: austinenglish(a)gmail.com
Classification: Unclassified
Created attachment 45475
--> http://bugs.winehq.org/attachment.cgi?id=45475
backtrace
May only be in 10.7+.
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=47579
Bug ID: 47579
Summary: Sins Of SOlar Empire Rebellion: Game starts with black
screen and crashes with MIniDump in background
Product: Wine-staging
Version: 4.12.1
Hardware: x86
OS: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: -unknown
Assignee: wine-bugs(a)winehq.org
Reporter: linards.liepins(a)gmail.com
CC: leslie_alistair(a)hotmail.com, z.figura12(a)gmail.com
Distribution: ---
Game behaving as described in the subject line.
I am assuming only relevant line(s) is this from terminal:
$ wine "/home/linards/.wine/drive_c/Games/Sins of a Solar Empire Rebellion
Ultimate Edition/Sins of a Solar Empire Rebellion.exe"
0274:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
0274:fixme:gameux:GameExplorerImpl_VerifyAccess (001505B8, L"C:\\Games\\Sins of
a Solar Empire Rebellion Ultimate Edition\\Sins of a Solar Empire
Rebellion.exe", 0034FC14)
0274:fixme:ver:GetCurrentPackageId (0x34ec84 (nil)): stub
0274:fixme:d3d:wined3d_check_device_format_conversion wined3d 0x155d58,
adapter_idx 0, device_type WINED3D_DEVICE_TYPE_REF, src_format
WINED3DFMT_B5G5R5X1_UNORM, dst_format WINED3DFMT_B5G6R5_UNORM stub!
0274:fixme:d3d:swapchain_init The application requested more than one back
buffer, this is not properly supported.
Please configure the application to use double buffering (1 back buffer) if
possible.
0277:fixme:d3d:wined3d_texture_upload_data Not supported for multisample
textures.
0274:fixme:wbemprox:client_security_SetBlanket 6795C678, 00216F50, 10, 0,
(null), 3, 3, 00000000, 0x00000000
0274:fixme:wbemprox:client_security_Release 6795C678
0274:fixme:wbemprox:enum_class_object_Next timeout not supported
0274:fixme:wbemprox:client_security_SetBlanket 6795C678, 00216F70, 10, 0,
(null), 3, 3, 00000000, 0x00000000
0274:fixme:wbemprox:client_security_Release 6795C678
0274:fixme:d3d:wined3d_query_create Unhandled query type 0x4.
0274:fixme:dbghelp:elf_search_auxv can't find symbol in module
0274:fixme:dbghelp:MiniDumpWriteDump NIY MiniDumpWithDataSegs
0274:fixme:faultrep:ReportFault 0034F8C4 0x0 stub
Graphics:
Device-1: AMD Ellesmere [Radeon RX 470/480/570/570X/580/580X/590]
driver: amdgpu v: kernel
Display: x11 server: Fedora Project X.org 1.20.5 driver: amdgpu tty: N/A
OpenGL: renderer: Radeon RX 580 Series (POLARIS10 DRM 3.30.0
5.1.19-300.fc30.x86_64 LLVM 8.0.0)
v: 4.5 Mesa 19.1.3
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=46686
Bug ID: 46686
Summary: Tom Clancy's Ghost Recon Future Soldier crashes after
intro in DX11 mode
Product: Wine
Version: 4.2
Hardware: x86-64
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: directx-d3d
Assignee: wine-bugs(a)winehq.org
Reporter: andrey.goosev(a)gmail.com
Distribution: ---
Created attachment 63647
--> https://bugs.winehq.org/attachment.cgi?id=63647
backtrace
view.c:2294: unsafe_impl_from_ID3D11ShaderResourceView: Assertion
`iface->lpVtbl == &d3d11_shader_resource_view_vtbl' failed.
wine-4.2-63-g0c738d900a
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=36272
Bug ID: 36272
Summary: valgrind shows several leaks in
dmime/tests/performance.c
Product: Wine
Version: 1.7.18
Hardware: x86
OS: Linux
Status: NEW
Keywords: download, source, testcase
Severity: normal
Priority: P2
Component: directx-dmusic
Assignee: wine-bugs(a)winehq.org
Reporter: austinenglish(a)gmail.com
==6437== 28 bytes in 1 blocks are definitely lost in loss record 301 of 951
==6437== at 0x7BC4C735: notify_alloc (heap.c:255)
==6437== by 0x7BC50F79: RtlAllocateHeap (heap.c:1716)
==6437== by 0x7FBF4B1: DMUSIC_CreateDirectMusicImpl (dmusic.c:414)
==6437== by 0x7FBFABB: ClassFactory_CreateInstance (dmusic_main.c:100)
==6437== by 0x4D3AE26: CoCreateInstance (unknwn.h:226)
==6437== by 0x5F9ADA9: IDirectMusicPerformance8Impl_Init (performance.c:286)
==6437== by 0x4956EA6: test_createport (performance.c:104)
==6437== by 0x4957D93: func_performance (performance.c:263)
==6437== by 0x4958B90: run_test (test.h:584)
==6437== by 0x4958F7F: main (test.h:654)
==6437==
==6437== 44 bytes in 1 blocks are definitely lost in loss record 432 of 951
==6437== at 0x7BC4C735: notify_alloc (heap.c:255)
==6437== by 0x7BC50F79: RtlAllocateHeap (heap.c:1716)
==6437== by 0x5F90B1E: create_dmaudiopath (audiopath.c:642)
==6437== by 0x5F9D9FE: IDirectMusicPerformance8Impl_CreateStandardAudioPath
(performance.c:1033)
==6437== by 0x5F9D5BF: IDirectMusicPerformance8Impl_InitAudio
(performance.c:952)
==6437== by 0x4956AD4: test_InitAudio (performance.c:51)
==6437== by 0x4957D53: func_performance (performance.c:256)
==6437== by 0x4958B90: run_test (test.h:584)
==6437== by 0x4958F7F: main (test.h:654)
==6437==
==6437== 56 bytes in 1 blocks are possibly lost in loss record 480 of 951
==6437== at 0x7BC4C735: notify_alloc (heap.c:255)
==6437== by 0x7BC50F79: RtlAllocateHeap (heap.c:1716)
==6437== by 0xC0632EC: MMDRV_InitPerType (lolvldrv.c:384)
==6437== by 0xC063C27: MMDRV_Install (lolvldrv.c:475)
==6437== by 0xC06416F: MMDRV_Init (lolvldrv.c:547)
==6437== by 0xC061F4B: MMDRV_InitSingleType (lolvldrv.c:78)
==6437== by 0xC061FEE: MMDRV_GetNum (lolvldrv.c:89)
==6437== by 0xC07F7C8: midiOutGetNumDevs (winmm.c:284)
==6437== by 0x7FBF004: create_system_ports_list (dmusic.c:328)
==6437== by 0x7FBF5C7: DMUSIC_CreateDirectMusicImpl (dmusic.c:436)
==6437== by 0x7FBFABB: ClassFactory_CreateInstance (dmusic_main.c:100)
==6437== by 0x4D3AE26: CoCreateInstance (unknwn.h:226)
==6437== by 0x5F9ADA9: IDirectMusicPerformance8Impl_Init (performance.c:286)
==6437== by 0x5F9D498: IDirectMusicPerformance8Impl_InitAudio
(performance.c:930)
==6437== by 0x4956AD4: test_InitAudio (performance.c:51)
==6437== by 0x4957D53: func_performance (performance.c:256)
==6437== by 0x4958B90: run_test (test.h:584)
==6437== by 0x4958F7F: main (test.h:654)
==6437==
==6437== 56 bytes in 1 blocks are possibly lost in loss record 481 of 951
==6437== at 0x7BC4C735: notify_alloc (heap.c:255)
==6437== by 0x7BC50F79: RtlAllocateHeap (heap.c:1716)
==6437== by 0xC0632EC: MMDRV_InitPerType (lolvldrv.c:384)
==6437== by 0xC063C4D: MMDRV_Install (lolvldrv.c:476)
==6437== by 0xC06416F: MMDRV_Init (lolvldrv.c:547)
==6437== by 0xC061F4B: MMDRV_InitSingleType (lolvldrv.c:78)
==6437== by 0xC061FEE: MMDRV_GetNum (lolvldrv.c:89)
==6437== by 0xC07F7C8: midiOutGetNumDevs (winmm.c:284)
==6437== by 0x7FBF004: create_system_ports_list (dmusic.c:328)
==6437== by 0x7FBF5C7: DMUSIC_CreateDirectMusicImpl (dmusic.c:436)
==6437== by 0x7FBFABB: ClassFactory_CreateInstance (dmusic_main.c:100)
==6437== by 0x4D3AE26: CoCreateInstance (unknwn.h:226)
==6437== by 0x5F9ADA9: IDirectMusicPerformance8Impl_Init (performance.c:286)
==6437== by 0x5F9D498: IDirectMusicPerformance8Impl_InitAudio
(performance.c:930)
==6437== by 0x4956AD4: test_InitAudio (performance.c:51)
==6437== by 0x4957D53: func_performance (performance.c:256)
==6437== by 0x4958B90: run_test (test.h:584)
==6437== by 0x4958F7F: main (test.h:654)
==6437==
==6437== 552 bytes in 1 blocks are possibly lost in loss record 789 of 951
==6437== at 0x7BC4C735: notify_alloc (heap.c:255)
==6437== by 0x7BC50F79: RtlAllocateHeap (heap.c:1716)
==6437== by 0x5F9E05B: create_dmperformance (performance.c:1218)
==6437== by 0x5F91088: ClassFactory_CreateInstance (dmime_main.c:100)
==6437== by 0x4D3AE26: CoCreateInstance (unknwn.h:226)
==6437== by 0x4957997: test_COM (performance.c:218)
==6437== by 0x4957D8E: func_performance (performance.c:262)
==6437== by 0x4958B90: run_test (test.h:584)
==6437== by 0x4958F7F: main (test.h:654)
==6437==
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=41549
Bug ID: 41549
Summary: Hover! in fullscreen mode does not cover the top bar
in Gnome.
Product: Wine
Version: 1.9.20
Hardware: x86
OS: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: -unknown
Assignee: wine-bugs(a)winehq.org
Reporter: aaronbpaden(a)gmail.com
Distribution: ---
I'm using wine-staging 1.9.20.
When you set Hover! to fullscreen, it sets the display resolution and fills up
most of the screen as it should, but it's set under top bar in GNOME, resulting
in several rows of pixels from the bottom of the application also being outside
of the display.
I confirmed that Hover! does cover the task bar in a Windows VM.
There's nothing really in the logs, except for a weird
"fixme:process:LoadModule Strange error set by CreateProcess: 193", but that
shows up before setting fullscreen.
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.