News:

The new Release 25.03 is out! You can download binaries for Windows and many major Linux distros here .

Main Menu

redirect output of post-build step

Started by tom0769, September 16, 2010, 08:53:08 AM

Previous topic - Next topic

tom0769

I am using CodeBlocks with mingw installed on a Win XP system.

I want to output all symbols of a debug exe to a file to parse it for later use.
I found that the binutil "nm.exe" does the job pefectly for me.
With the following command executed in the command shell, I can output the symbol table to a file:

"nm.exe .\bin\Debug\LT_Simulation.exe > symbols.txt"

Now I want to do this as a post-build step (Project - Build options - Pre/post build steps).
The nm-command works, but the output always goes to the build log window.

How can I redirect this to a file?

oBFusCATed

You can make a bat file and execute it as post build step.
There is a possibility to write a shell script, but it is harder to setup (I think)
(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!]

MortenMacFly

Quote from: tom0769 on September 16, 2010, 08:53:08 AM
How can I redirect this to a file?
Use the tools menu. Setup a tool (like a script or batch file) that does the re-direction. Use macros in the tool so that it is generic enough to work with any of your applications.

Quote from: tom0769 on September 16, 2010, 08:53:08 AM
"nm.exe .\bin\Debug\LT_Simulation.exe > symbols.txt"
Are you aware that there is a symbol table plugin - the frontend to nm???
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]

oBFusCATed

Morten: can you execute a tool in a post build step?
(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!]

MortenMacFly

Quote from: oBFusCATed on September 16, 2010, 10:12:18 AM
Morten: can you execute a tool in a post build step?
No, but I can press the entry in the tools menu after the compilation. :-)

It might be possible to do the thing I've described using scripting in the post-build step though...

However, adding the ability to launch a tool (with a specific ID) from within the pre- post-build steps might be worth a thought though...
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]

tom0769

#5
Hi all, thanks for replies!

Is there a macro for the location of the toolchain executables, so that it can be used to setup a tool?

I need to avoid absolute path names for both, project files and toolchain,
since this should be used by different people working with in different enviroments.

BTW
How can I get the symbol table plugin?
I found it listed at "http://wiki.codeblocks.org/index.php?title=Code::Blocks_Plugins" but page does not exist.

ollydbg

Quote from: tom0769 on September 16, 2010, 11:26:20 AM
Is there a macro for the location of the toolchain executables, so that it can be used to setup a tool?
I guess you can get the toolchain path from the compiler plugin, but I'm not sure which function can get this. ( I have briefly read the public function of compiler plugin plugins\compilergcc\compilergcc.h, but does not find the answer..)
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.

tom0769

Quote from: MortenMacFly on September 16, 2010, 09:49:50 AM
Use the tools menu. Setup a tool (like a script or batch file) that does the re-direction. Use macros in the tool so that it is generic enough to work with any of your applications.
I setup a tool calling nm.exe using macros, but I still cannot write the output to a file.
The output goes either to a console or to stdout (Code::Blocks log window) depending on the launch option.

tom0769

In the configuration file "default.conf" there is an entry for each compiler:
<gcc>
    ...
    <MASTER_PATH>
        <str>
            <![CDATA[C:\Programme\CodeBlocks\MinGW]]>
        </str>
    </MASTER_PATH>
    ...
</gcc>   

Is it possible to get this information via a macro?

MortenMacFly

Quote from: tom0769 on September 16, 2010, 11:26:20 AM
How can I get the symbol table plugin?
If you use the installer, just enable it.
If you compile from sources, do the same.
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]