History log of /haiku/src/kits/debugger/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
022f01ea 12-Jun-2020 Murai Takashi <tmurai01@gmail.com>

Debugger Kit: Fix PVS V773

Fix ThreadHandler::_HandleBreakpointConditionIfNeeded() was exited
without releasing 'listener' pointer.

Change-Id: I79b72701b5bcf9a8faeacc6d37eb39ce4bd5cc68
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2910
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

4986a9a3 24-May-2020 Michael Lotz <mmlr@mlotz.ch>

Revert "kernel: Remove the B_KERNEL_AREA protection flag."

This reverts parts of hrev52546 that removed the B_KERNEL_AREA
protection flag and replaced it with an address space comparison.

Checking for areas in the kernel address space inside a user address
space does not work, as areas can only ever belong to one address space.
This rendered these checks ineffective and allowed to unmap, delete or
resize kernel managed areas from their respective userland teams.

That protection was meant to be applied to the team user data area which
was introduced to reduce the kernel to userland overhead by directly
sharing some data between the two. It was intended to be set up in such
a manner that this is safe on the kernel side and the B_KERNEL_AREA flag
was introduced specifically for this purpose.

Incidentally the actual application of the B_KERNEL_AREA flag on the
team user data area was apparently forgotten in the original commit.

The absence of that protection allowed applications to induce KDLs by
modifying the user area and generating a signal for example.

This change restores the B_KERNEL_AREA flag and also applies it to the
team user data area.

Change-Id: I993bb1cf7c6ae10085100db7df7cc23fe66f4edd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2836
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

81521280 21-Mar-2020 X512 <danger_mail@list.ru>

Fix clang warning "mismatched-tags"

Change-Id: I00f26e27d8ac24a46b528ea7ed47b92c2967ff2e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2390
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

992ae400 18-Jan-2020 Murai Takashi <tmurai01@gmail.com>

Fix catching by value

Pointed out by LGTM.
Change-Id: I223655c728305f6f45b3738553da5b7d7a69e8c8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2134
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

14c3e387 27-Sep-2019 Kacper Kasper <kacperkasper@gmail.com>

Discard column info in Debugger

* With them Debugger doesn't allow setting breakpoints inside functions.
* Workaround for #15159. Further explanation by anevilyak is also there.

Change-Id: I661b7dcb28a4c02f671b85cb5c26fa0bd5a53078
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1892
Reviewed-by: Rene Gollent <rene@gollent.com>

49506076 19-Jul-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Add a features.h to auto enable _DEFAULT_SOURCE

Unless __STRICT_ANSI__ is defined (as it is when running the compiler in
--std=c89 or --std=c99, but not when running it without any specific
args), we can enable these by default and behave like most other
systems. I don't know why no one has done this yet despite suggesting it
multiple times and people prefer to #define _BSD_SOURCE manually
everywhere.

Remove all places in our Jamfiles and sources where it had been defined.
_DEFAULT_SOURCE is now enabled by default for all sources of Haiku, since we
let the compiler use GNU extensions (no strict C standard specified on
command line)

Use _DEFAULT_SOURCE as the define name to match current versions of
glibc. Enable it if _BSD_SOURCE is #defined in compiler flags, for
backward compatibility.

Change-Id: I6db04da5f6db437723cdfba3478f5094a69d7727
Reviewed-on: https://review.haiku-os.org/c/1633
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>

57e40b44 17-Jun-2019 Augustin Cavalier <waddlesplash@gmail.com>

Debugger: Use the BVariant default constructor in Token().

The value-based constructor does the same. Fixes an "ambiguous
call" error on ARM builds.

7a73df5e 24-May-2019 Augustin Cavalier <waddlesplash@gmail.com>

Debugger: Remove needless explicit copy constructors.

These worked in identical fashion to what the default copy
constructors would be, but their mere presence marks the class
as being "non-trivially copyable," which means that memcpy'ing
it is now a -Werror on GCC 8.

We have to be careful when making this change, though: classes
which *are* trivially copyable can be passed inside registers
on x86_64, so changes like these break ABI in a dangerous way.
These classes is private, so it should not be a problem, but
for other classes (e.g. BRect, BPoint) we cannot fix them
properly right now.

95587710 03-Apr-2019 Augustin Cavalier <waddlesplash@gmail.com>

Debugger: Call the GCC2 get_next_argument directly.

This codepath is only hit when we are using the GCC2 demangler,
so we should not use get_next_argument which tries to autodetect
what kind of symbol this is.

5ffbe7d7 30-Mar-2019 Augustin Cavalier <waddlesplash@gmail.com>

Change all references to "__INTEL__" to "__i386__".

They are functionally identical, but the former is a BeOS/Haiku-specfic
macro that we include in the compiler specs, and the latter is defined
by GCC.

