User forums > Nightly builds
The 06 March 2011 build (7040) is out.
ollydbg:
--- Quote from: oBFusCATed on April 03, 2011, 12:53:09 pm ---Ollydbg: I don't understand what you are trying to say...
--- End quote ---
I mean the function name FindFunctionOpenBrace should be changed to FindFunctionOpenParenthesis.
Also, when counting the commas, it should stopped when meet a "{".
oBFusCATed:
--- Quote from: ollydbg on April 03, 2011, 02:07:23 pm ---I mean the function name FindFunctionOpenBrace should be changed to FindFunctionOpenParenthesis.
--- End quote ---
This could be done.
--- Quote from: ollydbg on April 03, 2011, 02:07:23 pm ---Also, when counting the commas, it should stopped when meet a "{".
--- End quote ---
Why? Do you have a failing test case?
I think, it would stop earlier, so the change is not needed. By the way, I've not modified this searching code, I've just removed some member variables there.
BTW: This patch will fail with a function returning a function pointer, but at the moment the CC doesn't parse such functions correctly anyway :)
ollydbg:
--- Quote from: oBFusCATed on April 03, 2011, 02:28:13 pm ---
--- Quote from: ollydbg on April 03, 2011, 02:07:23 pm ---Also, when counting the commas, it should stopped when meet a "{".
--- End quote ---
Why? Do you have a failing test case?
I think, it would stop earlier, so the change is not needed. By the way, I've not modified this searching code, I've just removed some member variables there.
--- End quote ---
for example:
--- Code: ---c.g();
a.f(arg0,|);
--- End code ---
this way, the backward search will stop at the first semicolon.
for example:
--- Code: ---for(...)
{
a.f(arg0,|);
}
--- End code ---
You see, the backward search should stop at the first open brace.
Os, the backward search should stop after a "C statement".
oBFusCATed:
I don't understand what is the problem here?
Can you show me a testcase where the code fails?
If you can't no changes to the code will be made!
ollydbg:
--- Quote from: oBFusCATed on April 03, 2011, 05:06:50 pm ---I don't understand what is the problem here?
Can you show me a testcase where the code fails?
If you can't no changes to the code will be made!
--- End quote ---
I just do a research a little, and found that the "backward search" is expat started in the parentheses.
So, e.g.
--- Code: ---for(...)
{
a.f(arg0,|);
}
--- End code ---
This way, the "backward search" will stop at the open parenthesis of the a.f(. Let's say, the "backward search" stops at an un-balanced open parenthesis. So, this works OK normally.
But what dose the code:
--- Code: --- if (ch == _T(';'))
return;
--- End code ---
I suspect: In a function call statement, in the parentheses, does any one will write a ";" ?
I think these will be no semicolon there.
The semicolon is just used to stop the "backward search" in some cases to avoid the "backward search" goes too far.
So, if the code:
--- Code: ---c.g();
a.f(arg0)|
or
for(...)
{
a.f(arg0)|
}
--- End code ---
If the user mistakenly press the short cut to show tip, then, the "backward search" can safely be stopped at the "{" or ";" to save a lot of performance. Otherwise, the "backward search" will go to an earlier and wrong place.
Any ideas?
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version