News:

When registered with our forums, feel free to send a "here I am" post here to differ human beings from SPAM bots.

Main Menu

Why C::B over write gdb's set print element value?

Started by ollydbg, December 03, 2011, 02:50:23 AM

Previous topic - Next topic

ollydbg

I see when start gdb, it is:

set print elements -1

This cause some problems, such as when a large String is put as a function argument(maybe, the wxString was loaded from a txt file), this will show all the contents of the String in the debugger log.

So, I think we can leave it as gdb default value is 200.
See:
Print Settings - Debugging with GDB
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Jenna

You should say, that it is only for the debugger-branch, not for trunk.

What I don't understand is, what the value of -1 means, because a value of 0 means unlimited.

ollydbg

Quote from: jens on December 03, 2011, 02:30:21 PM
You should say, that it is only for the debugger-branch, not for trunk.
Oh, sorry, I use only debugger branch these days.
Quote
What I don't understand is, what the value of -1 means, because a value of 0 means unlimited.
Yes, as the gdb document said, it should be 0 (not -1).
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

oBFusCATed

(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

ollydbg

Quote from: oBFusCATed on December 04, 2011, 04:11:14 PM
ollydbg: can you give an example code?
The sample code below:
Quote
int main()
{
    char * p = new char[4000];
    p[1]=4;//set breakpoint here
    return 0;
}

You can just "print p" at the breakpoint, then gdb will show many trash.

Also, if the pointer p is passed to a function call. then when you run a "backtrace", the trash will be shown too.
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

oBFusCATed

OK, I've added a way to control the value of the printed elements.
See Debug -> Information -> Print Elements.
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

ollydbg

Quote from: oBFusCATed on January 06, 2012, 12:29:28 AM
OK, I've added a way to control the value of the printed elements.
See Debug -> Information -> Print Elements.
Thanks for implement this feature, I will test it ASAP.
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

ollydbg

The variable name:
m_printElements
should be:
m_PrintElements
right?
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

oBFusCATed

(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

ollydbg

Quote from: oBFusCATed on January 06, 2012, 08:54:35 AM
I prefer the first version.
Me too.  :)
But the C::B's coding standard (some page in the wiki) said we should use second version.
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

MortenMacFly

Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: [url="https://www.codeblocks.org/docs/main_codeblocks_en.html"]https://www.codeblocks.org/docs/main_codeblocks_en.html[/url]
C::B FAQ: [url="https://wiki.codeblocks.org/index.php?title=FAQ"]https://wiki.codeblocks.org/index.php?title=FAQ[/url]