@@ -4022,8 +4022,10 @@ bool ParseRegisters(XMLNode feature_node, GdbServerTargetInfo &target_info,
4022
4022
if (!feature_node)
4023
4023
return false ;
4024
4024
4025
+ Log *log (GetLog (GDBRLog::Process));
4026
+
4025
4027
feature_node.ForEachChildElementWithName (
4026
- " reg" , [&target_info, ®isters](const XMLNode ®_node) -> bool {
4028
+ " reg" , [&target_info, ®isters, log ](const XMLNode ®_node) -> bool {
4027
4029
std::string gdb_group;
4028
4030
std::string gdb_type;
4029
4031
DynamicRegisterInfo::Register reg_info;
@@ -4032,9 +4034,9 @@ bool ParseRegisters(XMLNode feature_node, GdbServerTargetInfo &target_info,
4032
4034
4033
4035
// FIXME: we're silently ignoring invalid data here
4034
4036
reg_node.ForEachAttribute ([&target_info, &gdb_group, &gdb_type,
4035
- &encoding_set, &format_set, ®_info](
4036
- const llvm::StringRef &name,
4037
- const llvm::StringRef &value) -> bool {
4037
+ &encoding_set, &format_set, ®_info,
4038
+ log]( const llvm::StringRef &name,
4039
+ const llvm::StringRef &value) -> bool {
4038
4040
if (name == " name" ) {
4039
4041
reg_info.name .SetString (value);
4040
4042
} else if (name == " bitsize" ) {
@@ -4091,10 +4093,10 @@ bool ParseRegisters(XMLNode feature_node, GdbServerTargetInfo &target_info,
4091
4093
SplitCommaSeparatedRegisterNumberString (
4092
4094
value, reg_info.invalidate_regs , 0 );
4093
4095
} else {
4094
- Log *log (GetLog (GDBRLog::Process));
4095
4096
LLDB_LOGF (log,
4096
- " ProcessGDBRemote::%s unhandled reg attribute %s = %s" ,
4097
- __FUNCTION__, name.data (), value.data ());
4097
+ " ProcessGDBRemote::ParseRegisters unhandled reg "
4098
+ " attribute %s = %s" ,
4099
+ name.data (), value.data ());
4098
4100
}
4099
4101
return true ; // Keep iterating through all attributes
4100
4102
});
@@ -4116,6 +4118,12 @@ bool ParseRegisters(XMLNode feature_node, GdbServerTargetInfo &target_info,
4116
4118
// them as vector (similarly to xmm/ymm)
4117
4119
reg_info.format = eFormatVectorOfUInt8;
4118
4120
reg_info.encoding = eEncodingVector;
4121
+ } else {
4122
+ LLDB_LOGF (
4123
+ log,
4124
+ " ProcessGDBRemote::ParseRegisters Could not determine lldb"
4125
+ " format and encoding for gdb type %s" ,
4126
+ gdb_type.c_str ());
4119
4127
}
4120
4128
}
4121
4129
@@ -4133,7 +4141,6 @@ bool ParseRegisters(XMLNode feature_node, GdbServerTargetInfo &target_info,
4133
4141
}
4134
4142
4135
4143
if (reg_info.byte_size == 0 ) {
4136
- Log *log (GetLog (GDBRLog::Process));
4137
4144
LLDB_LOGF (log,
4138
4145
" ProcessGDBRemote::%s Skipping zero bitsize register %s" ,
4139
4146
__FUNCTION__, reg_info.name .AsCString ());
0 commit comments