C++ visualc&x2B+;如何调试使用memcached的代码?
我要求您告诉我如何调试以下代码C++ visualc&x2B+;如何调试使用memcached的代码?,c++,memcached,C++,Memcached,我要求您告诉我如何调试以下代码 int main() { Memcache first_client("--SERVER=127.0.0.1:11211"); first_client.addServer("127.0.0.1", 11211); map<string, map<string, string> > my_stats; bool gotStats = first_client.get
int main()
{
Memcache first_client("--SERVER=127.0.0.1:11211");
first_client.addServer("127.0.0.1", 11211);
map<string, map<string, string> > my_stats;
bool gotStats = first_client.getStats(my_stats);
std::vector<char> ret_val;
if (gotStats) {
bool a = first_client.get("HLWRD", ret_val);
std::string s(ret_val.begin(), ret_val.end());
std::cout << a;
//for (auto const &element: ret_val)
//std::cout << element << ' ';
printf("%s\n", "Got STATS");
}
else {
printf("%s\n", "Unable to get STATS");
}
}
但是为什么呢
memcached.hpp
/**
* Fetches an individual value from the server.
*
* @param[in] key key of object whose value to get
* @param[out] ret_val object that is retrieved is stored in
* this vector
* @return true on success; false otherwise
*/
bool get(const std::string &key, std::vector<char> &ret_val) {
uint32_t flags = 0;
memcached_return_t rc;
size_t value_length = 0;
char *value = memcached_get(memc_, key.c_str(), key.length(), &value_length, &flags, &rc);
if (value != NULL && ret_val.empty()) {
ret_val.reserve(value_length + 1); // Always provide null
ret_val.assign(value, value + value_length + 1);
ret_val.resize(value_length);
free(value);
return true;
}
return false;
}
/**
*从服务器获取单个值。
*
*@param[in]要获取其值的对象的键
*检索到的@param[out]ret_val对象存储在
*这个向量
*@成功即归真;否则就错了
*/
bool-get(常量std::字符串和键,std::向量和返回值){
uint32_t标志=0;
memcached_return_t rc;
尺寸值长度=0;
char*value=memcached\u get(memc\u、key.c\u str()、key.length()、&value\u length、&flags、&rc);
if(value!=NULL&&ret_val.empty()){
ret_val.reserve(value_length+1);//始终提供null
重新赋值(值,值+值长度+1);
重新调整大小(值长度);
自由(价值);
返回true;
}
返回false;
}
这段代码编译得很好,运行起来也不会下降,但我不知道如何理解为什么memcached中的数据不被读取我不是在问为什么(尽管那很好)我要你告诉我如何调试它?我如何理解原因
/**
* Fetches an individual value from the server.
*
* @param[in] key key of object whose value to get
* @param[out] ret_val object that is retrieved is stored in
* this vector
* @return true on success; false otherwise
*/
bool get(const std::string &key, std::vector<char> &ret_val) {
uint32_t flags = 0;
memcached_return_t rc;
size_t value_length = 0;
char *value = memcached_get(memc_, key.c_str(), key.length(), &value_length, &flags, &rc);
if (value != NULL && ret_val.empty()) {
ret_val.reserve(value_length + 1); // Always provide null
ret_val.assign(value, value + value_length + 1);
ret_val.resize(value_length);
free(value);
return true;
}
return false;
}