@MasterCopipaster

Visual 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.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, которое находится в нем (оно там есть 100%)

telnet >
get HLWRD
VALUE HLWRD 0 15
hello memcached
END


Но моя программа при работе возвращает следующие
0Got STATS

first_client.get("HLWRD", ret_val); // return false


Но почему так происходит я не могу понять, вроде как Got 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;
  }

Код компилируется отлично, и работает без падений, но я не знаю, как понять, почему данные из memcached не читаются? - Я не прошу ответа на вопрос "почему" (хотя это было бы здорово ) Я прошу вас сказать мне, как это можно отладить? как мне понять причину?
  • Вопрос задан
  • 29 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы