-
Notifications
You must be signed in to change notification settings - Fork 314
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
Work performed on various issues #8
Conversation
Do you want any changes made from this point on in one or more new commits or edit the relevant commits in place? What's best for review? |
You can make changes in new commit and then rebase before we will merge this PR. |
…ed. Instead, use the ISO C++ conformant name: _strdup.
…ance has no annotations. Fix warning C28204: 'Alloc', 'DidAlloc', 'Free', 'GetSize', 'Realloc' : Only one of this override is annotated: both or neither must be annotated.
…called from within a try/except block: The requirement might be conditional. Fix 'CriticalSectionLocker' class implements the '=' operator, but lacks a copy constructor.
…to the specification for the function 'fwrite'.
Super, we lost the entire review because i had to rebase master due to 778a1e9 In any case I have resolved the performance degradation issue. |
I'll have time this weekend to resolve any new review points so we can finally finish this.
|
void* m = malloc(50); | ||
char* n = new char[60]; | ||
|
||
return VLDGetLeaksCount() == 8 ? 0 : 1; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
VLDGetLeaksCount() return 11 for me
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
VS2015 ? Debug / Release ? (I am still on VS2013)
AppVeyor reports 8 leaks in the Release test for both Win32 and x64.
Can you post the full report so we can check if they are crt leaks
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am calling VLDReportLeaks() before return from main
VS2015 Debug return 9 https://gist.github.com/KindDragon/fcb0757383efd6b4018a
VS2015 Debug_StaticCrt return 12 https://gist.github.com/KindDragon/06b1dc5e13f62956eb0c
Your code crash on x64 (Windows 10) when call |
Please cheery pick this commit 8d155b7 . Results with TestUnload - https://ci.appveyor.com/project/KindDragon/vld/build/71/job/2089w3s2taa31ltu/tests |
and ComTest doesn't register on x64 |
I have fixed
|
With the modification made to the project files, the vs14 solution is loadable in vs12, the only thing is that the platform should be changed within VS, I have made the platform a default setting for all configurations, so when it changes it changes for all configurations. In this respect i guess we dont need to keep vs12 and vs14 solutions. |
Great work
I'm using VS12 solution to check vld with VS2013 toolset on local Teamcity. Therefore, it is still necessary to me. |
Ok, i'll keep them and i will make the solutions and projects the same appart from the toolset. |
Updated projects and solutions If there is nothing else, i am ready ! |
86e92f9
to
f2d1976
Compare
Builds successfully again! |
So everything is ok. If you have already done, I merge PR. |
Do you want me to squash any commits ? or leave them as they are ? |
The following should be resolved: |
I am testing as well in my repo. |
Seems to be deadlocking on appveyor but runs ok localy ... |
With StackWalkMethod safe? |
wait, let me test safe locally... and i'll report back |
Yes just run |
https://ci.appveyor.com/project/ioannis-e/vld/build/3 So it only fails on vs12 Release_StaticCrt Win32/x64 in safe mode |
On which windows are you ? |
Can you add a |
win 10 |
Works for me. Waiting for appveyor https://ci.appveyor.com/project/KindDragon/vld/build/99 |
LdrLock deadlock with crt heap lock |
Damn, thread syncronisations don't work... i thought i got them working (back to the drawing board) |
See if you like ioannis-e/vld@357f91a and whether it works for you as well ? I temporarily removed VS2012 appveyour tests since they kept failing. Can you build/run in VS2012/VS2010 at all ? |
I can not configure build under VS2010 |
I meant locally not on appveyor. Did you get any feedback from appveyor support regarding v110 toolset ? |
I meant this too |
I don't know how I fill about this changes :-) Too many critical sections and locks.
But you use 4 CS. |
@KindDragon I understand, so let me explain my reasoning. There were already 2 locks in code Using Also I used the wrapper functions in order to avoid unecessary blocking or neigbouring code by the locks. Regarding |
I also fix deadlock in Magic commit :-) 9902f53 https://ci.appveyor.com/project/KindDragon/vld/build/100 |
heapMapLock was added not so long ago b9a53cd instead of g_stackWalkLock |
But frequent entry/exit to critical section is slower than once to enter before loop. |
How you think if I partially revert b9a53cd ("CS g_stackWalkLock merged with g_heapMapLock"). |
You see upto that commit each DbgHelp function had its own locker and all other Sym* functions had one locker, which is basically what i did but instead put them in a class. So I guess you should go back to g_stackWalkLock for StackWalk64 and probably add one more lock for EnumerateModulesW64. What I also considered is that StackWalk64 and EnumerateModulesW64 are the most time consuming functions I would also suggest the following changes |
I finally managed to build under VS2010. I have an issue with This causes some I was wandering whether you would accept on I'm currently working on some changes to see how it goes. |
They use VS Express and it doesn't contain MFC |
VS2012 build failed for Environment: VldStackWalkMethod=fast, Solution=vld_vs11_wo_mfc.sln, GTEST_FILTER=-.Mfc; Configuration: Release_StaticCrt; Platform: Win32 |
Maybe just change leaks count for this configuration (will simply be known difference in behavior). Someday we will remove support for VS2010 |
The highlights of the changes made are as follows:
this may have an effect in performance.I tried to keep commits independed of each other as much as possible, to make review easier.
I would suggest to cherypick as much as possible into master in order to rebase this PR and leave us with only the commits that need discussion.