9cc0f06a 17-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

kernel: Remove the B_KERNEL_AREA protection flag.

It is now no longer used.

fc48ae3f 20-Aug-2018 Rene Gollent <rene@gollent.com>

Debugger: Fix #14375, #12343.

TeamDebugger:
- When a job is aborted, instead of calling into the user interface directly
to reset the status message, post a message to do so. Also, only post the
message if we aren't already in a terminating state. Otherwise, if jobs
were still running while the team debugger is executing its destructor, it
would attempt to make calls to the already destroyed user interface. This
bug has likely been with us for quite some time, but was hidden by incorrect
ref counting in the past (see #12343).

57893202 07-Aug-2018 Rene Gollent <rene@gollent.com>

Debugger: Fix #14321.

DIESubprogram:
- Adjust to inherit from DIENamespace, as gcc can and will use it as a
container in some circumstances.

DIEClassBaseType:
- Add accessor for member functions.

DwarfImageDebugInfo:
- Adjust recursive walking for types to take into account any DIENamespace,
not just DW_TAG_namespace specifically.
- Factor out adding function to list into a helper.
- When retrieving the list of functions, perform a similar recursive walk as is
done when building the types table, as some subprograms are apparently not
always added to the root compilation unit entry. Curiously, this behavior
seems to be relatively specific to a struct/class type declared inside a
function in GCC's case, but based on the DWARF spec, there does not appear to
be any specific restriction as far as where these can be nested, so be a bit
more paranoid to ensure we don't encounter similar cases in the future.

004094b5 01-Aug-2018 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Bug found by unused-but-set-variable, entry should be updated

Verfied by DeadYak

4215eb60 21-Jun-2018 Augustin Cavalier <waddlesplash@gmail.com>

Debugger: Fix some broken comparisons.

* Missing parentheses in integer comparison inversion
* !=, not ! at the beginning of expression

Spotted by Clang.

9216fc01 18-Jun-2018 Augustin Cavalier <waddlesplash@gmail.com>

More class/struct mixup fixes.

Spotted by Clang.

211cb77a 14-Jun-2018 Rene Gollent <rene@gollent.com>

Debugger: don't auto-download packages non-interactively.

- When in non-interactive mode, i.e. saving a crash report, don't
allow the image debug info loader to automatically grab missing but
available info packages. Otherwise we potentially download very large
packages with the user being entirely unaware, i.e. the 200MB debug
information package now present by default for gcc7's libgcc. This
should eventually be made a configurable preference though.

b08627f3 04-May-2018 Murai Takashi <tmurai01@gmail.com>

Fix catching polymorphic type by value

Replace catching polymorphic type std::bad_alloc 'by value'
with 'by reference'.
Pointed by gcc8

364cbeb2 17-Mar-2018 Rene Gollent <rene@gollent.com>

Debugger: Adjust type handling with namespaces.

DwarfImageDebugInfo:
- In some, but not all cases, gcc5 generates type information where the DIEType
is a child of a namespace rather than of its containing compilation unit.
This needs to be taken into account when building our name lookup table, as
we'll otherwise not find the full definition of such types when attempting to
locate them for corresponding variables. Fixes an issue reported by Axel.

77007502 18-Jan-2018 Rene Gollent <rene@gollent.com>

Debugger: Rework type handlers to allow for custom selection.

TypeHandler:
- Add name field for presentation purposes. Adapt subclasses accordingly.

TypeHandlerRoster:
- Add methods to count and retrieve all type handlers for a given type,
and adjust CreateValueNode to allow for passing in an explicit handler.
Adjust callers accordingly.

VariablesViewState:
- Add helpers to store an explicitly chosen type handler for a node.

TypeHandlerMenuItem:
- ActionMenuItem subclass that takes care of reference management
for its contained type handler.

VariablesView:
- Add context menu for choosing type handlers if applicable. Implement
support for invoking said type handlers in a similar manner to explicit
typecasts.
- Adjust saving/restoring the view state so that hidden nodes are taken
into account as well. This is necessary since it may be the case that
the handler had to be applied to the hidden child rather than the visible
node (i.e. the BMessage handler when applied to a pointer to a BMessage).

All together, these changes allow choosing to switch between views of a type
when the Debugger has multiple handlers for it. For example, for BMessages
this allows switching between displaying the raw underlying structure vs
the decoded message content.

ac9e464b 12-Jan-2018 Rene Gollent <rene@gollent.com>

Debugger: Fix various issues in the DWARF subsystem.

AttributeClasses:
- Fix typo in get_attribute_name_classes which resulted in us not
handling DW_AT_linkage_name properly.
- Fix incorrect class specification for DW_AT_default_value due
to inconsistencies in the DWARF documentation (the table of attribute
classes indicates it is only a reference, but the detailed description
indicates it also being possible to be a flag or constant, both of
which gcc outputs).

DebugInfoEntries:
- Add accessor for DIEClassBaseType's inner types.

DwarfImageDebugInfo:
- When looking up types, create a basic target interface to pass on
to the type context. Otherwise, type lookups that required DWARF
expression evaluation would crash.
- When building the type name table, we now recursively walk a class's
inner types, and add them to the list as well. This omission would
cause the debugger to lack the type description for such classes,
and consequently be unable to display their details in the variables
view.

c0936b5a 11-Jan-2018 Rene Gollent <rene@gollent.com>

Debugger: Another set of #13800 fixes.

AbstractTable/Table/TreeTable:
- Let BColumnListView take care of deleting columns. The previous
approach was resulting in the columns being leaked.

Debugger:
- Don't detach the UI reference, as TeamDebugger will acquire its own.

GraphicalUserInterface:
- Cleanup of file panel handler.

SourceView:
- Clean up marker manager.

*Roster:
- Clean up registered objects in destructors.

GlobalTypeLookup:
- Clean up hash tables.

NetworkTargetHostInterfaceInfo:
- Fix reference handling for settings.

ffe684b9 11-Jan-2018 Rene Gollent <rene@gollent.com>

Debugger: Fix type issue in BList handler.

BListValueNode:
- BList's item count member is an int32. However, when the handler was reading
said variable, it was mistakenly reading the number of bytes corresponding to
to the address size of the architecture instead.This would cause the read to
fail, and consequently BList and/or BObjectList variables to not display
their contents properly on x86-64.

3995592c 10-Jan-2018 Rene Gollent <rene@gollent.com>

Debugger: Fix #13939, more work on #13800.

- Fix various cases where OpenHashTables weren't being cleared properly.
- Fix various reference counting errors.
- Simplify FileManager reference handling.
- Fix bug in LocatableDirectory where the directory named '/' would have its
name returned as empty. This would lead to failed lookups for entries already
in the table, and ultimately corrupted the hash table when deleting unused
entries, leading to #13939. This was previously never noticed due to the
entries not being freed properly.
- AbbreviationTable wasn't clearing its entries.

b1ab02c4 31-Dec-2017 Rene Gollent <rene@gollent.com>

Debugger: More memory management fixes.

DwarfImageDebugInfo:
- Type name/info entries weren't being freed properly.

BaseUnit:
- The array of entries itself was being destroyed, but not the actual
objects. Consequently none of the DIE objects were ever being freed.

CfaRuleSet:
- The register rules array wasn't being freed.

FileManager:
- References to entries weren't being released. Some more work remains to be
done here though, as a subset of these objects still have a non-zero ref
count in the end.

3d9b5693 28-Dec-2017 Rene Gollent <rene@gollent.com>

Debugger: Further work on memory leak hunting.

TeamWindow:
- Properly delete stack frame selection entries in destructor.

TeamDebugger:
- The reference to TeamDebugInfo wasn't correctly initialized to own,
leading to TeamDebugInfo never being destroyed.

FunctionInstance:
- Also clear source code reference in destructor.

ImageDebugInfo:
- Release references to specific infos in destructor. These are acquired
on our behalf when loading the image info, but were never released,
leading to the latter never being freed.

DwarfManager:
- Release references to files in destructor.

FileManager:
- Release entries in various destructors.

Somewhat improves the situation in #13800, but is still far from complete,
as a thorough review of this nature hasn't ever really been done.

8bb774fc 27-Dec-2017 Rene Gollent <rene@gollent.com>

Debugger: Fix a memory leak.

TeamDebugger:
- In several cases, BReferences on thread handlers after a call to
_GetThreadHandler() weren't correctly initialized to account for
that function implicitly acquiring a reference on our behalf, leading
to the reference count to spiral out of control, and consequently the
handler would never be freed. Found while attempting to address
#13800, likely more to come.

737de463 02-Dec-2017 Rene Gollent <rene@gollent.com>

Debugger: Fix #13797.

- When reading the areas note, there was no check in place to ensure that a
matching segment for the address was actually found. This would later lead
to a crash when attempting to read memory from the corresponding (missing)
piece of memory in the core.

d692d22c 23-Nov-2017 Augustin Cavalier <waddlesplash@gmail.com>

debugger/elf: Don't leak memory in failure case.

CID 1423098.

7c7390c7 20-Nov-2017 François Revol <revol@free.fr>

work around "cast specifies signature type" from gcc2

...when build by gcc6 or 7 on my Debian Sid.

f9065b53 21-May-2017 Rene Gollent <rene@gollent.com>

libdebugger: Minor fixes to NetworkTargetHostInterface classes.

NetworkTargetHostInterface:
- Fix missing initializer. This would lead to a crash in the destructor.

NetworkTargetHostInterfaceInfo:
- Implement IsConfigured() to validate passed in settings.

68893948 19-May-2017 Rene Gollent <rene@gollent.com>

libdebugger: Fix missing init in TargetHostInterfaceRoster.

- When adding the TargetHostInterfaceInfos to the roster, Init() was not
called on the individual instances, leading to them potentially being
incomplete.

c5dcedec 11-Dec-2016 Rene Gollent <rene@gollent.com>

Debugger: Fix oversight.

DebugReportGenerator:
- In the case where the function was already disassembled beforehand,
we weren't retrieving the statement, leading to a null pointer
dereference.

7bdeef54 09-Dec-2016 Rene Gollent <rene@gollent.com>

Debugger: Rework parts of report generation.

Team:
- Adjust report generation event to include a final status code for listeners.

CliContext,TeamWindow,ReportUserinterface:
- Use aforementioned status code to indicate whether report generation
succeeded or failed.

DebugReportGenerator:
- Notify listeners if report generation fails. This may have previously
been responsible for some bug reports where it was indicated that the
debugger hung without exiting after being asked to save a report from
a crashed app.
- When dumping disassembly, retrieve it directly if necessary rather than
requesting it via the user interface listener. This also fixes the quirk
that requesting to save a crash report while looking at the source code
of a function would trigger switching it to disassembly visually.
- When walking the list of threads to dump, acquire references to all of
them before starting. Otherwise, it was potentially possible for a running
but not crashed thread to exit while we were generating the report, leaving
us with a pointer to a deleted thread. This was most likely the cause of one
of the crashes reported in #13082.
- When receiving the notification that source code state has changed, clear
the waiting function. Otherwise, it was potentially possible for us to get
other state change notifications, leading to the data semaphore being
released too often. This would then cause later potential waits such as
the stack frame memory dump to not actually wait when they should,
potentially leading them to dereference objects that weren't yet ready.
This fixes another of the crashes in #13802.

67e03014 07-Dec-2016 Rene Gollent <rene@gollent.com>

Debugger: Adjustments to report generator.

DebugReportGenerator:
- Due to the changes made with respect to correctly handling switching to
disassembly explicitly, the report generator needs to request loading
source files as it walks the stack trace in order to get source-based
line number information. Fixes crash reports having -1 as the line number
in cases where debug information was available, but the user hadn't yet
looked at the source file in question.

LoadSourceCodeJob:
- Cleanup.

7cfc043e 07-Dec-2016 Rene Gollent <rene@gollent.com>

libdebugger: Fix a regression with ELF loading in some cases.

ElfFile:
- The refactoring in commit 2c50fbb8e16102886d0cd28135dae0b58b9d33f4
inadvertently introduced a failure case if a section in the ELF file
is skipped, since it was explicitly passing in the insertion index
to BObjectList::AddItem(). Since in the skipped case, this would be
out of bounds for the list's current size, this would cause the whole
operation to fail with an out of memory error, and consequently halt
all further loading of debug information for that particular file.
This manifested itself with libroot on at least gcc5, where no symbols
could be seen.

692fe555 27-Nov-2016 Rene Gollent <rene@gollent.com>

libdebugger: Add initial version of network interface.

NetworkTargetHostInterface{Info}:
- Barebones classes for implementing a target host interface over TCP.

25ec63db 25-Nov-2016 Rene Gollent <rene@gollent.com>

libdebugger: Add string setting type.

- Needed in order to properly implement a settings description for
a remote interface.

9e4d0fd4 31-Jul-2016 Rene Gollent <rene@gollent.com>

libdebugger: Implement remaining remote request/response pairs.

bcca096a 31-Jul-2016 Rene Gollent <rene@gollent.com>

libdebugger: Fix header order in RemoteDebugRequest.

a9d53d9e 22-Nov-2016 Rene Gollent <rene@gollent.com>

Debugger: Fix regression introduced in hrev50534.

FunctionInstance:
- Add new state FUNCTION_SOURCE_SUPPRESSED. This signals that the user
explicitly forced disassembly to be loaded despite source code being
available.

LoadSourceCodeJob:
- When forced to disassembly, use the above suppressed state accordingly.

SourceView/TeamWindow/TeamDebugger:
- Adjust to take new state into account as needed.

TeamDebugInfo::GetActiveSourceCode:
- When looking at a function to decide whether to return line information
based on source or disassembly, first examine the source code state. If
the source has never been loaded for that function, but we have it available,
set it on the function at that point. This lazily addresses the fact that
LoadSourceCodeJob is called on behalf of a specific function, and
consequently only sets the source code onto that function, and not all others
present in the same file. This allows us to differentiate between the case
where a function doesn't have source code available at all, versus a function
that has simply been forced to disassembly view at this point in time.

The primary symptom of the above issue was that attempting to set a breakpoint
outside of the currently active function, but within the same file would result
in the breakpoints view indicating that the breakpoint was at line 0 rather
than the appropriate line, and breakpoints would also not be drawn in the
source view for such locations.

Thanks to Humdinger for the heads up!

6c2abee2 29-Oct-2016 Jérôme Duval <jerome.duval@gmail.com>

Debugger: use localhost if gethostname() fails.

b65adbdf 09-Sep-2016 Rene Gollent <rene@gollent.com>

Debugger: Fix #12940.

- Add new interface TeamFunctionSourceInformation. Currently this
exposes a single function allowing one to query for the currently
active source code given a FunctionDebugInfo instance.
- Implement TeamFunctionSourceInformation on TeamDebugInfo.
- Pass TeamFunctionSourceInformation to Dwarf{Team,Image}DebugInfo.
In turn, make use of it in DwarfImageDebugInfo::GetStatement() in
order to determine whether to return the corresponding assembly
or source statement.

With this piece of information, the debugger is now correctly able to
determine that the user is currently looking at disassembly despite debug
info being available, and consequently adjust its stepping behavior based on
that. Previously, the source code statement was always used, leading to it
not being possible to single step assembly lines in such a circumstance
without manually using run to cursor.

Other related cleanups:
- TeamDebugInfo now inherits BReferenceable directly, rather than relying on
indirectly inheriting it from TeamTypeInformation.
- Remove BReferenceable from TeamTypeInformation. The latter is only an
interface anyways, and inheriting that base class from multiple locations
was causing GCC5 trouble when resolving BReference<TeamDebugInfo>, even
when virtual inheritance was used.

584fd961 06-Sep-2016 Rene Gollent <rene@gollent.com>

libdebugger: Fix #12944.

LocatableFile:
- If there is no parent path, don't insert a path separator between parent
and filename. This may be the case depending on how the source file was
specified during compilation.

FileManager:
- When constructing an EntryPath from a LocatableEntry, ensure that the
parent folder actually has a path string that isn't simply empty to ensure
consistency with the raw dir/file case. Otherwise, hash lookups that are
dependent on the parent dir being NULL if not specified will fail, causing
us to not locate the file successfully. This was preventing us from updating
source location information for make 4.2's main.c, as the latter was
specified in such a way that the above combination of conditions would
occur, and consequently when asking the FileManager to update the source
location with the actual file, the entry couldn't be found in the table,
and no information would be updated.

8471ec3d 13-Aug-2016 Rene Gollent <rene@gollent.com>

libdebugger: Fix #12913.

ThreadHandler:
- When single stepping, verify that current instruction pointer is
actually within a valid image. Otherwise we'll crash attempting to
retrieve debug information for it.

b7012e6c 13-Aug-2016 Rene Gollent <rene@gollent.com>

libdebugger: Fix #12914.

DwarfImageDebugInfo:
- While computing return value locations, we need to re-evaluate
the availability of debug information as we're forced to traverse
around images to resolve the location of a function call. Otherwise,
we may crash as one of the called functions may belong to an image
that wasn't compiled with debug info.

8efb6db7 06-Aug-2016 Adrien Destugues <pulkomandy@gmail.com>

elf.h: rename ELF_MAGIC to ELFMAG

- This is how it is named in other versions of elf.h (Linux, glibc, possibly more)
- ELF_MAGIC is used by libelf for the same thing, and the defines conflicts,
breaking libelf build on Haiku.

17954f2e 22-Jul-2016 Rene Gollent <rene@gollent.com>

libdebugger: Initial work for remote support.

- Introduce base classes RemoteDebug{Request,Response} and the first set of
implementing subclasses for the various types of debug requests. These
encapsulate the information needed to make a request to the target debugger
interface, as well as a means to flatten/unflatten to a BMessage. These will
be used to marshal the relevant information for transmission across the
eventual transport interface. Not used anywhere yet since there still remain
some requests and responses to implement, among other things.

9c9c24ce 31-Jul-2016 Rene Gollent <rene@gollent.com>

libdebugger: Add accessor for cpu state size.

Architecture:
- Store and provide accessor for the size in bytes of the low-level
debug_cpu_state size of the respective target CPU. Adjust subclasses
to pass in the appropriate size information.

b02ee147 04-Jul-2016 Rene Gollent <rene@gollent.com>

libdebugger: Reorganize debugger_interface subdir.

- Split into separate subdirectories for each interface type, as is done in
the target_host_interface subdir. Preparation for the remote interfaces,
which will have quite a few more components than the existing local ones.

05fc1277 03-Jul-2016 Rene Gollent <rene@gollent.com>

Debugger: Fix team restart request.

UserInterface:
- Add Clone() function to set of required virtuals. This asks the subclass
to create a new instance of its respective type.

{CommandLine,Graphical,Report}UserInterface:
- Implement the above function.

TeamDebugger:
- Add accessor for the currently active UI.

TargetHostInterface:
- Set correct request type when setting up the options for a team restart.
- Ask the TeamDebugger for its user interface and clone it in order to fill
in that aspect of the debug options. This fixes a regression introduced in
commit 880a64, which inadvertently resulted in team restarts no longer
working.

0b20cac7 05-Jun-2016 Rene Gollent <rene@gollent.com>

libdebugger: Remove unnecessary header dependency.

- The library does not depend on libedit/ncurses, these were contained
entirely within the application level code.

9968f343 05-Jun-2016 Rene Gollent <rene@gollent.com>

Debugger: Adjust header order.

- Ensure that the debugger lib's headers are included before those of libshared
to minimize conflicts between the respective Thread classes. Fixes gcc2 build.

Thanks to Jerome for reporting.

fce4895d 29-May-2016 Rene Gollent <rene@gollent.com>

Debugger: Split into core library and application.

- Add subfolder src/kits/debugger which contains the debugger's core
functionality and lower layers. Correspondingly add headers/private/debugger
for shared headers to be used by clients such as the Debugger application
and eventual remote_debug_server. Adjust various files to account for
differences as a result of the split and moves.
- Add libdebugger.so to minimal Jamfile.


DebuggerGlobals.cpp
Jamfile
arch/Architecture.cpp
arch/CpuState.cpp
arch/InstructionInfo.cpp
arch/InstructionInfo.h
arch/Register.cpp
arch/RegisterMap.cpp
arch/RegisterMap.h
arch/x86/ArchitectureX86.cpp
arch/x86/ArchitectureX86.h
arch/x86/CpuStateX86.cpp
arch/x86/CpuStateX86.h
arch/x86/disasm/DisassemblerX86.cpp
arch/x86/disasm/DisassemblerX86.h
arch/x86/disasm/Jamfile
arch/x86_64/ArchitectureX8664.cpp
arch/x86_64/ArchitectureX8664.h
arch/x86_64/CpuStateX8664.cpp
arch/x86_64/CpuStateX8664.h
arch/x86_64/disasm/DisassemblerX8664.cpp
arch/x86_64/disasm/DisassemblerX8664.h
arch/x86_64/disasm/Jamfile
controllers/DebugReportGenerator.cpp
controllers/DebugReportGenerator.h
controllers/TeamDebugger.cpp
controllers/ThreadHandler.cpp
debug_info/BasicFunctionDebugInfo.cpp
debug_info/BasicFunctionDebugInfo.h
debug_info/DebuggerImageDebugInfo.cpp
debug_info/DebuggerImageDebugInfo.h
debug_info/DebuggerTeamDebugInfo.cpp
debug_info/DebuggerTeamDebugInfo.h
debug_info/DwarfFunctionDebugInfo.cpp
debug_info/DwarfFunctionDebugInfo.h
debug_info/DwarfImageDebugInfo.cpp
debug_info/DwarfImageDebugInfo.h
debug_info/DwarfImageDebugInfoLoadingState.cpp
debug_info/DwarfImageDebugInfoLoadingState.h
debug_info/DwarfStackFrameDebugInfo.cpp
debug_info/DwarfStackFrameDebugInfo.h
debug_info/DwarfTeamDebugInfo.cpp
debug_info/DwarfTeamDebugInfo.h
debug_info/DwarfTypeFactory.cpp
debug_info/DwarfTypeFactory.h
debug_info/DwarfTypes.cpp
debug_info/DwarfTypes.h
debug_info/Function.cpp
debug_info/FunctionDebugInfo.cpp
debug_info/FunctionInstance.cpp
debug_info/GlobalTypeLookup.cpp
debug_info/ImageDebugInfo.cpp
debug_info/ImageDebugInfoLoadingState.cpp
debug_info/ImageDebugInfoLoadingState.h
debug_info/ImageDebugInfoProvider.cpp
debug_info/ImageDebugLoadingStateHandler.cpp
debug_info/ImageDebugLoadingStateHandler.h
debug_info/ImageDebugLoadingStateHandlerRoster.cpp
debug_info/ImageDebugLoadingStateHandlerRoster.h
debug_info/NoOpStackFrameDebugInfo.cpp
debug_info/NoOpStackFrameDebugInfo.h
debug_info/SpecificImageDebugInfo.cpp
debug_info/SpecificImageDebugInfoLoadingState.cpp
debug_info/SpecificImageDebugInfoLoadingState.h
debug_info/SpecificTeamDebugInfo.cpp
debug_info/StackFrameDebugInfo.cpp
debug_info/TeamDebugInfo.cpp
debug_info/loading_state_handlers/DwarfLoadingStateHandler.cpp
debug_info/loading_state_handlers/DwarfLoadingStateHandler.h
debug_managers/BreakpointManager.cpp
debug_managers/BreakpointManager.h
debug_managers/TeamMemoryBlockManager.cpp
debug_managers/TeamMemoryBlockManager.h
debug_managers/ValueNodeManager.cpp
debug_managers/WatchpointManager.cpp
debug_managers/WatchpointManager.h
debugger_interface/DebugEvent.cpp
debugger_interface/DebugEvent.h
debugger_interface/DebuggerInterface.cpp
debugger_interface/DebuggerInterface.h
debugger_interface/interfaces/CoreFileDebuggerInterface.cpp
debugger_interface/interfaces/CoreFileDebuggerInterface.h
debugger_interface/interfaces/LocalDebuggerInterface.cpp
debugger_interface/interfaces/LocalDebuggerInterface.h
demangler/Demangler.cpp
demangler/Demangler.h
demangler/Jamfile
dwarf/AbbreviationTable.cpp
dwarf/AbbreviationTable.h
dwarf/AttributeClasses.cpp
dwarf/AttributeClasses.h
dwarf/AttributeValue.cpp
dwarf/AttributeValue.h
dwarf/BaseUnit.cpp
dwarf/BaseUnit.h
dwarf/CfaContext.cpp
dwarf/CfaContext.h
dwarf/CfaRule.h
dwarf/CfaRuleSet.cpp
dwarf/CfaRuleSet.h
dwarf/CompilationUnit.cpp
dwarf/CompilationUnit.h
dwarf/DataReader.h
dwarf/DebugInfoEntries.cpp
dwarf/DebugInfoEntries.h
dwarf/DebugInfoEntry.cpp
dwarf/DebugInfoEntry.h
dwarf/Dwarf.h
dwarf/DwarfExpressionEvaluator.cpp
dwarf/DwarfExpressionEvaluator.h
dwarf/DwarfFile.cpp
dwarf/DwarfFile.h
dwarf/DwarfFileLoadingState.cpp
dwarf/DwarfFileLoadingState.h
dwarf/DwarfManager.cpp
dwarf/DwarfManager.h
dwarf/DwarfTargetInterface.cpp
dwarf/DwarfTargetInterface.h
dwarf/DwarfUtils.cpp
dwarf/DwarfUtils.h
dwarf/Jamfile
dwarf/LineNumberProgram.cpp
dwarf/LineNumberProgram.h
dwarf/SourceLanguageInfo.cpp
dwarf/SourceLanguageInfo.h
dwarf/TagNames.cpp
dwarf/TagNames.h
dwarf/TypeUnit.cpp
dwarf/TypeUnit.h
elf/CoreFile.cpp
elf/CoreFile.h
elf/ElfFile.cpp
elf/ElfSymbolLookup.cpp
elf/ElfSymbolLookup.h
files/FileManager.cpp
files/FileManager.h
files/LocatableDirectory.cpp
files/LocatableEntry.cpp
files/LocatableFile.cpp
files/SourceFile.cpp
ids/FunctionID.cpp
ids/FunctionParameterID.cpp
ids/LocalVariableID.cpp
ids/ObjectID.cpp
ids/ReturnValueID.cpp
jobs/ExpressionEvaluationJob.cpp
jobs/GetCPUStateJob.cpp
jobs/GetStackTraceJob.cpp
jobs/GetThreadStateJob.cpp
jobs/Jobs.h
jobs/LoadImageDebugInfoJob.cpp
jobs/LoadSourceCodeJob.cpp
jobs/ResolveValueNodeJob.cpp
jobs/RetrieveMemoryBlockJob.cpp
jobs/WriteCoreFileJob.cpp
jobs/WriteMemoryJob.cpp
jobs/WriteValueNodeJob.cpp
model/AreaInfo.cpp
model/Breakpoint.cpp
model/DisassembledCode.cpp
model/ExpressionInfo.cpp
model/ExpressionValues.cpp
model/FileSourceCode.cpp
model/Image.cpp
model/ImageInfo.cpp
model/LineDataSource.cpp
model/ReturnValueInfo.cpp
model/SemaphoreInfo.cpp
model/SignalInfo.cpp
model/SourceCode.cpp
model/StackFrame.cpp
model/StackFrameValueInfos.cpp
model/StackFrameValues.cpp
model/StackTrace.cpp
model/Statement.cpp
model/SymbolInfo.cpp
model/SyntheticPrimitiveType.cpp
model/SyscallInfo.cpp
model/SystemInfo.cpp
model/TargetHost.cpp
model/Team.cpp
model/TeamInfo.cpp
model/TeamMemory.cpp
model/TeamMemoryBlock.cpp
model/TeamTypeInformation.cpp
model/Thread.cpp
model/ThreadInfo.cpp
model/Type.cpp
model/TypeComponentPath.cpp
model/TypeLookupConstraints.cpp
model/UserBreakpoint.cpp
model/Variable.cpp
model/Watchpoint.cpp
settings/BreakpointSetting.cpp
settings/BreakpointSetting.h
settings/NoOpSettingsManager.cpp
settings/NoOpSettingsManager.h
settings/SettingsManager.cpp
settings/TeamFileManagerSettings.cpp
settings/TeamFileManagerSettings.h
settings/TeamSettings.cpp
settings/TeamSignalSettings.cpp
settings/TeamSignalSettings.h
settings/TeamUiSettings.cpp
settings/TeamUiSettingsFactory.cpp
settings/generic/Setting.cpp
settings/generic/Settings.cpp
settings/generic/SettingsDescription.cpp
source_language/SourceLanguage.cpp
source_language/SyntaxHighlighter.cpp
source_language/UnsupportedLanguage.cpp
source_language/UnsupportedLanguage.h
source_language/c_family/CLanguage.cpp
source_language/c_family/CLanguage.h
source_language/c_family/CLanguageExpressionEvaluator.cpp
source_language/c_family/CLanguageExpressionEvaluator.h
source_language/c_family/CLanguageFamily.cpp
source_language/c_family/CLanguageFamilySyntaxHighlightInfo.cpp
source_language/c_family/CLanguageFamilySyntaxHighlightInfo.h
source_language/c_family/CLanguageFamilySyntaxHighlighter.cpp
source_language/c_family/CLanguageFamilySyntaxHighlighter.h
source_language/c_family/CLanguageTokenizer.cpp
source_language/c_family/CLanguageTokenizer.h
source_language/c_family/CppLanguage.cpp
source_language/x86/X86AssemblyLanguage.cpp
source_language/x86/X86AssemblyLanguage.h
target_host_interface/TargetHostInterface.cpp
target_host_interface/TargetHostInterfaceInfo.cpp
target_host_interface/TargetHostInterfaceRoster.cpp
target_host_interface/local/LocalTargetHostInterface.cpp
target_host_interface/local/LocalTargetHostInterface.h
target_host_interface/local/LocalTargetHostInterfaceInfo.cpp
target_host_interface/local/LocalTargetHostInterfaceInfo.h
types/ArrayIndexPath.cpp
types/TargetAddressRangeList.cpp
types/ValueLocation.cpp
user_interface/UserInterface.cpp
user_interface/util/UiUtils.cpp
util/ArchivingUtils.cpp
util/ArchivingUtils.h
util/BitBuffer.cpp
util/BitBuffer.h
util/IntegerFormatter.cpp
util/RangeList.cpp
util/StringUtils.cpp
util/Worker.cpp
value/TypeHandler.cpp
value/TypeHandlerRoster.cpp
value/Value.cpp
value/ValueFormatter.cpp
value/ValueLoader.cpp
value/ValueLoader.h
value/ValueNode.cpp
value/ValueNodeContainer.cpp
value/ValueWriter.cpp
value/ValueWriter.h
value/type_handlers/BListTypeHandler.cpp
value/type_handlers/BListTypeHandler.h
value/type_handlers/BMessageTypeHandler.cpp
value/type_handlers/BMessageTypeHandler.h
value/type_handlers/CStringTypeHandler.cpp
value/type_handlers/CStringTypeHandler.h
value/value_formatters/BoolValueFormatter.cpp
value/value_formatters/EnumerationValueFormatter.cpp
value/value_formatters/FloatValueFormatter.cpp
value/value_formatters/IntegerValueFormatter.cpp
value/value_formatters/StringValueFormatter.cpp
value/value_nodes/AddressValueNode.cpp
value/value_nodes/ArrayValueNode.cpp
value/value_nodes/BListValueNode.cpp
value/value_nodes/BMessageValueNode.cpp
value/value_nodes/CStringValueNode.cpp
value/value_nodes/CompoundValueNode.cpp
value/value_nodes/EnumerationValueNode.cpp
value/value_nodes/ExpressionValueNode.cpp
value/value_nodes/PointerToMemberValueNode.cpp
value/value_nodes/PrimitiveValueNode.cpp
value/value_nodes/VariableValueNodeChild.cpp
value/values/AddressValue.cpp
value/values/BoolValue.cpp
value/values/EnumerationValue.cpp
value/values/FloatValue.cpp
value/values/IntegerValue.cpp
value/values/StringValue.cpp