- Timestamp:
- Jun 2, 2012 8:11:07 PM (13 years ago)
- Location:
- trunk
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/err.h
r41299 r41553 2095 2095 2096 2096 2097 /** @name DBGC Status Codes 2098 * @{ */ 2099 /** Status that causes DBGC to quit. */ 2100 #define VERR_DBGC_QUIT (-5400) 2101 /** Async command pending. */ 2102 #define VWRN_DBGC_CMD_PENDING 5401 2103 /** The command has already been registered. */ 2104 #define VWRN_DBGC_ALREADY_REGISTERED 5402 2105 /** The command cannot be deregistered because has not been registered. */ 2106 #define VERR_DBGC_COMMANDS_NOT_REGISTERED (-5403) 2107 /** Unknown breakpoint. */ 2108 #define VERR_DBGC_BP_NOT_FOUND (-5404) 2109 /** The breakpoint already exists. */ 2110 #define VERR_DBGC_BP_EXISTS (-5405) 2111 /** The breakpoint has no command. */ 2112 #define VINF_DBGC_BP_NO_COMMAND 5406 2113 /** Generic debugger command failure. */ 2114 #define VERR_DBGC_COMMAND_FAILED (-5407) 2115 2116 /** The lowest parse status code. */ 2117 #define VERR_DBGC_PARSE_LOWEST (-5499) 2118 /** Syntax error - too few arguments. */ 2119 #define VERR_DBGC_PARSE_TOO_FEW_ARGUMENTS (VERR_DBGC_PARSE_LOWEST + 0) 2120 /** Syntax error - too many arguments. */ 2121 #define VERR_DBGC_PARSE_TOO_MANY_ARGUMENTS (VERR_DBGC_PARSE_LOWEST + 1) 2122 /** Syntax error - too many arguments for static storage. */ 2123 #define VERR_DBGC_PARSE_ARGUMENT_OVERFLOW (VERR_DBGC_PARSE_LOWEST + 2) 2124 /** Syntax error - argument didn't match description. */ 2125 #define VERR_DBGC_PARSE_NO_ARGUMENT_MATCH (VERR_DBGC_PARSE_LOWEST + 3) 2126 /** Syntax error - the argument does not allow a range to be specified. */ 2127 #define VERR_DBGC_PARSE_NO_RANGE_ALLOWED (VERR_DBGC_PARSE_LOWEST + 5) 2128 /** Syntax error - unbalanced quotes. */ 2129 #define VERR_DBGC_PARSE_UNBALANCED_QUOTE (VERR_DBGC_PARSE_LOWEST + 6) 2130 /** Syntax error - unbalanced parenthesis. */ 2131 #define VERR_DBGC_PARSE_UNBALANCED_PARENTHESIS (VERR_DBGC_PARSE_LOWEST + 7) 2132 /** Syntax error - an argument or subargument contains nothing useful. */ 2133 #define VERR_DBGC_PARSE_EMPTY_ARGUMENT (VERR_DBGC_PARSE_LOWEST + 8) 2134 /** Syntax error - invalid operator usage. */ 2135 #define VERR_DBGC_PARSE_UNEXPECTED_OPERATOR (VERR_DBGC_PARSE_LOWEST + 9) 2136 /** Syntax error - invalid numeric value. */ 2137 #define VERR_DBGC_PARSE_INVALID_NUMBER (VERR_DBGC_PARSE_LOWEST + 10) 2138 /** Syntax error - numeric overflow. */ 2139 #define VERR_DBGC_PARSE_NUMBER_TOO_BIG (VERR_DBGC_PARSE_LOWEST + 11) 2140 /** Syntax error - invalid operation attempted. */ 2141 #define VERR_DBGC_PARSE_INVALID_OPERATION (VERR_DBGC_PARSE_LOWEST + 12) 2142 /** Syntax error - function not found. */ 2143 #define VERR_DBGC_PARSE_FUNCTION_NOT_FOUND (VERR_DBGC_PARSE_LOWEST + 13) 2144 /** Syntax error - the specified function is not a function. */ 2145 #define VERR_DBGC_PARSE_NOT_A_FUNCTION (VERR_DBGC_PARSE_LOWEST + 14) 2146 /** Syntax error - out of regular heap memory. */ 2147 #define VERR_DBGC_PARSE_NO_MEMORY (VERR_DBGC_PARSE_LOWEST + 15) 2148 /** Syntax error - incorrect argument type. */ 2149 #define VERR_DBGC_PARSE_INCORRECT_ARG_TYPE (VERR_DBGC_PARSE_LOWEST + 16) 2150 /** Syntax error - an undefined variable was referenced. */ 2151 #define VERR_DBGC_PARSE_VARIABLE_NOT_FOUND (VERR_DBGC_PARSE_LOWEST + 17) 2152 /** Syntax error - a type conversion failed. */ 2153 #define VERR_DBGC_PARSE_CONVERSION_FAILED (VERR_DBGC_PARSE_LOWEST + 18) 2154 /** Syntax error - you hit a debugger feature which isn't implemented yet. 2155 * (Feel free to help implement it.) */ 2156 #define VERR_DBGC_PARSE_NOT_IMPLEMENTED (VERR_DBGC_PARSE_LOWEST + 19) 2157 /** Syntax error - Couldn't staisfy a request for a sepcific result type. */ 2158 #define VERR_DBGC_PARSE_BAD_RESULT_TYPE (VERR_DBGC_PARSE_LOWEST + 20) 2159 /** Syntax error - Cannot read symbol value, it is a set-only symbol. */ 2160 #define VERR_DBGC_PARSE_WRITEONLY_SYMBOL (VERR_DBGC_PARSE_LOWEST + 21) 2161 /** Syntax error - Invalid command name. */ 2162 #define VERR_DBGC_PARSE_INVALD_COMMAND_NAME (VERR_DBGC_PARSE_LOWEST + 22) 2163 /** Syntax error - Command not found. */ 2164 #define VERR_DBGC_PARSE_COMMAND_NOT_FOUND (VERR_DBGC_PARSE_LOWEST + 23) 2165 2166 /** Syntax error - Obsolete. */ 2167 #define VERR_DBGC_PARSE_ARGUMENT_TYPE_MISMATCH (VERR_DBGC_PARSE_LOWEST + 4) 2168 2169 2170 /** @} */ 2171 2097 2172 /** @name VBox Extension Pack Status Codes 2098 2173 * @{ -
trunk/src/VBox/Debugger/DBGCCmdHlp.cpp
r41546 r41553 383 383 384 384 default: 385 rc = VERR_ PARSE_INCORRECT_ARG_TYPE;385 rc = VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 386 386 } 387 387 … … 697 697 case DBGCVAR_TYPE_HC_PHYS: 698 698 default: 699 return VERR_ PARSE_CONVERSION_FAILED;699 return VERR_DBGC_PARSE_CONVERSION_FAILED; 700 700 } 701 701 } … … 768 768 case DBGCVAR_TYPE_SYMBOL: 769 769 case DBGCVAR_TYPE_STRING: 770 return VERR_ PARSE_INCORRECT_ARG_TYPE; /** @todo better error code! */770 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; /** @todo better error code! */ 771 771 default: 772 return VERR_ PARSE_INCORRECT_ARG_TYPE;772 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 773 773 } 774 774 *pu64Number = u64Number; … … 816 816 return VINF_SUCCESS; 817 817 } 818 return VERR_ PARSE_INCORRECT_ARG_TYPE; /** @todo better error code! */818 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; /** @todo better error code! */ 819 819 820 820 case DBGCVAR_TYPE_GC_FLAT: … … 829 829 case DBGCVAR_TYPE_SYMBOL: 830 830 default: 831 return VERR_ PARSE_INCORRECT_ARG_TYPE;831 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 832 832 } 833 833 } … … 882 882 883 883 case DBGCVAR_TYPE_GC_FAR: 884 return VERR_ PARSE_INCORRECT_ARG_TYPE;884 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 885 885 886 886 case DBGCVAR_TYPE_GC_PHYS: … … 891 891 if (RT_SUCCESS(rc)) 892 892 return VINF_SUCCESS; 893 return VERR_ PARSE_CONVERSION_FAILED;893 return VERR_DBGC_PARSE_CONVERSION_FAILED; 894 894 895 895 case DBGCVAR_TYPE_HC_FLAT: … … 901 901 if (RT_SUCCESS(rc)) 902 902 return VINF_SUCCESS; 903 return VERR_ PARSE_CONVERSION_FAILED;903 return VERR_DBGC_PARSE_CONVERSION_FAILED; 904 904 905 905 case DBGCVAR_TYPE_HC_PHYS: … … 910 910 if (RT_SUCCESS(rc)) 911 911 return VINF_SUCCESS; 912 return VERR_ PARSE_CONVERSION_FAILED;912 return VERR_DBGC_PARSE_CONVERSION_FAILED; 913 913 914 914 case DBGCVAR_TYPE_NUMBER: … … 919 919 case DBGCVAR_TYPE_STRING: 920 920 case DBGCVAR_TYPE_SYMBOL: 921 return VERR_ PARSE_INCORRECT_ARG_TYPE;921 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 922 922 923 923 case DBGCVAR_TYPE_UNKNOWN: … … 938 938 return VINF_SUCCESS; 939 939 } 940 return VERR_ PARSE_CONVERSION_FAILED;940 return VERR_DBGC_PARSE_CONVERSION_FAILED; 941 941 942 942 case DBGCVAR_TYPE_GC_FAR: … … 952 952 return VINF_SUCCESS; 953 953 } 954 return VERR_ PARSE_CONVERSION_FAILED;954 return VERR_DBGC_PARSE_CONVERSION_FAILED; 955 955 956 956 case DBGCVAR_TYPE_HC_FLAT: … … 964 964 return VINF_SUCCESS; 965 965 } 966 return VERR_ PARSE_CONVERSION_FAILED;966 return VERR_DBGC_PARSE_CONVERSION_FAILED; 967 967 968 968 case DBGCVAR_TYPE_HC_PHYS: … … 975 975 return VINF_SUCCESS; 976 976 } 977 return VERR_ PARSE_CONVERSION_FAILED;977 return VERR_DBGC_PARSE_CONVERSION_FAILED; 978 978 979 979 case DBGCVAR_TYPE_NUMBER: … … 984 984 case DBGCVAR_TYPE_STRING: 985 985 case DBGCVAR_TYPE_SYMBOL: 986 return VERR_ PARSE_INCORRECT_ARG_TYPE;986 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 987 987 988 988 case DBGCVAR_TYPE_UNKNOWN: … … 997 997 case DBGCVAR_TYPE_GC_FLAT: 998 998 //rc = MMR3PhysGCPhys2GCVirtEx(pDbgc->pVM, pResult->u.GCPhys, ..., &pResult->u.GCFlat); - yea, sure. 999 return VERR_ PARSE_INCORRECT_ARG_TYPE;999 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 1000 1000 1001 1001 case DBGCVAR_TYPE_GC_FAR: 1002 return VERR_ PARSE_INCORRECT_ARG_TYPE;1002 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 1003 1003 1004 1004 case DBGCVAR_TYPE_GC_PHYS: … … 1013 1013 if (RT_SUCCESS(rc)) 1014 1014 return VINF_SUCCESS; 1015 return VERR_ PARSE_CONVERSION_FAILED;1015 return VERR_DBGC_PARSE_CONVERSION_FAILED; 1016 1016 1017 1017 case DBGCVAR_TYPE_HC_PHYS: … … 1022 1022 if (RT_SUCCESS(rc)) 1023 1023 return VINF_SUCCESS; 1024 return VERR_ PARSE_CONVERSION_FAILED;1024 return VERR_DBGC_PARSE_CONVERSION_FAILED; 1025 1025 1026 1026 case DBGCVAR_TYPE_NUMBER: … … 1031 1031 case DBGCVAR_TYPE_STRING: 1032 1032 case DBGCVAR_TYPE_SYMBOL: 1033 return VERR_ PARSE_INCORRECT_ARG_TYPE;1033 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 1034 1034 1035 1035 case DBGCVAR_TYPE_UNKNOWN: … … 1043 1043 { 1044 1044 case DBGCVAR_TYPE_GC_FLAT: 1045 return VERR_ PARSE_INCORRECT_ARG_TYPE;1045 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 1046 1046 1047 1047 case DBGCVAR_TYPE_GC_FAR: 1048 return VERR_ PARSE_INCORRECT_ARG_TYPE;1048 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 1049 1049 1050 1050 case DBGCVAR_TYPE_GC_PHYS: … … 1054 1054 return VINF_SUCCESS; 1055 1055 /** @todo more memory types! */ 1056 return VERR_ PARSE_CONVERSION_FAILED;1056 return VERR_DBGC_PARSE_CONVERSION_FAILED; 1057 1057 1058 1058 case DBGCVAR_TYPE_HC_FLAT: … … 1065 1065 return VINF_SUCCESS; 1066 1066 /** @todo more memory types! */ 1067 return VERR_ PARSE_CONVERSION_FAILED;1067 return VERR_DBGC_PARSE_CONVERSION_FAILED; 1068 1068 1069 1069 case DBGCVAR_TYPE_NUMBER: … … 1074 1074 case DBGCVAR_TYPE_STRING: 1075 1075 case DBGCVAR_TYPE_SYMBOL: 1076 return VERR_ PARSE_INCORRECT_ARG_TYPE;1076 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 1077 1077 1078 1078 case DBGCVAR_TYPE_UNKNOWN: … … 1086 1086 { 1087 1087 case DBGCVAR_TYPE_GC_FLAT: 1088 return VERR_ PARSE_INCORRECT_ARG_TYPE;1088 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 1089 1089 1090 1090 case DBGCVAR_TYPE_GC_FAR: 1091 return VERR_ PARSE_INCORRECT_ARG_TYPE;1091 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 1092 1092 1093 1093 case DBGCVAR_TYPE_GC_PHYS: … … 1096 1096 if (RT_SUCCESS(rc)) 1097 1097 return VINF_SUCCESS; 1098 return VERR_ PARSE_CONVERSION_FAILED;1098 return VERR_DBGC_PARSE_CONVERSION_FAILED; 1099 1099 1100 1100 case DBGCVAR_TYPE_HC_FLAT: 1101 return VERR_ PARSE_INCORRECT_ARG_TYPE;1101 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 1102 1102 1103 1103 case DBGCVAR_TYPE_HC_PHYS: … … 1111 1111 case DBGCVAR_TYPE_STRING: 1112 1112 case DBGCVAR_TYPE_SYMBOL: 1113 return VERR_ PARSE_INCORRECT_ARG_TYPE;1113 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 1114 1114 1115 1115 case DBGCVAR_TYPE_UNKNOWN: … … 1128 1128 1129 1129 case DBGCVAR_TYPE_GC_FAR: 1130 return VERR_ PARSE_INCORRECT_ARG_TYPE;1130 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 1131 1131 1132 1132 case DBGCVAR_TYPE_GC_PHYS: … … 1150 1150 case DBGCVAR_TYPE_STRING: 1151 1151 case DBGCVAR_TYPE_SYMBOL: 1152 return VERR_ PARSE_INCORRECT_ARG_TYPE;1152 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 1153 1153 1154 1154 case DBGCVAR_TYPE_UNKNOWN: … … 1181 1181 } 1182 1182 } 1183 return VERR_ PARSE_INCORRECT_ARG_TYPE;1183 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 1184 1184 1185 1185 case DBGCVAR_TYPE_STRING: -
trunk/src/VBox/Debugger/DBGCCommands.cpp
r40282 r41553 906 906 * Dump it. 907 907 */ 908 int rc = DBGFR3InfoEx(pVM, pDbgc->idCpu, 909 paArgs[0].u.pszString, 910 cArgs == 2 ? paArgs[1].u.pszString : NULL, 908 int rc = DBGFR3InfoEx(pVM, pDbgc->idCpu, 909 paArgs[0].u.pszString, 910 cArgs == 2 ? paArgs[1].u.pszString : NULL, 911 911 DBGCCmdHlpGetDbgfOutputHlp(pCmdHlp)); 912 912 if (RT_FAILURE(rc)) … … 1125 1125 && paArgs[0].enmType == DBGCVAR_TYPE_STRING 1126 1126 && DBGCVAR_ISPOINTER(paArgs[1].enmType), 1127 VERR_ PARSE_INCORRECT_ARG_TYPE);1127 VERR_DBGC_PARSE_INCORRECT_ARG_TYPE); 1128 1128 1129 1129 const char *pszFilename = paArgs[0].u.pszString; … … 1137 1137 if (cArgs >= 3) 1138 1138 { 1139 AssertReturn(paArgs[2].enmType == DBGCVAR_TYPE_STRING, VERR_ PARSE_INCORRECT_ARG_TYPE);1139 AssertReturn(paArgs[2].enmType == DBGCVAR_TYPE_STRING, VERR_DBGC_PARSE_INCORRECT_ARG_TYPE); 1140 1140 pszModName = paArgs[2].u.pszString; 1141 1141 } … … 1175 1175 && paArgs[0].enmType == DBGCVAR_TYPE_STRING 1176 1176 && DBGCVAR_ISPOINTER(paArgs[1].enmType), 1177 VERR_ PARSE_INCORRECT_ARG_TYPE);1177 VERR_DBGC_PARSE_INCORRECT_ARG_TYPE); 1178 1178 1179 1179 const char *pszFilename = paArgs[0].u.pszString; … … 1187 1187 if (cArgs >= 3) 1188 1188 { 1189 AssertReturn(paArgs[2].enmType == DBGCVAR_TYPE_STRING, VERR_ PARSE_INCORRECT_ARG_TYPE);1189 AssertReturn(paArgs[2].enmType == DBGCVAR_TYPE_STRING, VERR_DBGC_PARSE_INCORRECT_ARG_TYPE); 1190 1190 pszModName = paArgs[2].u.pszString; 1191 1191 } … … 1194 1194 if (cArgs >= 4) 1195 1195 { 1196 AssertReturn(paArgs[3].enmType == DBGCVAR_TYPE_NUMBER, VERR_ PARSE_INCORRECT_ARG_TYPE);1196 AssertReturn(paArgs[3].enmType == DBGCVAR_TYPE_NUMBER, VERR_DBGC_PARSE_INCORRECT_ARG_TYPE); 1197 1197 uSubtrahend = paArgs[3].u.u64Number; 1198 1198 } … … 1201 1201 if (cArgs >= 5) 1202 1202 { 1203 AssertReturn(paArgs[4].enmType == DBGCVAR_TYPE_NUMBER, VERR_ PARSE_INCORRECT_ARG_TYPE);1203 AssertReturn(paArgs[4].enmType == DBGCVAR_TYPE_NUMBER, VERR_DBGC_PARSE_INCORRECT_ARG_TYPE); 1204 1204 iModSeg = (RTDBGSEGIDX)paArgs[4].u.u64Number; 1205 1205 if ( iModSeg != paArgs[4].u.u64Number … … 1243 1243 && DBGCVAR_ISPOINTER(paArgs[1].enmType) 1244 1244 && paArgs[2].enmType == DBGCVAR_TYPE_NUMBER, 1245 VERR_ PARSE_INCORRECT_ARG_TYPE);1245 VERR_DBGC_PARSE_INCORRECT_ARG_TYPE); 1246 1246 1247 1247 const char *pszFilename = paArgs[0].u.pszString; … … 1260 1260 if (cArgs >= 4) 1261 1261 { 1262 AssertReturn(paArgs[3].enmType == DBGCVAR_TYPE_STRING, VERR_ PARSE_INCORRECT_ARG_TYPE);1262 AssertReturn(paArgs[3].enmType == DBGCVAR_TYPE_STRING, VERR_DBGC_PARSE_INCORRECT_ARG_TYPE); 1263 1263 pszModName = paArgs[3].u.pszString; 1264 1264 } … … 1298 1298 { 1299 1299 AssertMsgFailed(("Parse error, first argument required to be string!\n")); 1300 return VERR_ PARSE_INCORRECT_ARG_TYPE;1300 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 1301 1301 } 1302 1302 DBGCVAR AddrVar; … … 1318 1318 { 1319 1319 AssertMsgFailed(("Parse error, module argument required to be string!\n")); 1320 return VERR_ PARSE_INCORRECT_ARG_TYPE;1320 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 1321 1321 } 1322 1322 pszModule = paArgs[iArg].u.pszString; … … 1327 1327 { 1328 1328 AssertMsgFailed(("Parse error, module argument required to be GC pointer!\n")); 1329 return VERR_ PARSE_INCORRECT_ARG_TYPE;1329 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 1330 1330 } 1331 1331 int rc = DBGCCmdHlpEval(pCmdHlp, &AddrVar, "%%(%Dv)", &paArgs[iArg]); … … 1339 1339 { 1340 1340 AssertMsgFailed(("Parse error, module argument required to be an integer!\n")); 1341 return VERR_ PARSE_INCORRECT_ARG_TYPE;1341 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 1342 1342 } 1343 1343 cbModule = (unsigned)paArgs[iArg].u.u64Number; … … 1346 1346 { 1347 1347 AssertMsgFailed(("Parse error, too many arguments!\n")); 1348 return VERR_ PARSE_TOO_MANY_ARGUMENTS;1348 return VERR_DBGC_PARSE_TOO_MANY_ARGUMENTS; 1349 1349 } 1350 1350 } … … 1383 1383 AssertMsg(paArgs[0].enmType == DBGCVAR_TYPE_STRING, ("expected string not %d as first arg!\n", paArgs[0].enmType)); 1384 1384 if (paArgs[0].enmType != DBGCVAR_TYPE_STRING) 1385 return VERR_ PARSE_INCORRECT_ARG_TYPE;1385 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 1386 1386 1387 1387 … … 1421 1421 void *pv = RTMemRealloc(pDbgc->papVars[iVar], cbVar); 1422 1422 if (!pv) 1423 return VERR_ PARSE_NO_MEMORY;1423 return VERR_DBGC_PARSE_NO_MEMORY; 1424 1424 PDBGCNAMEDVAR pVar = pDbgc->papVars[iVar] = (PDBGCNAMEDVAR)pv; 1425 1425 … … 1449 1449 { 1450 1450 RTMemFree(pVar); 1451 return VERR_ PARSE_NO_MEMORY;1451 return VERR_DBGC_PARSE_NO_MEMORY; 1452 1452 } 1453 1453 pDbgc->papVars = (PDBGCNAMEDVAR *)pv; … … 1481 1481 { 1482 1482 AssertMsgFailed(("expected strings only. (arg=%d)!\n", i)); 1483 return VERR_ PARSE_INCORRECT_ARG_TYPE;1483 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 1484 1484 } 1485 1485 … … 1537 1537 { 1538 1538 AssertMsgFailed(("Expected one string exactly!\n")); 1539 return VERR_ PARSE_INCORRECT_ARG_TYPE;1539 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 1540 1540 } 1541 1541 … … 2089 2089 { 2090 2090 AssertMsgFailed(("Expected one string exactly!\n")); 2091 return VERR_ PARSE_INCORRECT_ARG_TYPE;2091 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 2092 2092 } 2093 2093 -
trunk/src/VBox/Debugger/DBGCEval.cpp
r41546 r41553 75 75 { 76 76 if (pszExpr[--cchExpr] != ch) 77 return VERR_ PARSE_UNBALANCED_QUOTE;77 return VERR_DBGC_PARSE_UNBALANCED_QUOTE; 78 78 cchExpr--; 79 79 pszExpr++; … … 117 117 u64 = u64 * uBase + u; 118 118 else 119 return VERR_ PARSE_INVALID_NUMBER;119 return VERR_DBGC_PARSE_INVALID_NUMBER; 120 120 121 121 /* check for overflow - ARG!!! How to detect overflow correctly!?!?!? */ 122 122 if (u64Prev != u64 / uBase) 123 return VERR_ PARSE_NUMBER_TOO_BIG;123 return VERR_DBGC_PARSE_NUMBER_TOO_BIG; 124 124 125 125 /* next */ … … 170 170 case DBGCVAR_CAT_POINTER_NUMBER_NO_RANGE: 171 171 if (pVar->enmRangeType != DBGCVAR_RANGE_NONE) 172 return VERR_ PARSE_NO_RANGE_ALLOWED;172 return VERR_DBGC_PARSE_NO_RANGE_ALLOWED; 173 173 /* fallthru */ 174 174 case DBGCVAR_CAT_POINTER: … … 226 226 case DBGCVAR_CAT_GC_POINTER_NO_RANGE: 227 227 if (pVar->enmRangeType != DBGCVAR_RANGE_NONE) 228 return VERR_ PARSE_NO_RANGE_ALLOWED;228 return VERR_DBGC_PARSE_NO_RANGE_ALLOWED; 229 229 /* fallthru */ 230 230 case DBGCVAR_CAT_GC_POINTER: … … 238 238 case DBGCVAR_TYPE_HC_FLAT: 239 239 case DBGCVAR_TYPE_HC_PHYS: 240 return VERR_ PARSE_CONVERSION_FAILED;240 return VERR_DBGC_PARSE_CONVERSION_FAILED; 241 241 242 242 case DBGCVAR_TYPE_SYMBOL: … … 281 281 case DBGCVAR_CAT_NUMBER_NO_RANGE: 282 282 if (pVar->enmRangeType != DBGCVAR_RANGE_NONE) 283 return VERR_ PARSE_NO_RANGE_ALLOWED;283 return VERR_DBGC_PARSE_NO_RANGE_ALLOWED; 284 284 /* fallthru */ 285 285 case DBGCVAR_CAT_NUMBER: … … 347 347 } 348 348 349 return VERR_ PARSE_NO_ARGUMENT_MATCH;349 return VERR_DBGC_PARSE_NO_ARGUMENT_MATCH; 350 350 } 351 351 … … 372 372 */ 373 373 if (cVars < cVarsMin) 374 return VERR_ PARSE_TOO_FEW_ARGUMENTS;374 return VERR_DBGC_PARSE_TOO_FEW_ARGUMENTS; 375 375 if (cVars > cVarsMax) 376 return VERR_ PARSE_TOO_MANY_ARGUMENTS;376 return VERR_DBGC_PARSE_TOO_MANY_ARGUMENTS; 377 377 378 378 /* … … 387 387 /* walk the descriptors */ 388 388 if (iVarDesc >= cVarDescs) 389 return VERR_ PARSE_TOO_MANY_ARGUMENTS;389 return VERR_DBGC_PARSE_TOO_MANY_ARGUMENTS; 390 390 if ( ( paVarDescs[iVarDesc].fFlags & DBGCVD_FLAGS_DEP_PREV 391 391 && &paVarDescs[iVarDesc - 1] != pPrevDesc) … … 394 394 iVarDesc++; 395 395 if (iVarDesc >= cVarDescs) 396 return VERR_ PARSE_TOO_MANY_ARGUMENTS;396 return VERR_DBGC_PARSE_TOO_MANY_ARGUMENTS; 397 397 cCurDesc = 0; 398 398 } … … 414 414 /* can we advance? */ 415 415 if (paVarDescs[iVarDesc].cTimesMin > cCurDesc) 416 return VERR_ PARSE_ARGUMENT_TYPE_MISMATCH;416 return VERR_DBGC_PARSE_ARGUMENT_TYPE_MISMATCH; 417 417 if (++iVarDesc >= cVarDescs) 418 return VERR_ PARSE_ARGUMENT_TYPE_MISMATCH;418 return VERR_DBGC_PARSE_ARGUMENT_TYPE_MISMATCH; 419 419 cCurDesc = 0; 420 420 } … … 430 430 { 431 431 if (paVarDescs[iVarDesc].cTimesMin > cCurDesc) 432 return VERR_ PARSE_TOO_FEW_ARGUMENTS;432 return VERR_DBGC_PARSE_TOO_FEW_ARGUMENTS; 433 433 cCurDesc = 0; 434 434 … … 470 470 /* binary operators means syntax error. */ 471 471 if (pOp->fBinary) 472 return VERR_ PARSE_UNEXPECTED_OPERATOR;472 return VERR_DBGC_PARSE_UNEXPECTED_OPERATOR; 473 473 474 474 /* … … 482 482 483 483 if (!*pszExpr2) 484 rc = VERR_ PARSE_EMPTY_ARGUMENT;484 rc = VERR_DBGC_PARSE_EMPTY_ARGUMENT; 485 485 else 486 486 { … … 527 527 PCDBGCCMD pFun = dbgcRoutineLookup(pDbgc, pszExpr, pszFunEnd - pszExpr, fExternal); 528 528 if (!pFun) 529 return VERR_ PARSE_FUNCTION_NOT_FOUND;529 return VERR_DBGC_PARSE_FUNCTION_NOT_FOUND; 530 530 #if 0 531 531 if (!pFun->pResultDesc) 532 return VERR_ PARSE_NOT_A_FUNCTION;532 return VERR_DBGC_PARSE_NOT_A_FUNCTION; 533 533 534 534 /* … … 546 546 rc = pFun->pfnHandler(pFun, &pDbgc->CmdHlp, pDbgc->pVM, &Arg, 1, pResult); 547 547 } 548 else if (rc == VERR_ PARSE_EMPTY_ARGUMENT && pFun->cArgsMin == 0)548 else if (rc == VERR_DBGC_PARSE_EMPTY_ARGUMENT && pFun->cArgsMin == 0) 549 549 rc = pFun->pfnHandler(pFun, &pDbgc->CmdHlp, pDbgc->pVM, NULL, 0, pResult); 550 550 #else … … 622 622 pszExpr++, cchExpr--; 623 623 if (!*pszExpr) 624 return VERR_ PARSE_EMPTY_ARGUMENT;624 return VERR_DBGC_PARSE_EMPTY_ARGUMENT; 625 625 626 626 /* it there is any kind of quoting in the expression, it's string meat. */ … … 645 645 { 646 646 if (cPar <= 0) 647 return VERR_ PARSE_UNBALANCED_PARENTHESIS;647 return VERR_DBGC_PARSE_UNBALANCED_PARENTHESIS; 648 648 cPar--; 649 649 if (cPar == 0 && psz[1]) /* If not at end, there's nothing to do. */ … … 667 667 pszExpr++, cchExpr--; 668 668 if (!*pszExpr) 669 return VERR_ PARSE_EMPTY_ARGUMENT;669 return VERR_DBGC_PARSE_EMPTY_ARGUMENT; 670 670 } while (pszExpr[0] == '(' && pszExpr[cchExpr - 1] == ')'); 671 671 } … … 705 705 { 706 706 if (cPar <= 0) 707 return VERR_ PARSE_UNBALANCED_PARENTHESIS;707 return VERR_DBGC_PARSE_UNBALANCED_PARENTHESIS; 708 708 cPar--; 709 709 fBinary = true; … … 721 721 /* If not the right kind of operator we've got a syntax error. */ 722 722 if (pOp->fBinary != fBinary) 723 return VERR_ PARSE_UNEXPECTED_OPERATOR;723 return VERR_DBGC_PARSE_UNEXPECTED_OPERATOR; 724 724 725 725 /* … … 828 828 if (!pCmd->cArgsMin) 829 829 return VINF_SUCCESS; 830 return VERR_ PARSE_TOO_FEW_ARGUMENTS;830 return VERR_DBGC_PARSE_TOO_FEW_ARGUMENTS; 831 831 } 832 832 /** @todo fixme - foo() doesn't work. */ 833 833 if (!pCmd->cArgsMax) 834 return VERR_ PARSE_TOO_MANY_ARGUMENTS;834 return VERR_DBGC_PARSE_TOO_MANY_ARGUMENTS; 835 835 836 836 /* … … 868 868 */ 869 869 if (*pcArgs >= pCmd->cArgsMax) 870 return VERR_ PARSE_TOO_MANY_ARGUMENTS;870 return VERR_DBGC_PARSE_TOO_MANY_ARGUMENTS; 871 871 if (pArg >= &paArgs[cArgs]) 872 return VERR_ PARSE_ARGUMENT_OVERFLOW;872 return VERR_DBGC_PARSE_ARGUMENT_OVERFLOW; 873 873 #ifdef DEBUG_bird /* work in progress. */ 874 874 if (iVarDesc >= cVarDescs) 875 return VERR_ PARSE_TOO_MANY_ARGUMENTS;875 return VERR_DBGC_PARSE_TOO_MANY_ARGUMENTS; 876 876 877 877 /* Walk argument descriptors. */ … … 882 882 iVarDesc++; 883 883 if (iVarDesc >= cVarDescs) 884 return VERR_ PARSE_TOO_MANY_ARGUMENTS;884 return VERR_DBGC_PARSE_TOO_MANY_ARGUMENTS; 885 885 cCurDesc = 0; 886 886 } … … 904 904 { 905 905 if (chQuote) 906 return VERR_ PARSE_UNBALANCED_QUOTE;906 return VERR_DBGC_PARSE_UNBALANCED_QUOTE; 907 907 if (cPar) 908 return VERR_ PARSE_UNBALANCED_PARENTHESIS;908 return VERR_DBGC_PARSE_UNBALANCED_PARENTHESIS; 909 909 pszEnd = psz; 910 910 break; … … 941 941 { 942 942 if (!cPar) 943 return VERR_ PARSE_UNBALANCED_PARENTHESIS;943 return VERR_DBGC_PARSE_UNBALANCED_PARENTHESIS; 944 944 cPar--; 945 945 fBinary = true; … … 1023 1023 /* can we advance? */ 1024 1024 if (paVarDescs[iVarDesc].cTimesMin > cCurDesc) 1025 return VERR_PARSE_ARGUMENT_TYPE_MISMATCH;1025 return rc; 1026 1026 if (++iVarDesc >= cVarDescs) 1027 return VERR_PARSE_ARGUMENT_TYPE_MISMATCH;1027 return rc; 1028 1028 cCurDesc = 0; 1029 1029 } … … 1092 1092 { 1093 1093 DBGCCmdHlpPrintf(&pDbgc->CmdHlp, "Syntax error: Invalid command '%s'!\n", pszCmdInput); 1094 return pDbgc->rcCmd = V INF_PARSE_INVALD_COMMAND_NAME;1094 return pDbgc->rcCmd = VERR_DBGC_PARSE_INVALD_COMMAND_NAME; 1095 1095 } 1096 1096 … … 1102 1102 { 1103 1103 DBGCCmdHlpPrintf(&pDbgc->CmdHlp, "Syntax error: Unknown command '%s'!\n", pszCmdInput); 1104 return pDbgc->rcCmd = V INF_PARSE_COMMAND_NOT_FOUND;1104 return pDbgc->rcCmd = VERR_DBGC_PARSE_COMMAND_NOT_FOUND; 1105 1105 } 1106 1106 … … 1131 1131 switch (rc) 1132 1132 { 1133 case VERR_ PARSE_TOO_FEW_ARGUMENTS:1133 case VERR_DBGC_PARSE_TOO_FEW_ARGUMENTS: 1134 1134 rc = DBGCCmdHlpPrintf(&pDbgc->CmdHlp, 1135 1135 "Syntax error: Too few arguments. Minimum is %d for command '%s'.\n", pCmd->cArgsMin, pCmd->pszCmd); 1136 1136 break; 1137 case VERR_ PARSE_TOO_MANY_ARGUMENTS:1137 case VERR_DBGC_PARSE_TOO_MANY_ARGUMENTS: 1138 1138 rc = DBGCCmdHlpPrintf(&pDbgc->CmdHlp, 1139 1139 "Syntax error: Too many arguments. Maximum is %d for command '%s'.\n", pCmd->cArgsMax, pCmd->pszCmd); 1140 1140 break; 1141 case VERR_ PARSE_ARGUMENT_OVERFLOW:1141 case VERR_DBGC_PARSE_ARGUMENT_OVERFLOW: 1142 1142 rc = DBGCCmdHlpPrintf(&pDbgc->CmdHlp, 1143 1143 "Syntax error: Too many arguments.\n"); 1144 1144 break; 1145 case VERR_ PARSE_UNBALANCED_QUOTE:1145 case VERR_DBGC_PARSE_UNBALANCED_QUOTE: 1146 1146 rc = DBGCCmdHlpPrintf(&pDbgc->CmdHlp, 1147 1147 "Syntax error: Unbalanced quote (argument %d).\n", cArgs); 1148 1148 break; 1149 case VERR_ PARSE_UNBALANCED_PARENTHESIS:1149 case VERR_DBGC_PARSE_UNBALANCED_PARENTHESIS: 1150 1150 rc = DBGCCmdHlpPrintf(&pDbgc->CmdHlp, 1151 1151 "Syntax error: Unbalanced parenthesis (argument %d).\n", cArgs); 1152 1152 break; 1153 case VERR_ PARSE_EMPTY_ARGUMENT:1153 case VERR_DBGC_PARSE_EMPTY_ARGUMENT: 1154 1154 rc = DBGCCmdHlpPrintf(&pDbgc->CmdHlp, 1155 1155 "Syntax error: An argument or subargument contains nothing useful (argument %d).\n", cArgs); 1156 1156 break; 1157 case VERR_ PARSE_UNEXPECTED_OPERATOR:1157 case VERR_DBGC_PARSE_UNEXPECTED_OPERATOR: 1158 1158 rc = DBGCCmdHlpPrintf(&pDbgc->CmdHlp, 1159 1159 "Syntax error: Invalid operator usage (argument %d).\n", cArgs); 1160 1160 break; 1161 case VERR_ PARSE_INVALID_NUMBER:1162 rc = DBGCCmdHlpPrintf(&pDbgc->CmdHlp, 1163 "Syntax error: I valid numeric value (argument %d). If a string was the intention, then quote it.\n", cArgs);1164 break; 1165 case VERR_ PARSE_NUMBER_TOO_BIG:1161 case VERR_DBGC_PARSE_INVALID_NUMBER: 1162 rc = DBGCCmdHlpPrintf(&pDbgc->CmdHlp, 1163 "Syntax error: Invalid numeric value (argument %d). If a string was the intention, then quote it.\n", cArgs); 1164 break; 1165 case VERR_DBGC_PARSE_NUMBER_TOO_BIG: 1166 1166 rc = DBGCCmdHlpPrintf(&pDbgc->CmdHlp, 1167 1167 "Error: Numeric overflow (argument %d).\n", cArgs); 1168 1168 break; 1169 case VERR_ PARSE_INVALID_OPERATION:1169 case VERR_DBGC_PARSE_INVALID_OPERATION: 1170 1170 rc = DBGCCmdHlpPrintf(&pDbgc->CmdHlp, 1171 1171 "Error: Invalid operation attempted (argument %d).\n", cArgs); 1172 1172 break; 1173 case VERR_ PARSE_FUNCTION_NOT_FOUND:1173 case VERR_DBGC_PARSE_FUNCTION_NOT_FOUND: 1174 1174 rc = DBGCCmdHlpPrintf(&pDbgc->CmdHlp, 1175 1175 "Error: Function not found (argument %d).\n", cArgs); 1176 1176 break; 1177 case VERR_ PARSE_NOT_A_FUNCTION:1177 case VERR_DBGC_PARSE_NOT_A_FUNCTION: 1178 1178 rc = DBGCCmdHlpPrintf(&pDbgc->CmdHlp, 1179 1179 "Error: The function specified is not a function (argument %d).\n", cArgs); 1180 1180 break; 1181 case VERR_ PARSE_NO_MEMORY:1181 case VERR_DBGC_PARSE_NO_MEMORY: 1182 1182 rc = DBGCCmdHlpPrintf(&pDbgc->CmdHlp, 1183 1183 "Error: Out memory in the regular heap! Expect odd stuff to happen...\n", cArgs); 1184 1184 break; 1185 case VERR_ PARSE_INCORRECT_ARG_TYPE:1185 case VERR_DBGC_PARSE_INCORRECT_ARG_TYPE: 1186 1186 rc = DBGCCmdHlpPrintf(&pDbgc->CmdHlp, 1187 1187 "Error: Incorrect argument type (argument %d?).\n", cArgs); 1188 1188 break; 1189 case VERR_ PARSE_VARIABLE_NOT_FOUND:1189 case VERR_DBGC_PARSE_VARIABLE_NOT_FOUND: 1190 1190 rc = DBGCCmdHlpPrintf(&pDbgc->CmdHlp, 1191 1191 "Error: An undefined variable was referenced (argument %d).\n", cArgs); 1192 1192 break; 1193 case VERR_ PARSE_CONVERSION_FAILED:1193 case VERR_DBGC_PARSE_CONVERSION_FAILED: 1194 1194 rc = DBGCCmdHlpPrintf(&pDbgc->CmdHlp, 1195 1195 "Error: A conversion between two types failed (argument %d).\n", cArgs); 1196 1196 break; 1197 case VERR_ PARSE_NOT_IMPLEMENTED:1197 case VERR_DBGC_PARSE_NOT_IMPLEMENTED: 1198 1198 rc = DBGCCmdHlpPrintf(&pDbgc->CmdHlp, 1199 1199 "Error: You hit a debugger feature which isn't implemented yet (argument %d).\n", cArgs); 1200 1200 break; 1201 case VERR_ PARSE_BAD_RESULT_TYPE:1201 case VERR_DBGC_PARSE_BAD_RESULT_TYPE: 1202 1202 rc = DBGCCmdHlpPrintf(&pDbgc->CmdHlp, 1203 1203 "Error: Couldn't satisfy a request for a specific result type (argument %d). (Usually applies to symbols)\n", cArgs); 1204 1204 break; 1205 case VERR_ PARSE_WRITEONLY_SYMBOL:1205 case VERR_DBGC_PARSE_WRITEONLY_SYMBOL: 1206 1206 rc = DBGCCmdHlpPrintf(&pDbgc->CmdHlp, 1207 1207 "Error: Cannot get symbol, it's set only (argument %d).\n", cArgs); … … 1212 1212 1213 1213 default: 1214 rc = DBGCCmdHlpPrintf(&pDbgc->CmdHlp, "Error: Unknown error %Rrc (%d)!\n", rc, rc); 1215 break; 1214 { 1215 PCRTSTATUSMSG pErr = RTErrGet(rc); 1216 if (strncmp(pErr->pszDefine, RT_STR_TUPLE("Unknown Status"))) 1217 rc = DBGCCmdHlpPrintf(&pDbgc->CmdHlp, "Error: %s (%d) - %s\n", pErr->pszDefine, rc, pErr->pszMsgFull); 1218 else 1219 rc = DBGCCmdHlpPrintf(&pDbgc->CmdHlp, "Error: Unknown error %d (%#x)!\n", rc, rc); 1220 break; 1221 } 1216 1222 } 1217 1223 } -
trunk/src/VBox/Debugger/DBGCInternal.h
r41546 r41553 25 25 *******************************************************************************/ 26 26 #include <VBox/dbg.h> 27 28 29 /******************************************************************************* 30 * Defined Constants And Macros * 31 *******************************************************************************/ 32 /* to err.h! */ 33 #define VERR_DBGC_QUIT (-11999) 34 #define VERR_PARSE_FIRST (-11000) 35 #define VERR_PARSE_TOO_FEW_ARGUMENTS (VERR_PARSE_FIRST - 0) 36 #define VERR_PARSE_TOO_MANY_ARGUMENTS (VERR_PARSE_FIRST - 1) 37 #define VERR_PARSE_ARGUMENT_OVERFLOW (VERR_PARSE_FIRST - 2) 38 #define VERR_PARSE_ARGUMENT_TYPE_MISMATCH (VERR_PARSE_FIRST - 3) 39 #define VERR_PARSE_NO_RANGE_ALLOWED (VERR_PARSE_FIRST - 4) 40 #define VERR_PARSE_UNBALANCED_QUOTE (VERR_PARSE_FIRST - 5) 41 #define VERR_PARSE_UNBALANCED_PARENTHESIS (VERR_PARSE_FIRST - 6) 42 #define VERR_PARSE_EMPTY_ARGUMENT (VERR_PARSE_FIRST - 7) 43 #define VERR_PARSE_UNEXPECTED_OPERATOR (VERR_PARSE_FIRST - 8) 44 #define VERR_PARSE_INVALID_NUMBER (VERR_PARSE_FIRST - 9) 45 #define VERR_PARSE_NUMBER_TOO_BIG (VERR_PARSE_FIRST - 10) 46 #define VERR_PARSE_INVALID_OPERATION (VERR_PARSE_FIRST - 11) 47 #define VERR_PARSE_FUNCTION_NOT_FOUND (VERR_PARSE_FIRST - 12) 48 #define VERR_PARSE_NOT_A_FUNCTION (VERR_PARSE_FIRST - 13) 49 #define VERR_PARSE_NO_MEMORY (VERR_PARSE_FIRST - 14) 50 #define VERR_PARSE_INCORRECT_ARG_TYPE (VERR_PARSE_FIRST - 15) 51 #define VERR_PARSE_VARIABLE_NOT_FOUND (VERR_PARSE_FIRST - 16) 52 #define VERR_PARSE_CONVERSION_FAILED (VERR_PARSE_FIRST - 17) 53 #define VERR_PARSE_NOT_IMPLEMENTED (VERR_PARSE_FIRST - 18) 54 #define VERR_PARSE_BAD_RESULT_TYPE (VERR_PARSE_FIRST - 19) 55 #define VERR_PARSE_WRITEONLY_SYMBOL (VERR_PARSE_FIRST - 20) 56 #define VERR_PARSE_NO_ARGUMENT_MATCH (VERR_PARSE_FIRST - 21) 57 #define VINF_PARSE_COMMAND_NOT_FOUND (VERR_PARSE_FIRST - 22) 58 #define VINF_PARSE_INVALD_COMMAND_NAME (VERR_PARSE_FIRST - 23) 59 #define VERR_PARSE_LAST (VERR_PARSE_FIRST - 30) 60 61 #define VWRN_DBGC_CMD_PENDING 12000 62 #define VWRN_DBGC_ALREADY_REGISTERED 12001 63 #define VERR_DBGC_COMMANDS_NOT_REGISTERED (-12002) 64 #define VERR_DBGC_BP_NOT_FOUND (-12003) 65 #define VERR_DBGC_BP_EXISTS (-12004) 66 #define VINF_DBGC_BP_NO_COMMAND 12005 67 #define VERR_DBGC_COMMAND_FAILED (-12006) 27 #include <VBox/err.h> 68 28 69 29 -
trunk/src/VBox/Debugger/DBGCOps.cpp
r41546 r41553 119 119 break; \ 120 120 default: \ 121 return VERR_ PARSE_INCORRECT_ARG_TYPE; \121 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; \ 122 122 } \ 123 123 } \ … … 169 169 { {'*'}, 1, true, 10, NULL, dbgcOpMult, DBGCVAR_CAT_ANY, DBGCVAR_CAT_ANY, "Multiplication." }, 170 170 { {'/'}, 1, true, 11, NULL, dbgcOpDiv, DBGCVAR_CAT_ANY, DBGCVAR_CAT_ANY, "Division." }, 171 { {' %'}, 1, true, 12, NULL, dbgcOpMod, DBGCVAR_CAT_ANY, DBGCVAR_CAT_ANY, "Modulus." },171 { {'m','o','d'}, 3, true, 12, NULL, dbgcOpMod, DBGCVAR_CAT_ANY, DBGCVAR_CAT_ANY, "Modulus." }, 172 172 { {'+'}, 1, true, 13, NULL, dbgcOpAdd, DBGCVAR_CAT_ANY, DBGCVAR_CAT_ANY, "Addition." }, 173 173 { {'-'}, 1, true, 14, NULL, dbgcOpSub, DBGCVAR_CAT_ANY, DBGCVAR_CAT_ANY, "Subtraction." }, … … 228 228 break; 229 229 default: 230 return VERR_ PARSE_INCORRECT_ARG_TYPE;230 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 231 231 } 232 232 return VINF_SUCCESS; … … 272 272 case DBGCVAR_TYPE_STRING: 273 273 default: 274 return VERR_ PARSE_INCORRECT_ARG_TYPE;274 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 275 275 } 276 276 NOREF(pDbgc); … … 306 306 case DBGCVAR_TYPE_STRING: 307 307 default: 308 return VERR_ PARSE_INCORRECT_ARG_TYPE;308 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 309 309 } 310 310 NOREF(pDbgc); … … 353 353 case DBGCVAR_TYPE_UNKNOWN: 354 354 default: 355 return VERR_ PARSE_INCORRECT_ARG_TYPE;355 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 356 356 } 357 357 pResult->enmType = DBGCVAR_TYPE_NUMBER; … … 399 399 case DBGCVAR_TYPE_STRING: 400 400 default: 401 return VERR_ PARSE_INCORRECT_ARG_TYPE;401 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 402 402 } 403 403 NOREF(pDbgc); … … 424 424 */ 425 425 if (pArg->enmType != DBGCVAR_TYPE_STRING) 426 return VERR_ PARSE_INCORRECT_ARG_TYPE;426 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 427 427 428 428 /* … … 439 439 } 440 440 441 return VERR_ PARSE_VARIABLE_NOT_FOUND;441 return VERR_DBGC_PARSE_VARIABLE_NOT_FOUND; 442 442 } 443 443 … … 462 462 if ( pArg->enmType != DBGCVAR_TYPE_STRING 463 463 && pArg->enmType != DBGCVAR_TYPE_SYMBOL) 464 return VERR_ PARSE_INCORRECT_ARG_TYPE;464 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 465 465 466 466 /* … … 632 632 case DBGCVAR_TYPE_UNKNOWN: 633 633 default: 634 return VERR_ PARSE_INCORRECT_ARG_TYPE;634 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 635 635 } 636 636 pResult->u.GCFar.sel = (RTSEL)pResult->u.u64Number; … … 670 670 case DBGCVAR_TYPE_UNKNOWN: 671 671 default: 672 return VERR_ PARSE_INCORRECT_ARG_TYPE;672 return VERR_DBGC_PARSE_INCORRECT_ARG_TYPE; 673 673 } 674 674 return VINF_SUCCESS; … … 787 787 case DBGCVAR_TYPE_HC_FLAT: 788 788 case DBGCVAR_TYPE_HC_PHYS: 789 return VERR_ PARSE_INVALID_OPERATION;789 return VERR_DBGC_PARSE_INVALID_OPERATION; 790 790 default: 791 791 *pResult = *pArg1; … … 806 806 case DBGCVAR_TYPE_HC_FLAT: 807 807 case DBGCVAR_TYPE_HC_PHYS: 808 return VERR_ PARSE_INVALID_OPERATION;808 return VERR_DBGC_PARSE_INVALID_OPERATION; 809 809 case DBGCVAR_TYPE_NUMBER: 810 810 *pResult = *pArg1; … … 831 831 case DBGCVAR_TYPE_HC_FLAT: 832 832 case DBGCVAR_TYPE_HC_PHYS: 833 return VERR_ PARSE_INVALID_OPERATION;833 return VERR_DBGC_PARSE_INVALID_OPERATION; 834 834 default: 835 835 *pResult = *pArg1; … … 838 838 return rc; 839 839 if (Var.enmType != DBGCVAR_TYPE_GC_PHYS) 840 return VERR_ PARSE_INVALID_OPERATION;840 return VERR_DBGC_PARSE_INVALID_OPERATION; 841 841 pResult->u.GCPhys += Var.u.GCPhys; 842 842 break; … … 885 885 break; 886 886 default: 887 return VERR_ PARSE_INVALID_OPERATION;887 return VERR_DBGC_PARSE_INVALID_OPERATION; 888 888 } 889 889 break; 890 890 891 891 default: 892 return VERR_ PARSE_INVALID_OPERATION;892 return VERR_DBGC_PARSE_INVALID_OPERATION; 893 893 894 894 } … … 1012 1012 case DBGCVAR_TYPE_HC_FLAT: 1013 1013 case DBGCVAR_TYPE_HC_PHYS: 1014 return VERR_ PARSE_INVALID_OPERATION;1014 return VERR_DBGC_PARSE_INVALID_OPERATION; 1015 1015 default: 1016 1016 *pResult = *pArg1; … … 1031 1031 case DBGCVAR_TYPE_HC_FLAT: 1032 1032 case DBGCVAR_TYPE_HC_PHYS: 1033 return VERR_ PARSE_INVALID_OPERATION;1033 return VERR_DBGC_PARSE_INVALID_OPERATION; 1034 1034 case DBGCVAR_TYPE_NUMBER: 1035 1035 *pResult = *pArg1; … … 1056 1056 case DBGCVAR_TYPE_HC_FLAT: 1057 1057 case DBGCVAR_TYPE_HC_PHYS: 1058 return VERR_ PARSE_INVALID_OPERATION;1058 return VERR_DBGC_PARSE_INVALID_OPERATION; 1059 1059 default: 1060 1060 *pResult = *pArg1; … … 1063 1063 return rc; 1064 1064 if (Var.enmType != DBGCVAR_TYPE_GC_PHYS) 1065 return VERR_ PARSE_INVALID_OPERATION;1065 return VERR_DBGC_PARSE_INVALID_OPERATION; 1066 1066 pResult->u.GCPhys -= Var.u.GCPhys; 1067 1067 break; … … 1110 1110 break; 1111 1111 default: 1112 return VERR_ PARSE_INVALID_OPERATION;1112 return VERR_DBGC_PARSE_INVALID_OPERATION; 1113 1113 } 1114 1114 break; 1115 1115 1116 1116 default: 1117 return VERR_ PARSE_INVALID_OPERATION;1117 return VERR_DBGC_PARSE_INVALID_OPERATION; 1118 1118 1119 1119 } … … 1300 1300 1301 1301 default: 1302 return VERR_ PARSE_INVALID_OPERATION;1302 return VERR_DBGC_PARSE_INVALID_OPERATION; 1303 1303 } 1304 1304 … … 1378 1378 default: 1379 1379 AssertMsgFailed(("Impossible!\n")); 1380 return VERR_ PARSE_INVALID_OPERATION;1380 return VERR_DBGC_PARSE_INVALID_OPERATION; 1381 1381 } 1382 1382 -
trunk/src/VBox/Debugger/DBGConsole.cpp
r41546 r41553 174 174 { 175 175 if (!pSymDesc->pfnGet) 176 return VERR_ PARSE_WRITEONLY_SYMBOL;176 return VERR_DBGC_PARSE_WRITEONLY_SYMBOL; 177 177 return pSymDesc->pfnGet(pSymDesc, &pDbgc->CmdHlp, enmType, pResult); 178 178 } … … 250 250 /* impossible at the moment. */ 251 251 case DBGCVAR_TYPE_GC_FAR: 252 return VERR_ PARSE_CONVERSION_FAILED;252 return VERR_DBGC_PARSE_CONVERSION_FAILED; 253 253 254 254 /* simply make it numeric. */ … … 270 270 } 271 271 272 return VERR_ PARSE_NOT_IMPLEMENTED;272 return VERR_DBGC_PARSE_NOT_IMPLEMENTED; 273 273 } 274 274 -
trunk/src/VBox/Debugger/testcase/tstDBGCParser.cpp
r39091 r41553 24 24 #include <iprt/string.h> 25 25 #include <iprt/test.h> 26 #include <VBox/err.h> 26 27 27 28 … … 175 176 176 177 /** 178 * Checks if two DBGC variables are identical 179 * 180 * @returns 181 * @param pVar1 . 182 * @param pVar2 . 183 */ 184 bool DBGCVarAreIdentical(PCDBGCVAR pVar1, PCDBGCVAR pVar2) 185 { 186 if (!pVar1) 187 return false; 188 if (pVar1 == pVar2) 189 return true; 190 191 if (pVar1->enmType != pVar2->enmType) 192 return false; 193 switch (pVar1->enmType) 194 { 195 case DBGCVAR_TYPE_GC_FLAT: 196 if (pVar1->u.GCFlat != pVar2->u.GCFlat) 197 return false; 198 break; 199 case DBGCVAR_TYPE_GC_FAR: 200 if (pVar1->u.GCFar.off != pVar2->u.GCFar.off) 201 return false; 202 if (pVar1->u.GCFar.sel != pVar2->u.GCFar.sel) 203 return false; 204 break; 205 case DBGCVAR_TYPE_GC_PHYS: 206 if (pVar1->u.GCPhys != pVar2->u.GCPhys) 207 return false; 208 break; 209 case DBGCVAR_TYPE_HC_FLAT: 210 if (pVar1->u.pvHCFlat != pVar2->u.pvHCFlat) 211 return false; 212 break; 213 case DBGCVAR_TYPE_HC_PHYS: 214 if (pVar1->u.HCPhys != pVar2->u.HCPhys) 215 return false; 216 break; 217 case DBGCVAR_TYPE_NUMBER: 218 if (pVar1->u.u64Number != pVar2->u.u64Number) 219 return false; 220 break; 221 case DBGCVAR_TYPE_STRING: 222 case DBGCVAR_TYPE_SYMBOL: 223 if (RTStrCmp(pVar1->u.pszString, pVar2->u.pszString) != 0) 224 return false; 225 break; 226 default: 227 AssertFailedReturn(false); 228 } 229 230 if (pVar1->enmRangeType != pVar2->enmRangeType) 231 return false; 232 switch (pVar1->enmRangeType) 233 { 234 case DBGCVAR_RANGE_NONE: 235 break; 236 237 case DBGCVAR_RANGE_ELEMENTS: 238 case DBGCVAR_RANGE_BYTES: 239 if (pVar1->u64Range != pVar2->u64Range) 240 return false; 241 break; 242 default: 243 AssertFailedReturn(false); 244 } 245 246 return true; 247 } 248 249 /** 177 250 * Tries one command string. 178 251 * @param pDbgc Pointer to the debugger instance. … … 183 256 * of the output, just the start of it. Thus the 184 257 * prompt can be omitted. 185 */ 186 static void tstTryEx(PDBGC pDbgc, const char *pszCmds, int rcCmd, bool fNoExecute, const char *pszExpected) 258 * @param cArgs The number of expected arguments. -1 if we don't 259 * want to check the parsed arguments. 260 * @param va Info about expected parsed arguments. For each 261 * argument a DBGCVARTYPE, value (depends on type), 262 * DBGCVARRANGETYPE and optionally range value. 263 */ 264 static void tstTryExV(PDBGC pDbgc, const char *pszCmds, int rcCmd, bool fNoExecute, const char *pszExpected, 265 int32_t cArgs, va_list va) 187 266 { 188 267 RT_ZERO(g_szOutput); … … 204 283 && strncmp(pszExpected, g_szOutput, strlen(pszExpected))) 205 284 RTTestFailed(g_hTest, "Wrong output - expected \"%s\"", pszExpected); 206 } 207 208 209 /** 210 * Tries one command string without executing it. 285 286 if (cArgs >= 0) 287 { 288 PCDBGCVAR paArgs = pDbgc->aArgs; 289 for (int32_t iArg = 0; iArg < cArgs; iArg++) 290 { 291 DBGCVAR ExpectedArg; 292 ExpectedArg.enmType = (DBGCVARTYPE)va_arg(va, int/*DBGCVARTYPE*/); 293 switch (ExpectedArg.enmType) 294 { 295 case DBGCVAR_TYPE_GC_FLAT: ExpectedArg.u.GCFlat = va_arg(va, RTGCPTR); break; 296 case DBGCVAR_TYPE_GC_FAR: ExpectedArg.u.GCFar.sel = va_arg(va, int /*RTSEL*/); 297 ExpectedArg.u.GCFar.off = va_arg(va, uint32_t); break; 298 case DBGCVAR_TYPE_GC_PHYS: ExpectedArg.u.GCPhys = va_arg(va, RTGCPHYS); break; 299 case DBGCVAR_TYPE_HC_FLAT: ExpectedArg.u.pvHCFlat = va_arg(va, void *); break; 300 case DBGCVAR_TYPE_HC_PHYS: ExpectedArg.u.HCPhys = va_arg(va, RTHCPHYS); break; 301 case DBGCVAR_TYPE_NUMBER: ExpectedArg.u.u64Number = va_arg(va, uint64_t); break; 302 case DBGCVAR_TYPE_STRING: ExpectedArg.u.pszString = va_arg(va, const char *); break; 303 case DBGCVAR_TYPE_SYMBOL: ExpectedArg.u.pszString = va_arg(va, const char *); break; 304 default: 305 RTTestFailed(g_hTest, "enmType=%u iArg=%u\n", ExpectedArg.enmType, iArg); 306 ExpectedArg.u.u64Number = 0; 307 break; 308 } 309 ExpectedArg.enmRangeType = (DBGCVARRANGETYPE)va_arg(va, int /*DBGCVARRANGETYPE*/); 310 switch (ExpectedArg.enmRangeType) 311 { 312 case DBGCVAR_RANGE_NONE: ExpectedArg.u64Range = 0; break; 313 case DBGCVAR_RANGE_ELEMENTS: ExpectedArg.u64Range = va_arg(va, uint64_t); break; 314 case DBGCVAR_RANGE_BYTES: ExpectedArg.u64Range = va_arg(va, uint64_t); break; 315 default: 316 RTTestFailed(g_hTest, "enmRangeType=%u iArg=%u\n", ExpectedArg.enmRangeType, iArg); 317 ExpectedArg.u64Range = 0; 318 break; 319 } 320 321 if (!DBGCVarAreIdentical(&ExpectedArg, &paArgs[iArg])) 322 RTTestFailed(g_hTest, 323 "Arg #%u\n" 324 "actual: enmType=%u u64=%#RX64 enmRangeType=%u u64Range=%#RX64\n" 325 "expected: enmType=%u u64=%#RX64 enmRangeType=%u u64Range=%#RX64\n", 326 iArg, 327 paArgs[iArg].enmType, paArgs[iArg].u.u64Number, paArgs[iArg].enmRangeType, paArgs[iArg].u64Range, 328 ExpectedArg.enmType, ExpectedArg.u.u64Number, ExpectedArg.enmRangeType, ExpectedArg.u64Range); 329 } 330 } 331 } 332 333 /** 334 * Tries one command string. 211 335 * 212 336 * @param pDbgc Pointer to the debugger instance. 213 337 * @param pszCmds The command to test. 214 338 * @param rcCmd The expected result. 339 * @param fNoExecute When set, the command is not executed. 340 * @param pszExpected Expected output. This does not need to include all 341 * of the output, just the start of it. Thus the 342 * prompt can be omitted. 343 * @param cArgs The number of expected arguments. -1 if we don't 344 * want to check the parsed arguments. 345 * @param ... Info about expected parsed arguments. For each 346 * argument a DBGCVARTYPE, value (depends on type), 347 * DBGCVARRANGETYPE and optionally range value. 348 */ 349 static void tstTryEx(PDBGC pDbgc, const char *pszCmds, int rcCmd, bool fNoExecute, const char *pszExpected, int32_t cArgs, ...) 350 { 351 va_list va; 352 va_start(va, cArgs); 353 tstTryExV(pDbgc, pszCmds, rcCmd, fNoExecute, pszExpected, cArgs, va); 354 va_end(va); 355 } 356 357 358 /** 359 * Tries one command string without executing it. 360 * 361 * @param pDbgc Pointer to the debugger instance. 362 * @param pszCmds The command to test. 363 * @param rcCmd The expected result. 215 364 */ 216 365 static void tstTry(PDBGC pDbgc, const char *pszCmds, int rcCmd) 217 366 { 218 return tstTryEx(pDbgc, pszCmds, rcCmd, true /*fNoExecute*/, NULL );367 return tstTryEx(pDbgc, pszCmds, rcCmd, true /*fNoExecute*/, NULL, -1); 219 368 } 220 369 … … 232 381 static void tstTryExec(PDBGC pDbgc, const char *pszCmds, int rcCmd, const char *pszExpected) 233 382 { 234 return tstTryEx(pDbgc, pszCmds, rcCmd, false /*fNoExecute*/, pszExpected );383 return tstTryEx(pDbgc, pszCmds, rcCmd, false /*fNoExecute*/, pszExpected, -1); 235 384 } 236 385 #endif … … 253 402 "Number: hex %llx dec 0i%lld oct 0t%llo", u64Expect, u64Expect, u64Expect); 254 403 255 return tstTryEx(pDbgc, szCmd, VINF_SUCCESS, false /*fNoExecute*/, szExpected); 256 } 257 404 return tstTryEx(pDbgc, szCmd, VINF_SUCCESS, false /*fNoExecute*/, szExpected, -1); 405 } 406 407 408 409 static void testCodeView_ba(PDBGC pDbgc) 410 { 411 RTTestISub("codeview - ba"); 412 tstTry(pDbgc, "ba x 1 0f000:0000\n", VINF_SUCCESS); 413 tstTry(pDbgc, "ba x 1 0f000:0000 0\n", VINF_SUCCESS); 414 tstTry(pDbgc, "ba x 1 0f000:0000 0 ~0\n", VINF_SUCCESS); 415 tstTry(pDbgc, "ba x 1 0f000:0000 0 ~0 \"command\"\n", VINF_SUCCESS); 416 tstTry(pDbgc, "ba x 1 0f000:0000 0 ~0 \"command\" too_many\n", VERR_DBGC_PARSE_TOO_MANY_ARGUMENTS); 417 tstTry(pDbgc, "ba x 1\n", VERR_DBGC_PARSE_TOO_FEW_ARGUMENTS); 418 419 tstTryEx(pDbgc, "ba x 1 0f000:1234 5 1000 \"command\"\n", VINF_SUCCESS, 420 true /*fNoExecute*/, NULL /*pszExpected*/, 6 /*cArgs*/, 421 DBGCVAR_TYPE_STRING, "x", DBGCVAR_RANGE_BYTES, UINT64_C(1), 422 DBGCVAR_TYPE_NUMBER, UINT64_C(1), DBGCVAR_RANGE_NONE, 423 DBGCVAR_TYPE_GC_FAR, 0xf000, UINT32_C(0x1234), DBGCVAR_RANGE_NONE, 424 DBGCVAR_TYPE_NUMBER, UINT64_C(0x5), DBGCVAR_RANGE_NONE, 425 DBGCVAR_TYPE_NUMBER, UINT64_C(0x1000), DBGCVAR_RANGE_NONE, 426 DBGCVAR_TYPE_STRING, "command", DBGCVAR_RANGE_BYTES, UINT64_C(7)); 427 428 tstTryEx(pDbgc, "ba x 1 %0f000:1234 5 1000 \"command\"\n", VINF_SUCCESS, 429 true /*fNoExecute*/, NULL /*pszExpected*/, 6 /*cArgs*/, 430 DBGCVAR_TYPE_STRING, "x", DBGCVAR_RANGE_BYTES, UINT64_C(1), 431 DBGCVAR_TYPE_NUMBER, UINT64_C(1), DBGCVAR_RANGE_NONE, 432 DBGCVAR_TYPE_GC_FLAT, UINT64_C(0xf1234), DBGCVAR_RANGE_NONE, 433 DBGCVAR_TYPE_NUMBER, UINT64_C(0x5), DBGCVAR_RANGE_NONE, 434 DBGCVAR_TYPE_NUMBER, UINT64_C(0x1000), DBGCVAR_RANGE_NONE, 435 DBGCVAR_TYPE_STRING, "command", DBGCVAR_RANGE_BYTES, UINT64_C(7)); 436 437 tstTry(pDbgc, "ba x 1 bad:bad 5 1000 \"command\"\n", VINF_SUCCESS); 438 tstTry(pDbgc, "ba x 1 %bad:bad 5 1000 \"command\"\n", VERR_DBGC_PARSE_CONVERSION_FAILED); 439 440 tstTryEx(pDbgc, "ba f 1 0f000:1234 5 1000 \"command\"\n", VINF_SUCCESS, 441 true /*fNoExecute*/, NULL /*pszExpected*/, 6 /*cArgs*/, 442 DBGCVAR_TYPE_STRING, "f", DBGCVAR_RANGE_BYTES, UINT64_C(1), 443 DBGCVAR_TYPE_NUMBER, UINT64_C(1), DBGCVAR_RANGE_NONE, 444 DBGCVAR_TYPE_GC_FAR, 0xf000, UINT32_C(0x1234), DBGCVAR_RANGE_NONE, 445 DBGCVAR_TYPE_NUMBER, UINT64_C(0x5), DBGCVAR_RANGE_NONE, 446 DBGCVAR_TYPE_NUMBER, UINT64_C(0x1000), DBGCVAR_RANGE_NONE, 447 DBGCVAR_TYPE_STRING, "command", DBGCVAR_RANGE_BYTES, UINT64_C(7)); 448 449 tstTry(pDbgc, "ba x 1 0f000:1234 qnx 1000 \"command\"\n", VERR_DBGC_PARSE_ARGUMENT_TYPE_MISMATCH); 450 tstTry(pDbgc, "ba x 1 0f000:1234 5 qnx \"command\"\n", VERR_DBGC_PARSE_ARGUMENT_TYPE_MISMATCH); 451 tstTry(pDbgc, "ba x qnx 0f000:1234 5 1000 \"command\"\n", VERR_DBGC_PARSE_ARGUMENT_TYPE_MISMATCH); 452 tstTry(pDbgc, "ba x 1 qnx 5 1000 \"command\"\n", VERR_DBGC_PARSE_ARGUMENT_TYPE_MISMATCH); 453 } 258 454 259 455 … … 276 472 if (RT_SUCCESS(rc)) 277 473 { 474 pDbgc->pVM = (PVM)pDbgc; 278 475 rc = dbgcProcessInput(pDbgc, true /* fNoExecute */); 279 476 tstCompleteOutput(); … … 283 480 tstTry(pDbgc, "stop\n", VINF_SUCCESS); 284 481 tstTry(pDbgc, "format 1\n", VINF_SUCCESS); 285 tstTry(pDbgc, "format \n", VERR_ PARSE_TOO_FEW_ARGUMENTS);286 tstTry(pDbgc, "format 0 1 23 4\n", VERR_ PARSE_TOO_MANY_ARGUMENTS);482 tstTry(pDbgc, "format \n", VERR_DBGC_PARSE_TOO_FEW_ARGUMENTS); 483 tstTry(pDbgc, "format 0 1 23 4\n", VERR_DBGC_PARSE_TOO_MANY_ARGUMENTS); 287 484 tstTry(pDbgc, "sa 3 23 4 'q' \"21123123\" 'b' \n", VINF_SUCCESS); 288 485 … … 328 525 tstNumOp(pDbgc, "0i1024 / 0i4", 256); 329 526 527 tstNumOp(pDbgc, "8 mod 7", 1); 528 330 529 tstNumOp(pDbgc, "1<<1", 2); 331 530 tstNumOp(pDbgc, "1<<0i32", UINT64_C(0x0000000100000000)); … … 371 570 tstTry(pDbgc, "r @eax\n", VINF_SUCCESS); 372 571 tstTry(pDbgc, "r @ah\n", VINF_SUCCESS); 572 tstTry(pDbgc, "r @notavalidregister\n", VERR_DBGF_REGISTER_NOT_FOUND); 373 573 } 574 575 /* 576 * Test codeview commands. 577 */ 578 #ifdef DEBUG_bird /* This will fail for a while */ 579 if (RTTestErrorCount(g_hTest) == 0) 580 { 581 testCodeView_ba(pDbgc); 582 583 } 584 #endif 374 585 } 375 586 -
trunk/src/VBox/Debugger/testcase/tstDBGCStubs.cpp
r41546 r41553 30 30 VMMR3DECL(int) DBGFR3AddrFromSelOff(PVM pVM, VMCPUID idCpu, PDBGFADDRESS pAddress, RTSEL Sel, RTUINTPTR off) 31 31 { 32 return VERR_INTERNAL_ERROR; 32 /* bad:bad -> provke error during parsing. */ 33 if (Sel == 0xbad && off == 0xbad) 34 return VERR_OUT_OF_SELECTOR_BOUNDS; 35 36 /* real mode conversion. */ 37 pAddress->FlatPtr = (uint32_t)(Sel << 4) | off; 38 pAddress->fFlags |= DBGFADDRESS_FLAGS_FLAT; 39 pAddress->Sel = DBGF_SEL_FLAT; 40 pAddress->off = pAddress->FlatPtr; 41 return VINF_SUCCESS; 33 42 } 34 43 … … 197 206 VMMR3DECL(int) DBGFR3RegNmValidate(PVM pVM, VMCPUID idDefCpu, const char *pszReg) 198 207 { 199 return VINF_SUCCESS; 208 if ( !strcmp(pszReg, "ah") 209 || !strcmp(pszReg, "ax") 210 || !strcmp(pszReg, "eax") 211 || !strcmp(pszReg, "rax")) 212 return VINF_SUCCESS; 213 return VERR_DBGF_REGISTER_NOT_FOUND; 200 214 } 201 215 VMMR3DECL(int) DBGFR3RegCpuQueryU8( PVM pVM, VMCPUID idCpu, DBGFREG enmReg, uint8_t *pu8) … … 244 258 } 245 259 } 246 return VERR_ INTERNAL_ERROR;260 return VERR_DBGF_REGISTER_NOT_FOUND; 247 261 } 248 262 VMMR3DECL(int) DBGFR3RegPrintf(PVM pVM, VMCPUID idCpu, char *pszBuf, size_t cbBuf, const char *pszFormat, ...)
Note:
See TracChangeset
for help on using the changeset viewer.