Ответ 1
У меня была та же проблема. Я предполагаю, что вы отлаживаете неуправляемую (родную) С++ DLL, которая является частью решения, использующего управляемый EXE? В моем случае у меня есть С# WPF EXE, который выполняет функции PInvokes в неуправляемой С++ DLL.
"Исправления", которые работали в моем случае:
FIX 1: Снимите флажок "Использовать режим совместимой совместимости" в настройках отладчика: Вы можете сделать это в Инструменты/Параметры/Отладка/Общие. Смотрите: fooobar.com/questions/189012/.... Для обсуждения того, что такое режим управляемой совместимости и почему вы его обычно не проверяете, см. http://blogs.msdn.com/b/visualstudioalm/archive/2013/10/16/switching-to-managed-compatibility-mode-in-visual-studio-2013.aspx
"FIX" 2: В качестве частичной работы вы можете сначала начать свой процесс без отладчика (Ctrl + F5), затем присоединить отладчик VS2015 к вашему процессу (Debug/Attach-to-Process), но только выберите "Native code" с помощью "Attach to/Select...". Теперь, когда точка останова в вашей родной С++ DLL попала, вы можете нависнуть над переменными std::string, а VS2015 покажет их полное содержимое, как ожидалось, включая их членов данных. Недостатком этой совместной работы является то, что вы не сможете одновременно отлаживать управляемый код (например, С# или CppCli).