VerySleepy / verysleepy

Very Sleepy, a sampling CPU profiler for Windows
http://www.codersnotes.com/sleepy
GNU General Public License v2.0
1.05k stars 103 forks source link

Can't build master in VS22 Release x64 #103

Open lefterise opened 2 years ago

lefterise commented 2 years ago

Compiler complains that profiler.cpp lines 115, 139, 145 context.Eip is a 32bit value being cast to a 64bit pointer.

Except.h lines 41, 49 can not construct a char string by passing iterator to wchar string

lefterise commented 2 years ago

I hackishly got master branch to compile but i get a message box saying Seek error on file '...\Temp\A35D.tmp' (error 131: An attempt was made to move the file pointer before the beginning of the file.)

I think it's caused by database.cpp line 171 zip.OpenEntry(*entries["minidump.dmp"]) I opened A35D.tmp with 7-zip and it does not contain that file. I assume that file is optional, however since "minidump.dmp" does not exist in the entries map i assume it tries to de-reference a pointer to null. At that point I would have expected an access violation however it seems it continues working until it reaches zipstrm.cpp of wxWidgets and tries to QuietSeek to offset -1

CyberShadow commented 2 years ago

I hackishly got master branch to compile but i get a message box saying Seek error on file '...\Temp\A35D.tmp' (error 131: An attempt was made to move the file pointer before the beginning of the file.)

Might have been introduced in https://github.com/VerySleepy/verysleepy/pull/98, CC @mojomojomojo

mojomojomojo commented 2 years ago

There's a fix for that problem in #99.

CyberShadow commented 2 years ago

If you would like to submit your changes needed to get the project to build with your compiler as a pull request, I'll do my best to review and merge it.

lefterise commented 2 years ago

I pull request #105 submitted.

-It removes the definition of applyHacks from the x64 build. (The method is only called from x86, compiler under x64 complains that a 32bit value is used for a 64bit pointer) -It changes the way wstring is converted to string. It uses widechartomultibyte windows API -It fixes a memory leak in database.cpp. GetNextEntry() gives us ownership of a wxZipEntry so we are responsible to delete it.