9
9
find_remedybg () {
10
10
local path
11
11
for path in \
12
- " c:/Utils/Apps/remedybg/remedybg.exe" \
13
- " $WORK /Playground/data/_tools/remedybg/remedybg.exe" \
14
- " $SHARED_WORK /../bin/nt-x64/remedybg.exe" ; do
12
+ " $HAM_HOME /toolsets/remedybg/nt-x64/remedybg.exe" \
13
+ " c:/Utils/Apps/remedybg/remedybg.exe" ; do
15
14
if [ -f " $path " ]; then
16
15
echo " $path "
17
16
return 0
@@ -20,13 +19,22 @@ find_remedybg() {
20
19
echo " "
21
20
}
22
21
22
+ find_msvc_ide () {
23
+ if [ -e " $HAM_HOME /toolsets/msvc_19_x64/msvc-find-ide-dir" ]; then
24
+ " $HAM_HOME /toolsets/msvc_19_x64/msvc-find-ide-dir"
25
+ else
26
+ echo " "
27
+ fi
28
+ }
29
+
23
30
usage () {
24
31
echo " usage:"
25
32
echo " ${0##*/ } EXE [ARGS]"
26
- echo " ${0##*/ } bring-to-front"
27
33
echo " ${0##*/ } open-file filename [line-number]"
28
34
echo " ${0##*/ } add-breakpoint filename line-number"
29
35
echo " ${0##*/ } remove-breakpoint filename line-number"
36
+ echo " ${0##*/ } bring-to-front"
37
+ echo " ${0##*/ } gui"
30
38
echo " "
31
39
echo " Supported platforms:"
32
40
echo " Windows:"
@@ -40,7 +48,7 @@ usage() {
40
48
case $HAM_OS in
41
49
NT* )
42
50
REMEDYBG_PATH=$( find_remedybg)
43
- MSVC_IDE_DIR=$( msvc-find-ide-dir )
51
+ MSVC_IDE_DIR=$( find_msvc_ide )
44
52
echo " Local environment:"
45
53
echo " REMEDYBG_PATH: $REMEDYBG_PATH "
46
54
echo " MSVC_IDE_DIR: $MSVC_IDE_DIR "
@@ -71,22 +79,31 @@ command_open_file() {
71
79
NT* )
72
80
REMEDYBG_PATH=$( find_remedybg)
73
81
if [ -n " $REMEDYBG_PATH " ]; then
74
- (set -x ; " $REMEDYBG_PATH " open-file " $FILENAME " $LINE_NUMBER )
82
+ (
83
+ set -x
84
+ # shellcheck disable=SC2086
85
+ " $REMEDYBG_PATH " open-file " $FILENAME " $LINE_NUMBER
86
+ )
75
87
else
76
- IDE_DIR=$( msvc-find-ide-dir )
88
+ IDE_DIR=$( find_msvc_ide )
77
89
if [ -n " $IDE_DIR " ]; then
78
90
if [ -n " $LINE_NUMBER " ]; then
79
- (set -x ; " $IDE_DIR /Common7/IDE/devenv.exe" -Edit " $FILENAME " -Command " GotoLine $LINE_NUMBER " )
91
+ (
92
+ set -x
93
+ " $IDE_DIR /devenv.exe" -Edit " $FILENAME " -Command " edit.goto $LINE_NUMBER "
94
+ )
80
95
else
81
- (set -x ; " $IDE_DIR /Common7/IDE/devenv.exe" -Edit " $FILENAME " )
96
+ (
97
+ set -x
98
+ " $IDE_DIR /devenv.exe" -Edit " $FILENAME "
99
+ )
82
100
fi
83
101
else
84
102
log_error " Neither RemedyBG nor Visual Studio found"
85
103
exit 1
86
104
fi
87
105
fi
88
106
;;
89
-
90
107
* )
91
108
log_error " open-file command not supported on this platform"
92
109
exit 1
@@ -99,13 +116,17 @@ command_bring_to_front() {
99
116
NT* )
100
117
REMEDYBG_PATH=$( find_remedybg)
101
118
if [ -n " $REMEDYBG_PATH " ]; then
102
- (set -x ; " $REMEDYBG_PATH " bring-debugger-to-foreground)
119
+ (
120
+ set -x
121
+ " $REMEDYBG_PATH " bring-debugger-to-foreground
122
+ )
103
123
else
104
- log_warning " bring-to-front not supported for Visual Studio. "
124
+ log_warning " bring-to-front not supported for Visual Studio"
105
125
fi
106
126
;;
127
+
107
128
* )
108
- log_error " bring-to-front command not supported on this platform. "
129
+ log_error " bring-to-front command not supported on this platform"
109
130
exit 1
110
131
;;
111
132
esac
@@ -124,9 +145,10 @@ command_add_breakpoint() {
124
145
NT* )
125
146
REMEDYBG_PATH=$( find_remedybg)
126
147
if [ -n " $REMEDYBG_PATH " ]; then
127
- (set -x ;
128
- " $REMEDYBG_PATH " add-breakpoint-at-file " $FILENAME " " $LINE_NUMBER "
129
- " $REMEDYBG_PATH " open-file " $FILENAME " " $LINE_NUMBER "
148
+ (
149
+ set -x
150
+ " $REMEDYBG_PATH " add-breakpoint-at-file " $FILENAME " " $LINE_NUMBER "
151
+ " $REMEDYBG_PATH " open-file " $FILENAME " " $LINE_NUMBER "
130
152
)
131
153
else
132
154
log_warning " add-breakpoint not supported for Visual Studio"
@@ -153,9 +175,10 @@ command_remove_breakpoint() {
153
175
NT* )
154
176
REMEDYBG_PATH=$( find_remedybg)
155
177
if [ -n " $REMEDYBG_PATH " ]; then
156
- (set -x ;
157
- " $REMEDYBG_PATH " remove-breakpoint-at-file " $FILENAME " " $LINE_NUMBER "
158
- " $REMEDYBG_PATH " open-file " $FILENAME " " $LINE_NUMBER "
178
+ (
179
+ set -x
180
+ " $REMEDYBG_PATH " remove-breakpoint-at-file " $FILENAME " " $LINE_NUMBER "
181
+ " $REMEDYBG_PATH " open-file " $FILENAME " " $LINE_NUMBER "
159
182
)
160
183
else
161
184
log_warning " remove-breakpoint not supported for Visual Studio"
@@ -169,6 +192,47 @@ command_remove_breakpoint() {
169
192
esac
170
193
}
171
194
195
+ command_gui () {
196
+ case $HAM_OS in
197
+ NT* )
198
+ REMEDYBG_PATH=$( find_remedybg)
199
+ if [ -n " $REMEDYBG_PATH " ]; then
200
+ (
201
+ set -x
202
+ " $REMEDYBG_PATH " " $@ "
203
+ )
204
+ else
205
+ IDE_DIR=$( find_msvc_ide)
206
+ if [ -n " $IDE_DIR " ]; then
207
+ (
208
+ set -x
209
+ " $IDE_DIR /devenv.exe" " $@ "
210
+ )
211
+ else
212
+ log_error " Neither RemedyBG nor Visual Studio found"
213
+ exit 1
214
+ fi
215
+ fi
216
+ ;;
217
+ LINUX* )
218
+ (
219
+ set -x
220
+ gdb " $@ "
221
+ )
222
+ ;;
223
+ OSX* )
224
+ (
225
+ set -x
226
+ lldb " $@ "
227
+ )
228
+ ;;
229
+ * )
230
+ log_error " gui command not supported on '$HAM_OS '."
231
+ exit 1
232
+ ;;
233
+ esac
234
+ }
235
+
172
236
# #######################################################################
173
237
# # Handle commands
174
238
# #######################################################################
@@ -193,6 +257,11 @@ case "$1" in
193
257
command_remove_breakpoint " $@ "
194
258
exit 0
195
259
;;
260
+ gui)
261
+ shift
262
+ command_gui " $@ "
263
+ exit 0
264
+ ;;
196
265
* )
197
266
EXE_PATH=" $1 "
198
267
if [ ! -e " $EXE_PATH " ]; then
@@ -229,41 +298,39 @@ case $HAM_OS in
229
298
# # Windows: Use RemedyBG if available otherwise try to use devenv.exe
230
299
# #######################################################################
231
300
NT* )
232
- if [ -z " $REMEDYBG_PATH " ]; then
233
- REMEDYBG_PATH=$( find_remedybg)
234
- fi
235
-
301
+ REMEDYBG_PATH=$( find_remedybg)
236
302
if [ -n " $REMEDYBG_PATH " ]; then
237
303
RDBG_SESSION_FILE=" ${OUT_DIR} /${OUT_BASENAME} .rdbg"
304
+ RDBG_GEN_EXE=" $( dirname " $REMEDYBG_PATH " ) /rdbg_gen.exe"
238
305
log_info " REMEDYBG_PATH: $REMEDYBG_PATH "
239
306
log_info " RDBG_SESSION_FILE: $RDBG_SESSION_FILE "
240
- mkdir -p " $( dirname " $RDBG_SESSION_FILE " ) "
241
307
242
- if [ ! -e " $EXE_PATH " ]; then
243
- log_error " Can't find the exe at '$EXE_PATH '."
244
- usage
308
+ if [ ! -e " $RDBG_SESSION_FILE " ]; then
309
+ log_info " Generating the session file."
310
+ (
311
+ mkdir -p " $( dirname " $RDBG_SESSION_FILE " ) "
312
+ " $RDBG_GEN_EXE " " $RDBG_SESSION_FILE " " $EXE_DIR " " $EXE_PATH " " ${EXE_ARGS[@]} "
313
+ )
245
314
fi
246
315
247
316
if [ -e " $RDBG_SESSION_FILE " ]; then
248
- log_info " Found the session file so opening that ."
317
+ log_info " Opening the existing session file."
249
318
(
250
319
set -x
251
- " $REMEDYBG_PATH " -g -q " $RDBG_SESSION_FILE " &
252
- true
320
+ " $REMEDYBG_PATH " -g -q " $RDBG_SESSION_FILE "
253
321
)
254
322
else
255
323
log_info " No session file, opening the exe directly."
256
324
(
257
325
set -x
258
- " $REMEDYBG_PATH " -g -q " $EXE_PATH " " ${EXE_ARGS[@]} " &
259
- true
326
+ " $REMEDYBG_PATH " -g -q " $EXE_PATH " " ${EXE_ARGS[@]} "
260
327
)
261
328
fi
262
329
else
263
330
if [ -z " $MSVC_DEVENV_PATH " ]; then
264
- MSVC_IDE_DIR=$( msvc-find-ide-dir )
331
+ MSVC_IDE_DIR=$( find_msvc_ide )
265
332
if [ -n " $MSVC_IDE_DIR " ]; then
266
- MSVC_DEVENV_PATH=" $MSVC_IDE_DIR /Common7/IDE/ devenv.exe"
333
+ MSVC_DEVENV_PATH=" $MSVC_IDE_DIR /devenv.exe"
267
334
else
268
335
log_error " Neither RemedyBG nor Visual Studio found"
269
336
usage
@@ -279,7 +346,7 @@ case $HAM_OS in
279
346
;;
280
347
281
348
# #######################################################################
282
- # # macOS : Use gdb with a decent setup
349
+ # # Linux : Use gdb with a decent setup
283
350
# #######################################################################
284
351
LINUX* )
285
352
GDB_FILE=" ${OUT_DIR} /${OUT_BASENAME} .gdb"
0 commit comments