-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Application was unable to start correctly #2
Comments
The errors above were with the prebuilt release, so I tried to build BugInsight and got an error following steps from https://github.com/JochenBaier/BugInsight/blob/main/Build_from_source.md $ cmake --build . --config Release --parallel |
Thank you for reporting this. Please delete build folder and repeat the cmake steps to see if you got cmake errors. |
Hello, I'm getting these compiler errors for Debug and Release:
It built the executable, but then I get this error when trying to run, and I cannot find the DLL mentioned. I used the VS2022 Command Prompt.
Here is the build log before the compiler errors:
|
at mutex_monitor.hpp: using _Thrd_result = int; // add this
using _Mtx_lock_t=_Thrd_result(__cdecl*)(_Mtx_t) noexcept; can fix compile error |
it crash at first below code: // buginsight_dll\stacktrace\stacktrace.cc
TM_ATTRIBUTE_NOINLINE int GetStackFrames(void** result, unsigned long* p_hash, int p_max_depth, int p_skip_count, bool p_check)
{
// it can not use a static object, because it do not init all global and static variable.
static RtlCaptureStackBackTrace_Function* const RtlCaptureStackBackTrace_fn=(RtlCaptureStackBackTrace_Function*)GetProcAddress(GetModuleHandleA("ntdll.dll"), "RtlCaptureStackBackTrace");
...
} change as static RtlCaptureStackBackTrace_Function* RtlCaptureStackBackTrace_fn = nullptr;
TM_ATTRIBUTE_NOINLINE int GetStackFrames(void** result, unsigned long* p_hash, int p_max_depth, int p_skip_count, bool p_check)
{
if (RtlCaptureStackBackTrace_fn==nullptr) {
RtlCaptureStackBackTrace_fn = (RtlCaptureStackBackTrace_Function*)GetProcAddress(GetModuleHandleA("ntdll.dll"), "RtlCaptureStackBackTrace");
}
...
}
then it crash at second below code: //buginsight_dll\helper\dbghelp_api.cpp
DWORD bi_symsetoptions(DWORD SymOptions)
{
std::lock_guard lock(g_mutex); // ---> the g_mutex is not init, when use it will crash.
//assert(SymSetOptions_fptr);
//return SymSetOptions_fptr(SymOptions);
return SymSetOptions(SymOptions);
} this is because //buginsight_dll\dll_main.cpp
loader_t g_loader; ------> it's constructor will call InitializeSymbolizer->dbghelp_api::bi_symsetoptions->std::lock_guard lock(g_mutex);
// but sometime g_mutex is init later than g_loader.
|
i will take look this weekend. |
thanks. // dll_main.cpp
loader_t* g_loader=nullptr;
__declspec(noinline)
BOOL WINAPI DllEntryPoint(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved)
{
...
if(fdwReason == DLL_PROCESS_ATTACH || fdwReason == DLL_THREAD_ATTACH)
{
if(!_CRT_INIT(hinstDLL, fdwReason, lpReserved))
{
return(FALSE);
}
if (g_loader==nullptr) {
g_loader = new loader_t();
}
}
if(fdwReason == DLL_PROCESS_DETACH || fdwReason == DLL_THREAD_DETACH)
{
delete g_loader;
g_loader = nullptr;
if(!_CRT_INIT(hinstDLL, fdwReason, lpReserved))
{
return(FALSE);
}
...
} but it can not monitor global variable's memory alloc and free. |
F12 on _Thrd_result goes with Community to C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.40.33807\include\xthreads.h
buginsight_dll\dll_main.cpp:
buginsight_dll\helper\dbghelp_api.cpp: with this fix the order should be defined since g_mutex and g_loader are in the same translation unit |
I tried to use BugInsight on two Qt applications and they both failed to work.
An error dialog showed the message:
"The application was unable to start correctly (0x0000142). Click OK to close the application."
The command line showed this:
[BugInsight] [info] BugInsight Application under test: 'MyApp.exe'
[BugInsight] [info] Loading 'BugInsight' into application under test.
[BugInsight] [warning] Call PeekNamedPipe() failed: 'The pipe has been ended.'.
[BugInsight] [info] Application under test finished with exit code '-1073741502'
I'm using Qt 6.2.12 and MSVC 2022.
The text was updated successfully, but these errors were encountered: