Davidson Francis 4bde11c290 GDB stub small fixes: out-of-bounds and wrong packet reply in 'qfThreadInfo' (#3666)
* Fix out-of-bounds access on gdbstub_client_respond()

The issue happens when the ENABLE_GDBSTUB_LOG flag is set, more
specifically within the gdbstub_client_respond() function. This is
due to the fact that the string 'GDB Stub: Sending response: ' and
the newline character '\n' total 29 characters. When combined with
the 995 characters of client->response, the total is 1024 bytes.
However, the pclog_ex() buffer size is also 1024 bytes, leaving no
room for the null terminator '\0'. As a result, when attempting to
print the text on the screen, a segmentation fault occurs.

This commit fixes this by decreasing the response text's size by one
byte.

* Remove extra space in 'qfThreadInfo' packet response in gdbstub.c

When GDB sends the 'qfThreadInfo' packet, one of the possible responses
is 'm thread-id', as specified in [1]. However, contrary to what the
documentation implies, there is no space between 'm' and the thread-id.
In the current approach, GDB isn't even able to recognize that there's
any active thread, as the code sends "m 1" instead of "m1".

This commit addresses this by removing the space in the response.

Ref:
[1]: https://sourceware.org/gdb/onlinedocs/gdb/General-Query-Packets.html
2023-08-31 14:11:27 -03:00
2023-08-23 06:21:38 -04:00
2023-08-09 22:20:06 +02:00
2022-09-18 16:01:29 -04:00
2023-08-08 11:11:14 -04:00
2023-05-04 21:12:13 +02:00
2023-04-10 10:11:32 +02:00
2023-05-04 21:12:13 +02:00
2023-05-16 00:53:59 +02:00

86Box

Build Status License Latest release Downloads

86Box is a low level x86 emulator that runs older operating systems and software designed for IBM PC systems and compatibles from 1981 through fairly recent system designs based on the PCI bus.

Features

  • Easy to use interface inspired by mainstream hypervisor software
  • Low level emulation of 8086-based processors up to the Mendocino-era Celeron with focus on accuracy
  • Great range of customizability of virtual machines
  • Many available systems, such as the very first IBM PC 5150 from 1981, or the more obscure IBM PS/2 line of systems based on the Micro Channel Architecture
  • Lots of supported peripherals including video adapters, sound cards, network adapters, hard disk controllers, and SCSI adapters
  • MIDI output to Windows built-in MIDI support, FluidSynth, or emulated Roland synthesizers
  • Supports running MS-DOS, older Windows versions, OS/2, many Linux distributions, or vintage systems such as BeOS or NEXTSTEP, and applications for these systems

Minimum system requirements and recommendations

  • Intel Core 2 or AMD Athlon 64 processor or newer
  • Windows version: Windows 7 Service Pack 1 or later
  • Linux version: Ubuntu 16.04, Debian 9.0 or other distributions from 2016 onwards
  • macOS version: macOS High Sierra 10.13 or newer
  • 4 GB of RAM or higher

Performance may vary depending on both host and guest configuration. Most emulation logic is executed in a single thread; therefore, systems with better IPC (instructions per clock) generally should be able to emulate higher clock speeds.

It is also recommended to use a manager application with 86Box for easier handling of multiple virtual machines.

It is also possible to use 86Box on its own with the --vmpath/-P command line option.

Getting started

See our documentation for an overview of the emulator's features and user interface.

Community

We operate an IRC channel and a Discord server for discussing 86Box, its development and anything related to retro computing. We look forward to hearing from you!

Visit our IRC channel

Visit our Discord server

Contributions

We welcome all contributions to the project, as long as the contribution guidelines are followed.

Licensing

86Box is released under the GNU General Public License, version 2 or later. For more information, see the COPYING file in the root of the repository.

The emulator can also optionally make use of munt, FluidSynth, Ghostscript and Discord Game SDK, which are distributed under their respective licenses.

Donations

We do not charge you for the emulator but donations are still welcome: https://paypal.me/86Box.

You can also support the project on Patreon: https://www.patreon.com/86box.

Description
[soft fork] Emulator of x86-based machines.
Readme 130 MiB
Languages
C 88.7%
C++ 10.4%
HTML 0.4%
CMake 0.3%
Shell 0.2%