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;
  }