Debugowanie programu w Visual Studio i zastanawiam się, dlaczego mój program przechodzi obok funkcji w konkretnej jednostce (plik kodu źródłowego).
Myślałem, że stos wywoławczy pokazałby to, ale wydaje się, że tak nie jest. Ponadto lista sygnalizacyjnych wpisów nie wspomina nawet o nazwie pliku:

  • Pokaż nazwy modułów.
  • Pokaż typy parametrów
  • Pokaż nazwy parametrów
  • Pokaż wartości parametrów.
  • Pokaż numery linii
  • Pokaż przesunięcia bajtów.

=> Nie "Pokaż nazwy plików", chociaż obecność "Pokaż linie" oznacza, że nazwa pliku powinna być znana.

Pracuję z Visual Studio Professional 2017 dla Desktop Windows.

Czy jest to problem z konfiguracją, czy to nie jest obecna w mojej instalacji Studio Visual (jeśli tak, która wersja ma tę funkcję), czy też nie jest przewidziany w Visual Studio?

Aby dobrze zrozumieć, mój stos połączeń wygląda następujące:

<product>.dll!<first_class>::<first_class>(double dFy, double dFx) Line 102 C++
<product>.dll!<subfunction>(double dFv, double dFh) Line 1450   C++
<product>.dll!<subsubfunction>(double dFv, double dFh, int number) Line 1672    C++
...

Chociaż chciałbym zobaczyć coś takiego:

<product>.dll!<first_class>::<first_class>(double dFy, double dFx) File <file1.c> Line 102  C++
<product>.dll!<subfunction>(double dFv, double dFh) File <file2.c> Line 1450    C++
<product>.dll!<subsubfunction>(double dFv, double dFh, int number) File <file2.c> Line 1672 C++
...

Jak szczególnie interesuje mnie różnicę między centralowymi plikami źródłowymi a plikami źródłowymi projektami, chciałbym zobaczyć całą ścieżkę w nazwie pliku.

6
Dominique 17 luty 2017, 13:18

2 odpowiedzi

Najlepsza odpowiedź

Możesz przestać wyglądać, opcja jest po prostu niedostępna.

Trudno zgadnąć, dlaczego Microsoft postanowił go nie podać, ale jest to jedyne informacje o debugowaniu, które są niejednoznaczne. Coś, że miękki muszą poradzić sobie z codziennie, programy, które debugują, są na ogół zbudowane na serwerze Budowniczej z kodu źródłowego, który nie znajduje się w tych samych katalogach.

Chciałbym przeglądać własne pliki, bez konieczności otwarcia wszystkich dołączonych plików centralnych ...

Nie jest to konieczne, po prostu kliknij dwukrotnie określony wpis w stosunku do stosu, który Cię interesuje. Jeśli Debugger zna plik źródłowy, automatycznie otworzy się i umieści torcie w instrukcji. Unoszący zakładkę Edytora Wyświetla ścieżkę pliku. Jeśli Debugger nie może znaleźć pliku źródłowego, zdobędziesz okno dialogowe, aby przejść do właściwego katalogu.

1
Hans Passant 29 styczeń 2018, 10:19

Z tego, co wiem, nie ma takiej opcji (w dowolnej wersji Visual Studio). Jedyną rzeczą, jaką możesz zrobić, będzie kliknąć prawym przyciskiem myszy w stos dzwonek i naciśnij Przejdź do pliku źródłowego. Następnie zobaczysz kod źródłowy i miejmy nadzieję, że będziesz wiedział, która wersja pliku jest. O ile wiem, nie ma też wtyczek do tego, co próbujesz osiągnąć.

right-click on call stack and press go to source file

1
wdudzik 23 styczeń 2018, 10:30