2 * File display.c - display handling for Wine internal debugger.
4 * Copyright (C) 1997, Eric Youngdale.
12 #include <sys/types.h>
15 #include "selectors.h"
22 #define MAX_DISPLAY 25
31 static struct display displaypoints[MAX_DISPLAY];
34 DEBUG_AddDisplay(struct expr * exp, int count, char format)
39 * First find a slot where we can store this display.
41 for(i=0; i < MAX_DISPLAY; i++ )
43 if( displaypoints[i].exp == NULL )
45 displaypoints[i].exp = DEBUG_CloneExpr(exp);
46 displaypoints[i].count = count;
47 displaypoints[i].format = format;
61 * First find a slot where we can store this display.
63 for(i=0; i < MAX_DISPLAY; i++ )
65 if( displaypoints[i].exp != NULL )
67 fprintf(stderr, "%d : ", i+1);
68 DEBUG_DisplayExpr(displaypoints[i].exp);
69 fprintf(stderr, "\n");
83 * First find a slot where we can store this display.
85 for(i=0; i < MAX_DISPLAY; i++ )
87 if( displaypoints[i].exp != NULL )
89 addr = DEBUG_EvalExpr(displaypoints[i].exp);
90 if( addr.type == NULL )
92 fprintf(stderr, "Unable to evaluate expression ");
93 DEBUG_DisplayExpr(displaypoints[i].exp);
94 fprintf(stderr, "\nDisabling...\n");
99 fprintf(stderr, "%d : ", i + 1);
100 DEBUG_DisplayExpr(displaypoints[i].exp);
101 fprintf(stderr, " = ");
102 if( displaypoints[i].format == 'i' )
104 DEBUG_ExamineMemory( &addr,
105 displaypoints[i].count,
106 displaypoints[i].format);
111 displaypoints[i].count,
112 displaypoints[i].format, 0);
122 DEBUG_DelDisplay(int displaynum)
126 if( displaynum >= MAX_DISPLAY || displaynum == 0 || displaynum < -1 )
128 fprintf(stderr, "Invalid display number\n");
131 if( displaynum == -1 )
133 for(i=0; i < MAX_DISPLAY; i++ )
135 if( displaypoints[i].exp != NULL )
137 DEBUG_FreeExpr(displaypoints[i].exp);
138 displaypoints[i].exp = NULL;
142 else if( displaypoints[displaynum - 1].exp != NULL )
144 DEBUG_FreeExpr(displaypoints[displaynum - 1].exp);
145 displaypoints[displaynum - 1].exp = NULL;