В настоящее время я отлаживаю проект, над которым я работал некоторое время, и, поскольку я хотел узнать содержимое именованного файла QString и, таким образом, записал file.d в моих наблюдаемых переменных, я просто заметил, что Файл на самом деле был адресом.
Дело в том, что файл не был адресом в моем коде.
Вот функция, в которой я был:
void MyClass::updateFile(QString file, QTreeWidgetItem *item)
{
if(file.isEmpty())
return;
QFile f(file); // Line were I had the breakpoint
...
}
Итак, я проверил стек, и он действительно был написан
updateFile(QString *file, QTreeWidgetItem *item)
Сначала я подумал об оптимизации компилятора, но поскольку я был в режиме отладки, это кажется маловероятным.
У вас есть объяснение?
РЕДАКТИРОВАТЬ: я должен добавить это, когда я изменил подпись на
void MyClass::updateFile(QString const &file, QTreeWidgetItem *item)
Проблема исчезает, и отладчик и код снова имеют одинаковую подпись.