Commit Graph

806 Commits

Author SHA1 Message Date
Jinoh Kang f3478b4ec9 winedbg: Escape special characters in GDB packet reply.
There are four special characters in GDB's remote serial protocol:

- '$' (0x24): start of packet
- '}' (0x7D): escape
- '*' (0x2A): run-length encoding repeat count delimiter
- '#' (0x23): end of packet; start of checksum

In particular, the '#' and '}' characters are problematic since they
are often used in library filenames.  A few examples:

- %SystemRoot%\assembly\NativeImages_v[.NET ver]\[module+hash]#\*\*.dll
- {CLSID or UUID}\*\.dll

To make GDB happy with those filenames, we scan for those characters and
escape them properly.

While we are at it, also remove the assert in the packet_reply function
that checks for '$' and '#' in the packet payload.

Signed-off-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-19 18:57:28 +01:00
Jinoh Kang a4b55c620c winedbg: Use unsigned int for offset/length in GDB qXfer handler.
packet_query uses sscanf format "%x" to parse out offset and length
values.  Since %x corresponds to unsigned int in the C standard, adjust
the variable types appropriately.

Signed-off-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-19 18:52:30 +01:00
Jinoh Kang d8c07c1391 winedbg: Replace packet_realloc() with realloc().
winedbg is now built with msvcrt, so just use realloc() directly
instead of Win32 heap functions.

Signed-off-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-19 18:52:21 +01:00
Jinoh Kang 820a866f0d winedbg: Set reuseaddr flag for gdb remote socket.
Signed-off-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-17 16:02:29 +01:00
Jinoh Kang 829c06741b winedbg: Report current thread ID to GDB for all stop replies.
Signed-off-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-17 16:01:43 +01:00
Eric Pouech 9808c1d8a3 winedbg: Fix command line arguments parsing.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=42030
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-15 20:00:38 +01:00
Eric Pouech ce6eeda018 winedbg: Use inline contexts oriented APIs for stack backtrace.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-27 22:40:50 +02:00
Eric Pouech 8852004170 winedbg: Use SymSetScopeFromAddr() instead of SymSetContext().
This allows to simplify a bit the frame internal storage
(no longer using IMAGEHLP_STACK_FRAME structure).

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-27 22:40:50 +02:00
Eric Pouech 83f85f5c91 winedbg: Add a pair of helpers for accessing frames' internal info.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-27 22:40:50 +02:00
Alexandre Julliard 43e3e1e409 winedbg: Use the standard va_list instead of __ms_va_list.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-25 11:02:19 +02:00
Alexandre Julliard 2a92c58e11 include: Use the standard va_list instead of __ms_va_list when building with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-15 18:28:01 +02:00
Eric Pouech 01ddc2f8e4 winedbg: Use proper width when printing addresses with leading 0.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-12 18:41:06 +02:00
Eric Pouech 3a869c1f9b winedbg: Simplify some printing of addresses.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-12 18:41:01 +02:00
Eric Pouech ad8b107441 winedbg: Use proper modifier when using sscanf for a DWORD_PTR.
Regression introduced in 0ea9fe999c.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-12 18:40:54 +02:00
Eric Pouech e3fc699afa winedbg: Fix result type in expression's computation.
All internal computation are made with DWORD_PTR and LONG_PTR,
so use corresponding internal type for the result.

Regression introduced in 0ea9fe999c.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-12 18:40:52 +02:00
Eric Pouech 22c1619409 winedbg: Properly print 64bit integers.
Regression introduced in 0ea9fe999c.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-12 18:40:49 +02:00
Alexandre Julliard 97479d3d32 ntdll: Move some exception definitions to winternl.h.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-07 13:52:42 +02:00
Alexandre Julliard 0ea9fe999c winedbg: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 15:20:56 +02:00
Alexandre Julliard 13125b51cd winedbg: Avoid using the 'long double' type.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 15:18:38 +02:00
Alexandre Julliard b9046a4936 winedbg: Avoid using 'long' types.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 14:50:41 +02:00
Alexandre Julliard 6a2325609c winedbg: Use winsock for the gdb socket.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 11:27:43 +02:00
Alexandre Julliard 6ba7773121 makefiles: Add a -mcygwin flag to specify the inverse of -mno-cygwin.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-20 22:45:48 +02:00
Eric Pouech 0646e15665 winedbg: Show dwarf version(s) used for a module.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-15 22:06:55 +02:00
Zhiyi Zhang dacf456ca6 winedbg: Add system DPI awareness settings to the application manifest.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-08 08:54:52 +02:00
Eric Pouech b99d7db835 winedbg: Allow debugging a 32bit target from a 64bit winedbg.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-02 21:57:39 +02:00
Francois Gouget 7d82abd2be winedbg: dbg_get_debuggee_info() is not used anymore. Remove it.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-26 21:49:09 +02:00
Anton Baskanov 384fc71a48 winedbg: Report library load/unload events to GDB.
This allows GDB to load symbols and resolve pending breakpoints for
dynamically loaded DLLs.

Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-21 22:11:37 +02:00
Eric Pouech 40587a620e winedbg: Add helper in gdbproxy mode to get proper address width information.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-02 20:48:48 +02:00
Eric Pouech 6c91e61c40 winedbg: Correct mapping read/write/execute information.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-02 20:48:23 +02:00
Eric Pouech 5d8bad570d winedbg: Fix crash when no process attached in 'info wnd' command.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49625
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-02 20:47:55 +02:00
Eric Pouech 8600ba2934 winedbg: Accept hex values in command line.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-01 22:34:31 +02:00
Bernhard Übelacker 61310dd3b8 winedbg: Try to load debug symbols for executable in gdb mode.
Signed-off-by: Bernhard Übelacker <bernhardu@mailbox.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-25 22:48:48 +02:00
Zhiyi Zhang 7aa1d1cbe1 winedbg: Enable visual styles.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-16 09:00:12 +02:00
Alexandre Julliard 9dcdb90f42 winedbg: Restart 64-bit version from the system32 directory.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-16 11:15:18 +02:00
Alexandre Julliard c050df1250 winedbg: Use GetMappedFileNameW() as fallback when fetching module names.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-13 13:05:29 +02:00
Alexandre Julliard 39b20a2bd3 winedbg: Use QueryFullProcessImageNameW to retrieve the main image name.
Remove the psapi fallback that didn't work anyway.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-13 13:05:29 +02:00
Rémi Bernon 6eff0342ad winedbg: Don't dereference possibly NULL thread pointer.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-10 18:43:22 +01:00
Rémi Bernon da3be6b0b6 ntdll: Print a warning or an error for other exceptions.
Depending on EH_NONCONTINUABLE.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-08 11:04:17 +01:00
Rémi Bernon 6edf3d3b09 ntdll: Print a warning for thread rename exceptions.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-08 11:00:20 +01:00
Qijia Liu 0201aa3b60 winedbg: Distinguish -0 from 0.
According to A8.8.56, A8.8.64 and A8.8.81 of ARM DDI 0406C.d,
0 and -0 generate different instructions.
Manually add "-".

Signed-off-by: Qijia Liu <liumeo@pku.edu.cn>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-04 14:11:35 +01:00
Qijia Liu c20d49026f winedbg: Remove arm_disasm_branchreg.
According to A8.8.18 of ARM DDI 0406C.d, b instruction only takes
immediate argument.

Signed-off-by: Qijia Liu <liumeo@pku.edu.cn>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-29 21:19:31 +01:00
Alexandre Julliard 2e115ab442 Revert "winecrt0: Make the main() and wmain() entry points cdecl."
This reverts commit f2a7405a09.
We now have separate entry points for msvcrt builds.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-04 11:01:41 +01:00
Alexandre Julliard 6ca76dc5e7 include: Remove some no longer used Unicode functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-02 15:38:25 +01:00
Nikolay Sivov 51fbcc0c23 winedbg: Double dll name buffer size for unimplemented function exception.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-21 12:57:09 +02:00
Alexandre Julliard a9a08dbc3d libwine: Remove wine/library.h.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-08 16:26:17 +02:00
Paul Gofman de1cb029f6 include: Define _XSAVE_FORMAT structure.
The structure is defined for both x86_64 and i386 (along with
M128A) in (newer) Windows SDK.

Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-20 18:49:38 +02:00
André Hentschel 4ebba43020 winedbg: Remove support for PPC32.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-17 16:46:14 +02:00
Zebediah Figura ea753c384e include: Rename the other In*OrderModuleList fields to In*OrderLinks for consistency.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-24 10:13:49 +02:00
Zebediah Figura 09db718d99 include: Rename BaseAddress to DllBase.
To match Microsoft's public definition.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-24 10:13:46 +02:00
Zebediah Figura feeb1c7c24 include: Rename LDR_MODULE to LDR_DATA_TABLE_ENTRY.
This name is used in Microsoft's public winternl.h.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-24 10:13:39 +02:00