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"
21 #define MAX_DISPLAY 25
30 static struct display displaypoints
[MAX_DISPLAY
];
33 DEBUG_AddDisplay(struct expr
* exp
, int count
, char format
)
38 * First find a slot where we can store this display.
40 for(i
=0; i
< MAX_DISPLAY
; i
++ )
42 if( displaypoints
[i
].exp
== NULL
)
44 displaypoints
[i
].exp
= DEBUG_CloneExpr(exp
);
45 displaypoints
[i
].count
= count
;
46 displaypoints
[i
].format
= format
;
60 * First find a slot where we can store this display.
62 for(i
=0; i
< MAX_DISPLAY
; i
++ )
64 if( displaypoints
[i
].exp
!= NULL
)
66 fprintf(stderr
, "%d : ", i
+1);
67 DEBUG_DisplayExpr(displaypoints
[i
].exp
);
68 fprintf(stderr
, "\n");
82 * First find a slot where we can store this display.
84 for(i
=0; i
< MAX_DISPLAY
; i
++ )
86 if( displaypoints
[i
].exp
!= NULL
)
88 addr
= DEBUG_EvalExpr(displaypoints
[i
].exp
);
89 if( addr
.type
== NULL
)
91 fprintf(stderr
, "Unable to evaluate expression ");
92 DEBUG_DisplayExpr(displaypoints
[i
].exp
);
93 fprintf(stderr
, "\nDisabling...\n");
98 fprintf(stderr
, "%d : ", i
+ 1);
99 DEBUG_DisplayExpr(displaypoints
[i
].exp
);
100 fprintf(stderr
, " = ");
101 if( displaypoints
[i
].format
== 'i' )
103 DEBUG_ExamineMemory( &addr
,
104 displaypoints
[i
].count
,
105 displaypoints
[i
].format
);
110 displaypoints
[i
].count
,
111 displaypoints
[i
].format
, 0);
121 DEBUG_DelDisplay(int displaynum
)
125 if( displaynum
>= MAX_DISPLAY
|| displaynum
== 0 || displaynum
< -1 )
127 fprintf(stderr
, "Invalid display number\n");
130 if( displaynum
== -1 )
132 for(i
=0; i
< MAX_DISPLAY
; i
++ )
134 if( displaypoints
[i
].exp
!= NULL
)
136 DEBUG_FreeExpr(displaypoints
[i
].exp
);
137 displaypoints
[i
].exp
= NULL
;
141 else if( displaypoints
[displaynum
- 1].exp
!= NULL
)
143 DEBUG_FreeExpr(displaypoints
[displaynum
- 1].exp
);
144 displaypoints
[displaynum
- 1].exp
= NULL
;