-
Notifications
You must be signed in to change notification settings - Fork 109
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
improvement of the magic breakpoints fix #55 #58
improvement of the magic breakpoints fix #55 #58
Conversation
@stlintel more suggestions? btw, I prefer using "{ }" like:
Because I've noticed security bugs (and normal bugs) associated when devs dont use {}, but I can use your style if you prefer, just tell me. I also prefer to practice defensive programming and write conditions like if (0x2A == variable), tell me if this is a problem I've also made this global:
And enhance security slightly by using const char const* I also prefer to be explicit in comparisons like (its my taste):
However, I can modify this and simply use:
Tell me what I should do in the future |
Thank you @stlintel , I'll try not to make the same mistakes in the next PR, and be more respectful of your time and patience! |
Hi, The ideal behavior with github was that once project is approved - you could just merge by itself by pressing merge button in the PR. Or you could set 'Enable auto-merge' in the PR and will be merged automatically. I will merge it on the evening together with lex and yacc files. Thanks, |
I think I don't have privileges to do it, can you give me privileges in the repository? By the way, don't worry, I will never merge anything without your approval, and I'll do everything via PR |
I an still new to github interface - I wonder how to make it available to everybody.
|
I have no idea about GIT or GITHUB, but tell me what you want me to try, and we'll figure out if it works, |
@stlintel If what you're thinking is that anyone can merge at any time, that's madness; they could break the repository, and this can cause a lot of conflicts... Someone with judgment must orchestrate the merge, perform the rebases, or do whatever is necessary to ensure that the history and main branch is OK For example, imagine the following: You approve a PR from JOHN's branch that modifies the config.cc file on line 23. Both have merge privileges... so now what? Who resolves the conflict? And how??? Are you going to let them break the repository / rewriting main history or introduce bugs? Nah This flow dont makes sense, you have to think about this as if it were a multithreading system xD btw, I can help you maintain a clearer and cleaner main history (I really don't like merge messages): |
github handles the mess.
I don't know, this is how I used to do at work. There is still a lot to set up in github but for sure it could work super-nicely. |
The problem is the same... as I said ... someone with judgment must orchestrate the merge, perform the rebases, or do whatever is necessary to ensure that the history and main branch is OK think in this another scenario: You approve a PR from JOHN's branch that modifies the config.cc Here we don't have a Git conflict, but we might encounter a bug that only a human could detect. What happens if you've approves multiple PRs that may seem good 'isolated' or unrelated, but could cause a bug together? Only a human with a big picture in mind can catch something like this... because you are merging in order etc.. So only you can recognize this kind of errors when merging because you know the project well and understand the consequences and side effects. Contributors might only be familiar with their part, and not everything that's going on in parallel This is a philosophical matter, indeed In my opinion, only experienced developers with good judgment and deep understand of the project should be able to merge btw, @stlintel your mention
This is key, for your work its very useful this flow... but Bochs its huge and complex.. the contributors like me only knows a little part.. its not the same context IMO |
At work the project is way more complex than Bochs, which includes dozens of modules with more than 2M of lines of code.
This is basically the same. Only experienced developers with good judgment are able to approve. |
Oka, so if you need something just ping me! |
A good start from PR #55
Just implemented support for various types of magic breakpoints, along with the ability to modify them at runtime from within the debugger. So, the Windows XP NTLDR will no longer be a problem.
fix #55
windows xp ntldr have code like this:
And this code is called a lot of times!
ring3 code CANT execute OUT instruction (0x8AE0)
So the ring3-dev cant use magic breakpoints on Bochs debugger (on first instance)
with this PR, the user can select what register should breaks:
This PR is 100% backward compatibility
Added a new command to change from debugger the mask of registers, example adding XCHGW %DI, %DI or XCHGW %BX, %BX
clear command:
@stlintel @vruppert do you like it?