169{
173
178
182 UINT64 Address =
NULL;
184
185 if (CommandTokens.size() >= 9)
186 {
187 ShowMessages("incorrect use of the '%s'\n\n",
190 return;
191 }
192
193
194
195
196#if ActivateUserModeDebugger == FALSE
197
199 {
200 ShowMessages("the user-mode debugger in VMI Mode is still in the beta version and not stable. "
201 "we decided to exclude it from this release and release it in future versions. "
202 "if you want to test the user-mode debugger in VMI Mode, you should build "
203 "HyperDbg with special instructions. But starting processes is fully supported "
204 "in the Debugger Mode.\n"
205 "(it's not recommended to use it in VMI Mode yet!)\n");
206 return;
207 }
208
209#endif
210
211
212
213
215 {
217 }
218
219 for (auto Section : CommandTokens)
220 {
221
222
223
224 if (IsFirstCommand ==
TRUE)
225 {
226 IsFirstCommand =
FALSE;
227 continue;
228 }
229
230 if (IsNextCoreId)
231 {
233 {
234 ShowMessages("please specify a correct hex value for core id\n\n");
236 return;
237 }
238 IsNextCoreId =
FALSE;
239 continue;
240 }
241 if (IsNextPid)
242 {
244 {
245 ShowMessages("please specify a correct hex value for process id\n\n");
247 return;
248 }
250 continue;
251 }
252
253 if (IsNextTid)
254 {
256 {
257 ShowMessages("please specify a correct hex value for thread id\n\n");
259 return;
260 }
262 continue;
263 }
264
266 {
268 continue;
269 }
271 {
273 continue;
274 }
276 {
278 continue;
279 }
280
281 if (!SetAddress)
282 {
284 {
285
286
287
288 ShowMessages("err, couldn't resolve error at '%s'\n\n",
291 return;
292 }
293 else
294 {
295
296
297
299 continue;
300 }
301 }
302 }
303
304
305
306
307 if (!SetAddress)
308 {
309 ShowMessages("please specify a correct hex value as the breakpoint address\n\n");
311 return;
312 }
313 if (IsNextPid)
314 {
315 ShowMessages("please specify a correct hex value for process id\n\n");
317 return;
318 }
319 if (IsNextCoreId)
320 {
321 ShowMessages("please specify a correct hex value for core\n\n");
323 return;
324 }
325 if (IsNextTid)
326 {
327 ShowMessages("please specify a correct hex value for thread id\n\n");
329 return;
330 }
331
333 {
334 ShowMessages("setting breakpoints is not possible when you're not connected "
335 "to a target debuggee (kernel debugger or user debugger)\n");
336 return;
337 }
338
339
340
341
343 {
344 ShowMessages("err, couldn't set breakpoint\n");
345 }
346}
BOOLEAN g_IsSerialConnectedToRemoteDebuggee
Shows if the debugger was connected to remote debuggee over (A remote guest).
Definition globals.h:253
ACTIVE_DEBUGGING_PROCESS g_ActiveProcessDebuggingState
State of active debugging thread.
Definition globals.h:372
VOID CommandBpHelp()
help of the bp command
Definition bp.cpp:27
BOOLEAN CommandBpRequest(UINT64 Address, UINT32 Pid, UINT32 Tid, UINT32 CoreNumer)
request breakpoint
Definition bp.cpp:119
std::string GetCaseSensitiveStringFromCommandToken(CommandToken TargetToken)
Get case sensitive string from command token.
Definition common.cpp:467
BOOLEAN CompareLowerCaseStrings(CommandToken TargetToken, const CHAR *StringToCompare)
Compare lower case strings.
Definition common.cpp:503
BOOLEAN ConvertTokenToUInt32(CommandToken TargetToken, PUINT32 Result)
check and convert command token to a 32 bit unsigned integer
Definition common.cpp:546
NULL()
Definition test-case-generator.py:530
BOOLEAN SymbolConvertNameOrExprToAddress(const string &TextToConvert, PUINT64 Result)
check and convert string to a 64 bit unsigned integer and also check for symbol object names and eval...
Definition symbol.cpp:359