Table of Contents

Process console

Process console is a window which purpose is to display output of debugged process and transfer input to it. The console shares the engine with Remote terminal window, therefore it can be used for programs which perform advanced terminal interaction (e.g. ncurses user interface).

Using the console

In order to open the process console, choose Show process console option from WinGDB main menu during debugging.

Process console

You can also use additional features accessible from the toolbar or context menu (click right mouse button over the window to show it). These options are:

Configuring the console appearance

You can configure font used in console windows as well as colors. These settings are separate from Remote terminal settings, you can have different look for terminals and consoles.

To open configuration dialog, either use Show console preferences option on console window itself, or Preferences option from WinGDB main menu. In second case, choose Console category from the list on the left. Caution: both will change settings for all console windows, there is no per-window configuration.

Using the scrollback buffer

The process console in WinGDB emulates fixed-size text console window, as this is what typical Un*x program expects. Being fixed size, there is no direct possibility to scroll the window upwards, in order to see old lines of text that already have been moved out of the window. Typical console emulators address this problem by providing a scrollback buffer. This is an area of additional lines, logically placed above the console area. When the console encounters a newline character requiring it to scroll its entire contents upwards, the topmost line is stored in the scrollback buffer, instead of being discarded. This way you can have both fixed-size terminal emulation, and a possibility to examine lines of text printed earlier.

In order to use the scrollback buffer in the process console, do one of the following:

The contents of the window will scroll, showing lines of text printed earlier (or blank space if there were no text yet).

Note that the scrollbars placed next to the window do not engage the scrollback buffer. They are for different purpose -- when the window is resized to be smaller than emulated fixed-size console, you can use the scrollbars to view different parts of it.

WinGDB by default allocates 1000 additional lines. The limit is necessary to avoid exhausting memory when debugged process prints large amounts of data over prolonged time. You can change this amount in WinGDB Preferences, on the Console page. It may require restarting of Visual Studio to take effect, as the IDE "caches" its windows and their state.

Using UTF-8 and displaying non-Latin characters (incl. CJK)

The console supports UTF-8 encoding for Unicode characters. Since WinGDB 3.6, non-monospace Unicode fonts are also supported. This is for the purpose of displaying non-Latin characters (esp. CJK). For the usual, plain ASCII output, just use the default font.

In order to display CJK characters properly, you will need to install appropriate font and configure it in WinGDB. We recommend a font called Unifont, which is available under the GPL license and you can freely download it from:

http://unifoundry.com/unifont.html

It contains all the glyphs from the CJK character set, and most other scripts as well. You can also use some CJK font that you already have on your computer, but correct result is not guaranteed (as we tested the console only with Unifont). After downloading the font, install it in your Windows system (by double-clicking the file and then clicking Install button in the font viewer). When the font is installed, go to WinGDB / Preferences, choose Console page, then click on the arrow next to Console font field, choose Browse, and find the Unifont on the list. The font is not much scalable, however standard 14 point size should be fine. When selected, the font description in the Preferences window should look similar to this (14 points is equivalent to 19 pixels, hence number 19):

Process console

Sample output from the Process Console using Unifont 14 is shown below. Note that the console still uses monospace rendering, although the character width varies. This is necessary to emulate console or terminal correctly. The console uses a heuristics to figure out optimal character cell size. For CJK characters it should look just fine. For narrower characters, extra spacing will be visible.

Process console

Limitations

There are several aspects in which the console window could be improved. Currently those are given lower priority. If you find particular change important or critical, please contact us.


Copyright (C) 2008-2016 SOFT-ERG. All rights reserved.