[lldb] Fix inconsistencies in DWARFExpression errors (#94554)

This patch make all errors start with a lowercase letter and removes
trailing periods and newlines. This fixes inconsistencies between error
messages and facilitate concatenating them.
This commit is contained in:
Jonas Devlieghere
2024-06-05 19:47:49 -07:00
committed by GitHub
parent 8e67495326
commit 6ca0f44cd8

View File

@@ -973,7 +973,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_deref: {
if (stack.empty())
return llvm::createStringError(
"Expression stack empty for DW_OP_deref.");
"expression stack empty for DW_OP_deref");
Value::ValueType value_type = stack.back().GetValueType();
switch (value_type) {
case Value::ValueType::HostAddress: {
@@ -1023,16 +1023,16 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
pointer_addr, error.AsCString());
}
} else {
return llvm::createStringError("NULL process for DW_OP_deref.\n");
return llvm::createStringError("NULL process for DW_OP_deref");
}
} else {
return llvm::createStringError(
"NULL execution context for DW_OP_deref.\n");
"NULL execution context for DW_OP_deref");
}
break;
case Value::ValueType::Invalid:
return llvm::createStringError("Invalid value type for DW_OP_deref.\n");
return llvm::createStringError("invalid value type for DW_OP_deref");
}
} break;
@@ -1052,7 +1052,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_deref_size: {
if (stack.empty()) {
return llvm::createStringError(
"Expression stack empty for DW_OP_deref_size.");
"expression stack empty for DW_OP_deref_size");
}
uint8_t size = opcodes.GetU8(&offset);
if (size > 8) {
@@ -1164,18 +1164,17 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
}
} else {
return llvm::createStringError(
"NULL process for DW_OP_deref_size.\n");
return llvm::createStringError("NULL process for DW_OP_deref_size");
}
} else {
return llvm::createStringError(
"NULL execution context for DW_OP_deref_size.\n");
"NULL execution context for DW_OP_deref_size");
}
break;
case Value::ValueType::Invalid:
return llvm::createStringError("Invalid value for DW_OP_deref_size.\n");
return llvm::createStringError("invalid value for DW_OP_deref_size");
}
} break;
@@ -1196,9 +1195,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
// extended to the size of an address on the target machine before being
// pushed on the expression stack.
case DW_OP_xderef_size:
return llvm::createStringError(
"Unimplemented opcode: DW_OP_xderef_size.");
return llvm::createStringError("unimplemented opcode: DW_OP_xderef_size");
// OPCODE: DW_OP_xderef
// OPERANDS: none
// DESCRIPTION: Provides an extended dereference mechanism. The entry at
@@ -1210,7 +1207,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
// retrieved from the dereferenced address is the size of an address on the
// target machine.
case DW_OP_xderef:
return llvm::createStringError("Unimplemented opcode: DW_OP_xderef.");
return llvm::createStringError("unimplemented opcode: DW_OP_xderef");
// All DW_OP_constXXX opcodes have a single operand as noted below:
//
@@ -1263,7 +1260,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
// DESCRIPTION: duplicates the value at the top of the stack
case DW_OP_dup:
if (stack.empty()) {
return llvm::createStringError("Expression stack empty for DW_OP_dup.");
return llvm::createStringError("expression stack empty for DW_OP_dup");
} else
stack.push_back(stack.back());
break;
@@ -1273,8 +1270,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
// DESCRIPTION: pops the value at the top of the stack
case DW_OP_drop:
if (stack.empty()) {
return llvm::createStringError(
"Expression stack empty for DW_OP_drop.");
return llvm::createStringError("expression stack empty for DW_OP_drop");
} else
stack.pop_back();
break;
@@ -1286,7 +1282,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_over:
if (stack.size() < 2) {
return llvm::createStringError(
"Expression stack needs at least 2 items for DW_OP_over.");
"expression stack needs at least 2 items for DW_OP_over");
} else
stack.push_back(stack[stack.size() - 2]);
break;
@@ -1313,7 +1309,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_swap:
if (stack.size() < 2) {
return llvm::createStringError(
"Expression stack needs at least 2 items for DW_OP_swap.");
"expression stack needs at least 2 items for DW_OP_swap");
} else {
tmp = stack.back();
stack.back() = stack[stack.size() - 2];
@@ -1330,7 +1326,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_rot:
if (stack.size() < 3) {
return llvm::createStringError(
"Expression stack needs at least 3 items for DW_OP_rot.");
"expression stack needs at least 3 items for DW_OP_rot");
} else {
size_t last_idx = stack.size() - 1;
Value old_top = stack[last_idx];
@@ -1348,10 +1344,10 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_abs:
if (stack.empty()) {
return llvm::createStringError(
"Expression stack needs at least 1 item for DW_OP_abs.");
"expression stack needs at least 1 item for DW_OP_abs");
} else if (!stack.back().ResolveValue(exe_ctx).AbsoluteValue()) {
return llvm::createStringError(
"Failed to take the absolute value of the first stack item.");
"failed to take the absolute value of the first stack item");
}
break;
@@ -1362,7 +1358,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_and:
if (stack.size() < 2) {
return llvm::createStringError(
"Expression stack needs at least 2 items for DW_OP_and.");
"expression stack needs at least 2 items for DW_OP_and");
} else {
tmp = stack.back();
stack.pop_back();
@@ -1379,23 +1375,22 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_div:
if (stack.size() < 2) {
return llvm::createStringError(
"Expression stack needs at least 2 items for DW_OP_div.");
"expression stack needs at least 2 items for DW_OP_div");
} else {
tmp = stack.back();
if (tmp.ResolveValue(exe_ctx).IsZero()) {
return llvm::createStringError("Divide by zero.");
} else {
stack.pop_back();
Scalar divisor, dividend;
divisor = tmp.ResolveValue(exe_ctx);
dividend = stack.back().ResolveValue(exe_ctx);
divisor.MakeSigned();
dividend.MakeSigned();
stack.back() = dividend / divisor;
if (!stack.back().ResolveValue(exe_ctx).IsValid()) {
return llvm::createStringError("Divide failed.");
}
}
if (tmp.ResolveValue(exe_ctx).IsZero())
return llvm::createStringError("divide by zero");
stack.pop_back();
Scalar divisor, dividend;
divisor = tmp.ResolveValue(exe_ctx);
dividend = stack.back().ResolveValue(exe_ctx);
divisor.MakeSigned();
dividend.MakeSigned();
stack.back() = dividend / divisor;
if (!stack.back().ResolveValue(exe_ctx).IsValid())
return llvm::createStringError("divide failed");
}
break;
@@ -1406,7 +1401,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_minus:
if (stack.size() < 2) {
return llvm::createStringError(
"Expression stack needs at least 2 items for DW_OP_minus.");
"expression stack needs at least 2 items for DW_OP_minus");
} else {
tmp = stack.back();
stack.pop_back();
@@ -1423,7 +1418,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_mod:
if (stack.size() < 2) {
return llvm::createStringError(
"Expression stack needs at least 2 items for DW_OP_mod.");
"expression stack needs at least 2 items for DW_OP_mod");
} else {
tmp = stack.back();
stack.pop_back();
@@ -1439,7 +1434,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_mul:
if (stack.size() < 2) {
return llvm::createStringError(
"Expression stack needs at least 2 items for DW_OP_mul.");
"expression stack needs at least 2 items for DW_OP_mul");
} else {
tmp = stack.back();
stack.pop_back();
@@ -1454,10 +1449,10 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_neg:
if (stack.empty()) {
return llvm::createStringError(
"Expression stack needs at least 1 item for DW_OP_neg.");
"expression stack needs at least 1 item for DW_OP_neg");
} else {
if (!stack.back().ResolveValue(exe_ctx).UnaryNegate())
return llvm::createStringError("Unary negate failed.");
return llvm::createStringError("unary negate failed");
}
break;
@@ -1468,10 +1463,10 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_not:
if (stack.empty()) {
return llvm::createStringError(
"Expression stack needs at least 1 item for DW_OP_not.");
"expression stack needs at least 1 item for DW_OP_not");
} else {
if (!stack.back().ResolveValue(exe_ctx).OnesComplement()) {
return llvm::createStringError("Logical NOT failed.");
return llvm::createStringError("logical NOT failed");
}
}
break;
@@ -1483,7 +1478,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_or:
if (stack.size() < 2) {
return llvm::createStringError(
"Expression stack needs at least 2 items for DW_OP_or.");
"expression stack needs at least 2 items for DW_OP_or");
} else {
tmp = stack.back();
stack.pop_back();
@@ -1499,7 +1494,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_plus:
if (stack.size() < 2) {
return llvm::createStringError(
"Expression stack needs at least 2 items for DW_OP_plus.");
"expression stack needs at least 2 items for DW_OP_plus");
} else {
tmp = stack.back();
stack.pop_back();
@@ -1514,15 +1509,13 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_plus_uconst:
if (stack.empty()) {
return llvm::createStringError(
"Expression stack needs at least 1 item for DW_OP_plus_uconst.");
"expression stack needs at least 1 item for DW_OP_plus_uconst");
} else {
const uint64_t uconst_value = opcodes.GetULEB128(&offset);
// Implicit conversion from a UINT to a Scalar...
stack.back().GetScalar() += uconst_value;
if (!stack.back().GetScalar().IsValid()) {
return llvm::createStringError("DW_OP_plus_uconst failed.");
}
if (!stack.back().GetScalar().IsValid())
return llvm::createStringError("DW_OP_plus_uconst failed");
}
break;
@@ -1534,7 +1527,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_shl:
if (stack.size() < 2) {
return llvm::createStringError(
"Expression stack needs at least 2 items for DW_OP_shl.");
"expression stack needs at least 2 items for DW_OP_shl");
} else {
tmp = stack.back();
stack.pop_back();
@@ -1550,13 +1543,13 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_shr:
if (stack.size() < 2) {
return llvm::createStringError(
"Expression stack needs at least 2 items for DW_OP_shr.");
"expression stack needs at least 2 items for DW_OP_shr");
} else {
tmp = stack.back();
stack.pop_back();
if (!stack.back().ResolveValue(exe_ctx).ShiftRightLogical(
tmp.ResolveValue(exe_ctx))) {
return llvm::createStringError("DW_OP_shr failed.");
return llvm::createStringError("DW_OP_shr failed");
}
}
break;
@@ -1570,7 +1563,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_shra:
if (stack.size() < 2) {
return llvm::createStringError(
"Expression stack needs at least 2 items for DW_OP_shra.");
"expression stack needs at least 2 items for DW_OP_shra");
} else {
tmp = stack.back();
stack.pop_back();
@@ -1585,7 +1578,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_xor:
if (stack.size() < 2) {
return llvm::createStringError(
"Expression stack needs at least 2 items for DW_OP_xor.");
"expression stack needs at least 2 items for DW_OP_xor");
} else {
tmp = stack.back();
stack.pop_back();
@@ -1625,7 +1618,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_bra:
if (stack.empty()) {
return llvm::createStringError(
"Expression stack needs at least 1 item for DW_OP_bra.");
"expression stack needs at least 1 item for DW_OP_bra");
} else {
tmp = stack.back();
stack.pop_back();
@@ -1657,7 +1650,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_eq:
if (stack.size() < 2) {
return llvm::createStringError(
"Expression stack needs at least 2 items for DW_OP_eq.");
"expression stack needs at least 2 items for DW_OP_eq");
} else {
tmp = stack.back();
stack.pop_back();
@@ -1676,7 +1669,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_ge:
if (stack.size() < 2) {
return llvm::createStringError(
"Expression stack needs at least 2 items for DW_OP_ge.");
"expression stack needs at least 2 items for DW_OP_ge");
} else {
tmp = stack.back();
stack.pop_back();
@@ -1695,7 +1688,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_gt:
if (stack.size() < 2) {
return llvm::createStringError(
"Expression stack needs at least 2 items for DW_OP_gt.");
"expression stack needs at least 2 items for DW_OP_gt");
} else {
tmp = stack.back();
stack.pop_back();
@@ -1714,7 +1707,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_le:
if (stack.size() < 2) {
return llvm::createStringError(
"Expression stack needs at least 2 items for DW_OP_le.");
"expression stack needs at least 2 items for DW_OP_le");
} else {
tmp = stack.back();
stack.pop_back();
@@ -1733,7 +1726,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_lt:
if (stack.size() < 2) {
return llvm::createStringError(
"Expression stack needs at least 2 items for DW_OP_lt.");
"expression stack needs at least 2 items for DW_OP_lt");
} else {
tmp = stack.back();
stack.pop_back();
@@ -1752,7 +1745,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_ne:
if (stack.size() < 2) {
return llvm::createStringError(
"Expression stack needs at least 2 items for DW_OP_ne.");
"expression stack needs at least 2 items for DW_OP_ne");
} else {
tmp = stack.back();
stack.pop_back();
@@ -1944,11 +1937,11 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
return fb_err.ToError();
} else {
return llvm::createStringError(
"Invalid stack frame in context for DW_OP_fbreg opcode.");
"invalid stack frame in context for DW_OP_fbreg opcode");
}
} else {
return llvm::createStringError(
"NULL execution context for DW_OP_fbreg.\n");
"NULL execution context for DW_OP_fbreg");
}
break;
@@ -2098,7 +2091,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
// Reset for the next piece.
dwarf4_location_description_kind = Memory;
return llvm::createStringError(
"Expression stack needs at least 1 item for DW_OP_bit_piece.");
"expression stack needs at least 1 item for DW_OP_bit_piece");
} else {
UpdateValueTypeFromLocationDescription(
log, dwarf_cu, dwarf4_location_description_kind, &stack.back());
@@ -2109,7 +2102,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
switch (stack.back().GetValueType()) {
case Value::ValueType::Invalid:
return llvm::createStringError(
"unable to extract bit value from invalid value.");
"unable to extract bit value from invalid value");
case Value::ValueType::Scalar: {
if (!stack.back().GetScalar().ExtractBitfield(piece_bit_size,
piece_bit_offset)) {
@@ -2147,7 +2140,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
if (!data) {
LLDB_LOG(log, "Evaluate_DW_OP_implicit_value: could not be read data");
return llvm::createStringError("Could not evaluate %s.",
return llvm::createStringError("could not evaluate %s",
DW_OP_value_to_name(op));
}
@@ -2198,7 +2191,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
// the stack by the called expression may be used as return values by prior
// agreement between the calling and called expressions.
case DW_OP_call2:
return llvm::createStringError("Unimplemented opcode DW_OP_call2.");
return llvm::createStringError("unimplemented opcode DW_OP_call2");
// OPCODE: DW_OP_call4
// OPERANDS: 1
// uint32_t compile unit relative offset of a DIE
@@ -2219,8 +2212,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
// the stack by the called expression may be used as return values by prior
// agreement between the calling and called expressions.
case DW_OP_call4:
return llvm::createStringError("Unimplemented opcode DW_OP_call4.");
return llvm::createStringError("unimplemented opcode DW_OP_call4");
// OPCODE: DW_OP_stack_value
// OPERANDS: None
@@ -2229,10 +2221,9 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
// value to be used. This is the actual object value and not the location.
case DW_OP_stack_value:
dwarf4_location_description_kind = Implicit;
if (stack.empty()) {
if (stack.empty())
return llvm::createStringError(
"Expression stack needs at least 1 item for DW_OP_stack_value.");
}
"expression stack needs at least 1 item for DW_OP_stack_value");
stack.back().SetValueType(Value::ValueType::Scalar);
break;
@@ -2246,7 +2237,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
case DW_OP_convert: {
if (stack.size() < 1) {
return llvm::createStringError(
"Expression stack needs at least 1 item for DW_OP_convert.");
"expression stack needs at least 1 item for DW_OP_convert");
}
const uint64_t die_offset = opcodes.GetULEB128(&offset);
uint64_t bit_size;
@@ -2256,7 +2247,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
// machine and an unspecified signedness. Scalar has no
// "unspecified signedness", so we use unsigned types.
if (!module_sp)
return llvm::createStringError("No module");
return llvm::createStringError("no module");
sign = false;
bit_size = module_sp->GetArchitecture().GetAddressByteSize() * 8;
if (!bit_size)
@@ -2269,7 +2260,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
DWARFDIE die = const_cast<DWARFUnit *>(dwarf_cu)->GetDIE(abs_die_offset);
if (!die)
return llvm::createStringError(
"Cannot resolve DW_OP_convert type DIE");
"cannot resolve DW_OP_convert type DIE");
uint64_t encoding =
die.GetAttributeValueAsUnsigned(DW_AT_encoding, DW_ATE_hi_user);
bit_size = die.GetAttributeValueAsUnsigned(DW_AT_byte_size, 0) * 8;
@@ -2277,7 +2268,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
bit_size = die.GetAttributeValueAsUnsigned(DW_AT_bit_size, 0);
if (!bit_size)
return llvm::createStringError(
"Unsupported type size in DW_OP_convert");
"unsupported type size in DW_OP_convert");
switch (encoding) {
case DW_ATE_signed:
case DW_ATE_signed_char:
@@ -2289,7 +2280,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
break;
default:
return llvm::createStringError(
"Unsupported encoding in DW_OP_convert");
"unsupported encoding in DW_OP_convert");
}
}
Scalar &top = stack.back().ResolveValue(exe_ctx);
@@ -2313,13 +2304,13 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
stack.back().SetValueType(Value::ValueType::LoadAddress);
} else {
return llvm::createStringError(
"Stack frame does not include a canonical "
"stack frame does not include a canonical "
"frame address for DW_OP_call_frame_cfa "
"opcode.");
"opcode");
}
} else {
return llvm::createStringError("Invalid stack frame in context for "
"DW_OP_call_frame_cfa opcode.");
return llvm::createStringError("unvalid stack frame in context for "
"DW_OP_call_frame_cfa opcode");
}
break;
@@ -2334,18 +2325,18 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
if (stack.size() < 1) {
if (op == DW_OP_form_tls_address)
return llvm::createStringError(
"DW_OP_form_tls_address needs an argument.");
"DW_OP_form_tls_address needs an argument");
else
return llvm::createStringError(
"DW_OP_GNU_push_tls_address needs an argument.");
"DW_OP_GNU_push_tls_address needs an argument");
}
if (!exe_ctx || !module_sp)
return llvm::createStringError("No context to evaluate TLS within.");
return llvm::createStringError("no context to evaluate TLS within");
Thread *thread = exe_ctx->GetThreadPtr();
if (!thread)
return llvm::createStringError("No thread to evaluate TLS within.");
return llvm::createStringError("no thread to evaluate TLS within");
// Lookup the TLS block address for this thread and module.
const addr_t tls_file_addr =
@@ -2355,7 +2346,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
if (tls_load_addr == LLDB_INVALID_ADDRESS)
return llvm::createStringError(
"No TLS data currently exists for this thread.");
"no TLS data currently exists for this thread");
stack.back().GetScalar() = tls_load_addr;
stack.back().SetValueType(Value::ValueType::LoadAddress);
@@ -2430,7 +2421,7 @@ llvm::Expected<Value> DWARFExpression::Evaluate(
if (pieces.GetBuffer().GetByteSize())
return pieces;
return llvm::createStringError("Stack empty after evaluation.");
return llvm::createStringError("stack empty after evaluation");
}
UpdateValueTypeFromLocationDescription(