Benutzer mit den meisten Antworten
Anzahl der Aufrufe in der Aufrufliste

Frage
-
Hallo Leute,
beim Debuggen eines Problems mit Visual Studio reichen mir die 20 Aufrufe, die in der Aufrufliste angezeigt werden, nicht um das Problem zu identifizieren.
Die letzten 20 Aufrufe sind ausschließlich von der comctl32.dll, AcXtrnal.dll, kernel32.dll und der ntdll.dll.
Ich bereits ein wenig Recherchiert aber entweder die falschen Betriffe verwendet oder aber nichts zu dem Thema gefunden.
Gibt es eine Möglichkeit die Anzahl der Aufrufe für die Aufrufliste zu erhöhen/ändern? Wenn ja, was muss ich dafür machen?
Edit: Achja, ich arbeite mit nativem C/C++.
Gruß
Rudolf
"Der Nachteil der Intelligenz besteht darin, dass man ununterbrochen gezwungen ist, dazuzulernen." Georg Bernhard Shaw- Bearbeitet Rudolf Grauberger Mittwoch, 27. Februar 2013 12:54
Antworten
-
Ich sehe immer alle, bis zum Threadstart...
Testprogramm:
[cpp]
#include <windows.h>
#include <tchar.h>
void Test(int i)
{
if (i == 0) return;
Test(--i);
}
int _tmain(int argc, _TCHAR* argv[])
{
Test(30);
return 0;
}[cpp]Callstack:
> CPP_VS2012.exe!Test(int i) Line 83 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!wmain(int argc, wchar_t * * argv) Line 91 C++ CPP_VS2012.exe!__tmainCRTStartup() Line 533 C CPP_VS2012.exe!wmainCRTStartup() Line 377 C kernel32.dll!74fe33aa() Unknown [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll] ntdll.dll!77369ef2() Unknown ntdll.dll!77369ec5() Unknown
Bist Du sicher, dass Du im richtigen Thread bist? Wie sieht denn der Callstack aus? Was erwartest Du denn? Glaubst Du nicht, dass Du einfach in einem anderen Thread benachrichtigt wurdest? z.B. via COM?
Jochen Kalmbach (MVP VC++)- Als Antwort markiert Rudolf Grauberger Mittwoch, 27. Februar 2013 15:11
Alle Antworten
-
Hallo Jochen,
vielen Dank für die Antwort.
Diese Option hate ich bereits gesetzt. Beim Debuggen zeigt mir Visual Studio auch an, dass die Symbole von dem Microsoft-Server geladen werden, allerdings bekomme ich leider nie mehr als 20 Einträgen in der Callstack-Anzeige angezeigt.
Ich hoffe ja, dass wenn ich mehr 20 Einträge sehe, das ich dann irgendwann auch die Funktionen meiner Anwendung sehe die als letztes aufgerufen wurden bevor es sich in den Betriebssystem-Funktionen verfangen hat.
Über weitere Ideen bin ich sehr dankbar.
Gruß
Rudolf
"Der Nachteil der Intelligenz besteht darin, dass man ununterbrochen gezwungen ist, dazuzulernen." Georg Bernhard Shaw- Bearbeitet Rudolf Grauberger Mittwoch, 27. Februar 2013 13:34
-
Ich sehe immer alle, bis zum Threadstart...
Testprogramm:
[cpp]
#include <windows.h>
#include <tchar.h>
void Test(int i)
{
if (i == 0) return;
Test(--i);
}
int _tmain(int argc, _TCHAR* argv[])
{
Test(30);
return 0;
}[cpp]Callstack:
> CPP_VS2012.exe!Test(int i) Line 83 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!Test(int i) Line 84 C++ CPP_VS2012.exe!wmain(int argc, wchar_t * * argv) Line 91 C++ CPP_VS2012.exe!__tmainCRTStartup() Line 533 C CPP_VS2012.exe!wmainCRTStartup() Line 377 C kernel32.dll!74fe33aa() Unknown [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll] ntdll.dll!77369ef2() Unknown ntdll.dll!77369ec5() Unknown
Bist Du sicher, dass Du im richtigen Thread bist? Wie sieht denn der Callstack aus? Was erwartest Du denn? Glaubst Du nicht, dass Du einfach in einem anderen Thread benachrichtigt wurdest? z.B. via COM?
Jochen Kalmbach (MVP VC++)- Als Antwort markiert Rudolf Grauberger Mittwoch, 27. Februar 2013 15:11