| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| | |
Conflicts:
debug/DebugInformation.ml
|
| | |
|
| | |
|
| | |
|
| | |
|
|/
|
|
|
| |
Since files without function definition contain no function in the
Section_text the filenum would be empty otherwise.
|
| |
|
| |
|
|\
| |
| | |
Correction of a few bugs in the pre-parser, added comments.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
was not parsed correctly:
typedef int a;
int f() {
for(int a; ;)
if(1);
a * x;
}
Additionnaly, I tried to add some comments in the pre-parser code,
especially for the different hacks used to solve various conflicts.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
in the Debuging information.
|
| | |
|
| |
| |
| |
| | |
Producer as well as target system.
|
| | |
|
|\ \
| |/
|/| |
Debug locations
|
| |
| |
| |
| | |
the code more robust and added indentation for convertCompositeDef
|
| |
| |
| |
| |
| |
| | |
In order to avoid the problem that the stamp is not correct for
implict declarations I insert all possible stamps of a function
into my mapping and assign them one debug id.
|
| |
| |
| |
| |
| |
| |
| | |
Changed the sizeof function to take into account the bytes needed
for the sleb128/uleb128 encoding of the DW_OP_* arguments and
changed the end_live_range function to only close functions where
the live range is currently open.
|
| | |
|
| |
| |
| |
| |
| |
| | |
If a user uses the #pragma use_section for functions the diab linker
requires a separate debug_info section for each entry. This commit
adds functionality to emulate this behavior.
|
| |
| |
| |
| | |
scopes before the last statement.
|
| | |
|
| |
| |
| |
| | |
purpose.
|
| |
| |
| |
| |
| |
| |
| | |
In order to remove unnecessary dependecies the implemenation type is made
and the DebugInit file initializes the fields in the record. This allows
it to move more functions behind the Debug interface without introducing
circular dependencies.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Debuging code.
The old functions to store the symbol for the Global variables and retrive this
is no longer needed since the atom is stored in DebugInformation. Also the
Debug.Abbrev module is no longer needed.
|
| | |
|
| |
| |
| |
| |
| | |
This commit adds furher support for location information for local
variables and starts with the implementation of the debug_loc section.
|
| |
| |
| |
| |
| | |
In order to avoid the usage of too many labels we replace the
debug statements during the Asmexpand phase.
|
| |
| |
| |
| | |
atom + scope id Hashtable.
|
| |
| |
| |
| |
| |
| | |
Local variables are now added with bogus lexical scopes to reflect
the actually lexical scopes. Also this commit fixes assembler problems
of the das when a user section with the name ".text" is defined.
|
| |\
| | |
| | |
| | |
| | | |
Conflicts:
cparser/Unblock.ml
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
As observed by B. Schommer, it is not enough to track scopes for every source line, as blocks can occur on a single line (think macros). Hence:
- Revert debug annotations of kind 1 to contain only line number info.
Generate them only when the line number changes.
- Use debug annotations of kind 6 to record the list of active scopes
(as BA_int integer arguments to __builtin_annot). Generate them
before every nontrivial statement, even if on the same line as others.
- Remove the generation of "variable x is declared in scope N" debug
annotations. This can be tracked separately and more efficiently.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Instead of creating separate annotations for the local variables
we call the Debug.add_lvar_scope and we construct a mapping from
function id + scope id to scope information.
|
| |\|
| | |
| | |
| | |
| | |
| | | |
Conflicts:
debug/CtoDwarf.ml
debug/DwarfPrinter.ml
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
C2C: the code that insert debug builtins with the line numbers is now
in Unblock. Handle calls to __builtin_debug.
Unblock: generate __builtin_debug(1) for line numbers, carrying
the list of active scopes as extra arguments.
Generate __builtin_debug(6) for local variable declarations,
carrying the corresponding scope number as extra argument.
Constprop: avoid duplicating debug arguments that are constants already.
PrintAsmaux: show this extra debug info as comments.
|
| | |
| | |
| | |
| | |
| | | |
Instead of reimplementing the whole scope handling in the debug information
use the existing functionality and fill the scopes explicitly in the functions.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Scopes will be handled by a stack of all open scopes. This stack
then can also be used to generate the debug directives to track the
scopes through the rest of the passes.
|
| | |
| | |
| | |
| | |
| | | |
Introduced a new dwarf generation from the information collected in
the DebugInformation and removed the old CtODwarf translation.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Added functions to add more information to the debuging interface,
like the struct layout with offsets, bitifiled layout and removed
the no longer needed mapping from stamp to atom.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The new file Debug.ml contains the interface for generating and
printing debug information. In order to generate debug information
the init function initializes the necessary functions depending
on the -g flag. If the -g is not there all functions are dummy
functions which do nothing.
|
| | |
| | |
| | |
| | |
| | | |
Added the rest of the global declarations and started adding functions
to fill in the missing information about struct and union fields etc.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
The insert_type function add types by adding their subtypes. Also currently
the structs or unions are added as empty skeletopn and later during filled
during the inserting of the declarations.
|
| | |
| | |
| | |
| | |
| | |
| | | |
In contrast to CtoDwarf this time we use the name to identify
everything. To make this work we print the full identifier with stamp
to avoid the problems with anonymous structs and unions.
|