source: trunk/src/kernel32/debug.cpp@ 5481

Last change on this file since 5481 was 5481, checked in by sandervl, 24 years ago

compile fixes

File size: 5.6 KB
Line 
1/* $Id: debug.cpp,v 1.6 2001-04-05 05:54:51 sandervl Exp $ */
2
3/*
4 * Win32 debug Subsystem for OS/2
5 *
6 * Copyright 1999 Edgar Buerkle
7 *
8 * Project Odin Software License can be found in LICENSE.TXT
9 *
10 */
11
12/*****************************************************************************
13 * Includes *
14 *****************************************************************************/
15#include <os2win.h>
16#include <misc.h>
17#include <unicode.h>
18#include "oslibdebug.h"
19
20#define DBG_LOCALLOG DBG_debug
21#include "dbglocal.h"
22
23/*****************************************************************************
24 * Name : BOOL WaitForDebugEvent
25 * Purpose : The WaitForDebugEvent function waits for a debugging event to
26 * occur in a process being debugged.
27 * Parameters: LPDEBUG_EVENT lpde address of structure for event information
28 * DWORD dwTimeout number of milliseconds to wait for event
29 * Variables :
30 * Result : TRUE / FALSE
31 * Remark :
32 * Status : UNTESTED STUB
33 *
34 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
35 *****************************************************************************/
36BOOL WIN32API WaitForDebugEvent(LPDEBUG_EVENT lpde, DWORD dwTimeout)
37{
38 dprintf(("KERNEL32: WaitForDebugEvent timeout:%d\n", dwTimeout));
39
40 return OSLibWaitForDebugEvent(lpde, dwTimeout);
41}
42/*****************************************************************************
43 * Name : BOOL WIN32API ContinueDebugEvent
44 * Purpose : The ContinueDebugEvent function enables a debugger to continue
45 * a thread that previously reported a debugging event.
46 * Parameters: DWORD dwProcessId process to continue
47 * DWORD dwThreadId thread to continue
48 * DWORD dwContinueStatus continuation status
49 * Variables :
50 * Result : If the function succeeds, the return value is nonzero.
51 * If the function fails, the return value is zero.
52 * To get extended error information, call GetLastError.
53 * Remark : Only the thread that created dwProcessId with the CreateProcess
54 * function can call ContinueDebugEvent.
55 * After the ContinueDebugEvent function succeeds, the specified
56 * thread continues. Depending on the debugging event previously
57 * reported by the thread, different actions occur. If the continued
58 * thread previously reported an EXIT_THREAD_DEBUG_EVENT
59 * debugging event, ContinueDebugEvent closes the handle the
60 * debugger has to the thread. If the continued thread previously
61 * reported an EXIT_PROCESS_DEBUG_EVENT debugging event,
62 * ContinueDebugEvent closes the handles the debugger has to the
63 * process and to the thread.
64 * Status : UNTESTED STUB
65 *
66 * Author : Markus Montkowski [Thu, 1998/05/19 11:46]
67 *****************************************************************************/
68BOOL WIN32API ContinueDebugEvent( DWORD dwProcessId, DWORD dwThreadId,
69 DWORD dwContinueStatus)
70{
71
72 dprintf(("KERNEL32: ContinueDebugEvent(%08x,%08x,%08x)not correctly implemented\n",
73 dwProcessId, dwThreadId, dwContinueStatus));
74
75 return OSLibContinueDebugEvent(dwProcessId, dwThreadId, dwContinueStatus);
76}
77//******************************************************************************
78//******************************************************************************
79
80/**
81 * Query if the calling process is running under the context of a debugger.
82 * @returns TRUE (non-zero) Debugged.
83 * FALSE Not debugged.
84 * @status STUB
85 * @author knut st. osmundsen (knut.stange.osmundsen@mynd.no)
86 * @remark An application could use this API to determin whether or not it is
87 * being debugged, so that it can change behaviour and for example
88 * provide more debug information using functions like OutputDebugString.
89 *
90 * You could change the result of this by SET ODIN32.DEBUGGERPRESENT=1 on
91 * the commandline.
92 */
93BOOL WIN32API IsDebuggerPresent(VOID)
94{
95 BOOL fRet = getenv("ODIN32.DEBUGGERPRESENT") != NULL;
96 dprintf(("KERNEL32: IsDebuggerPresent() -> %s\n", fRet ? "TRUE" : "FALSE"));
97 return fRet;
98}
99
100
101/**
102 * Send a string to the debugger for the current application.
103 * @param lpszOutputString Pointer to the string to send to the debugger. (intput)
104 * @sketch Convert and log the string.
105 * @status STUB
106 * @author Sander van Leeuwen
107 * @remark The string is send to the system debugger if there is no
108 * debugger available for this application.
109 * If the application has not debugger and the system debugger
110 * is not active this API does nothing.
111 */
112VOID WIN32API OutputDebugStringW(LPCWSTR lpszOutputString)
113{
114 char *pszAscii = UnicodeToAsciiString((LPWSTR)lpszOutputString);
115 dprintf(("KERNEL32: OS2OutputDebugStringW %s\n", pszAscii));
116 FreeAsciiString(pszAscii);
117}
118
119
120/**
121 * Send a string to the debugger for the current application.
122 * @param lpszOutputString Pointer to the string to send to the debugger. (input)
123 * @sketch Log the string.
124 * @status STUB
125 * @author Sander van Leeuwen
126 * @remark The string is send to the system debugger if there is no
127 * debugger available for this application.
128 * If the application has not debugger and the system debugger
129 * is not active this API does nothing.
130 */
131VOID WIN32API OutputDebugStringA(LPCSTR lpszOutputString)
132{
133 dprintf(("KERNEL32: OutputDebugStringA: %s\n", lpszOutputString));
134}
135
Note: See TracBrowser for help on using the repository browser.