trace log build option
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Inkscape |
New
|
Wishlist
|
Unassigned |
Bug Description
Working in mingw I am finding it almost impossible to trace the execution within Inkscape. For instance, if it is run in GDB
and an exception occurs a backtrace will typically show a few steps, but no module names, not even mangled ones. (Yes, gdb
was run with: file inkscape.exe inkscape.dbg).
Working this way in Mingw is pretty much the worst development environment I have ever had to deal with. It would be immensely helpful if there was a build option that implemented the following:
1. TRACELOG=""
(This is the default, no trace logging. However, if it is set to something, like "C:\TEMP\
2. In every method/function:
void Objectname:
...
#ifdef TRACELOG tlog << "TRACE: Objectname:
With that I could keep one copy with trace enabled, for development, and another copy with it disabled, for testing/normal use. That would save having to recompile everything when a trace is needed, and it would skip the overhead of doing this via something like:
if(global_trace){ tlog << "TRACE: Objectname:
The way I have been dealing with this issue so far has been find a problem, search all of the source code for locations that might call the method/function, put print statements in all of them, rinse and repeat. There have been cases where I could not figure out the path to an execution point, probably because it passed through some external library. (Most recently, Layout::print in layout-
Changed in inkscape: | |
importance: | Undecided → Wishlist |
tags: | added: build win32 |
summary: |
- trace log build option (windows, Wishlist) + trace log build option |
Is this a windows/win32 specific issue?
I would consider it a more general, that is a multi-platform request to be able to log function calls ...
As a side note: when debugging some functionality I'm working on, I use temporary g_message calls to see which step is failing as an alternative to the wishlist item described here.