Commit Graph

55651 Commits

Author SHA1 Message Date
John Scipione
57c4212174 LaunchRoster docs: Add warning not to use class
...as it is not yet finalized.
2016-04-29 15:51:32 -07:00
John Scipione
b5665b7243 AbstractSocket docs: Document reuseAddr param of Bind() 2016-04-29 15:43:45 -07:00
John Scipione
65d0cbfdaf BTabView: Draw bottom tab border in DrawTabs()
...instead of DrawBox().

Also use ceilf when calculating tab height to prevent non-integral height.

Fixes #12683

More Todo:

You have to understand way too much about how this class draws if you
want to have any hope of overriding one of its Draw... methods and have
it do what you expect.

e.g. The BeBook implies that the tabs are drawn first, then the box, but, we
draw them in the opposite order. Probably better this way but not intuitive.

There are a number of remaining questions:
1. Why don't we need to draw the bottom of tabs if B_FANCY_BORDER?
2. Why do we need to expand tab border horizontally if B_PLAIN_BORDER?
3. Why is the bottom border color (152, 152, 152) instead of (151, 151, 151)?

Add a bunch of TODOs for these questions and more.

There can be some unitiutive gaps between the box border and view
depending on if you choose B_FANCY_BORDER or B_PLAIN_BORDER.
You don't notice the gaps unless the view draws right on it's edge. Some
views, including in Devices and Media Prefs do this though. Media Prefs
further complicates matters by overriding BTabView.
2016-04-29 14:31:32 -07:00
John Scipione
76b2ce77bf BTabView: Remove borderOffset, no longer useful 2016-04-29 14:31:32 -07:00
John Scipione
1eb0579044 BTabView: Don't use std, just call std::nothrow 2016-04-29 14:31:32 -07:00
John Scipione
24cb14bc3d BTabView: Style fixes
Fix misleading indentation

remove extra newline

just a newline

selTabRect => selectedTabRect
2016-04-29 14:31:31 -07:00
John Scipione
3490eda827 ControlLook: Rename border param to borderStyle
border vs. borders is confusing.

BTabView: Rename border param to borderStyle

BTabView docs: rename border param to borderStyle

enumerate border styles in docs
2016-04-29 14:31:05 -07:00
Ingo Weinhold
262ddba25c Work around gcc 2 member template issue
Fixes the gcc 2 build.
2016-04-29 23:02:39 +02:00
Ingo Weinhold
fc76f5a866 Debugger: Support for reading symbols from core file images
* New class ElfSymbolLookup. Given a data source, the address of a
  symbol table, symbol hash table, string table, and a few more details
  it provides access to the symbol information.
* CoreFile: Add CreateSymbolLookup(). Creates an ElfSymbolLookup for a
  specified image.
* CoreFileDebuggerInterface: Implement GetSymbolInfos() for regular
  images (no commpage yet) via the new functionality.
2016-04-29 22:32:15 +02:00
Ingo Weinhold
a0c364c70d Core file images note: Add text delta field 2016-04-29 22:32:15 +02:00
Ingo Weinhold
9266cd66c7 extended_image_info: Add text_delta field
Needed to offset a symbol address read from the symbol table to the
actual load address.
2016-04-29 22:32:14 +02:00
Jérôme Duval
571a4030ea net_socket: check underflow condition happening on x86_64.
* move the test for the availability of the add_anillary_data function in the
protocol out of the loop, as suggested by Axel.
* fix #12737.
2016-04-29 17:34:48 +02:00
Jérôme Duval
29fa68b21c unix: fix x86_64 build with trace. 2016-04-29 17:34:48 +02:00
Rene Gollent
c9dd7d0ddf libbnetapi: Extend socket classes.
B{Abstract,Datagram,Secure}Socket:
- Add functionality to listen for and accept new connections, thus allowing
  one to use the socket classes for server functionality as well.

BSecureSocket:
- Adjust to take into account differences between how SSL needs to be called
  when accepting an incoming connection vs initiating an outbound one.
  The handshake on the accepted connection stills fails for unknown reasons
  at the moment though.

Note that these changes break the ABI, and thus any packages making use of
them directly will need a rebuild.
2016-04-28 22:30:40 -04:00
Alexander von Gluck IV
9503c26b5d intel_gart: Add SkyLake bridge ID's to match accelerant 2016-04-28 21:10:20 -05:00
Alexander von Gluck IV
1b9ee9d382 intel_gart: Add Atom DMI bridge ID's to match accelerant 2016-04-28 20:49:37 -05:00
Alexander von Gluck IV
dee0f365e1 intel_extreme: Improve LVDS panel detection robustness
* If older generation, check for mobile. If mobile GPU
  is found, make an assumption that a LVDS panel exists
  and attempt to leverage the vbios or VESA EDID.
2016-04-28 10:45:31 -05:00
Alexander von Gluck IV
42b7678198 netresolv: Fix build issues under Ubuntu 16.04 and OS X
* Either gcc or bison version changes are throwing a
  sign-compare Werror in the generateda irs nslexer.c
* This simply targets that Werror and disabled it in irs
2016-04-28 00:16:32 -05:00
Alexander von Gluck IV
00c9b19b31 intel_extrme: Add more Atom gpu PCI id's 2016-04-27 22:44:27 -05:00
Automatic Committer
e01b4d6a3f Update pci.ids from pciids.sourceforge.net 2016-04-28 05:20:21 +02:00
John Scipione
4d52d1a8ca Add BPropertyInfo class docs 2016-04-27 11:10:34 -07:00
John Scipione
22097d7aee Style fixes to BPeropertyInfo class 2016-04-27 11:10:34 -07:00
John Scipione
4c25397c41 AppMisc: correct param name in docs, silences warning 2016-04-27 11:10:33 -07:00
John Scipione
686b774894 LaunchRoster: doment data param to quiet warning 2016-04-27 11:10:32 -07:00
John Scipione
b855c871b7 Add private app headers to Doxyfile
needed for LaunchRoster which has gone private.
2016-04-27 11:10:32 -07:00
John Scipione
9a243c1b2a Fix errors in fs_interface.dox 2016-04-27 11:10:31 -07:00
John Scipione
873cc5542e Message docs: fix errors 2016-04-27 11:10:31 -07:00
Rene Gollent
e2d845a47f Debugger: Implement remainder of #12729.
UserInterfaceListener:
- Add request hook for writing a core file. Implement in TeamDebugger.

Jobs/WriteCoreFileJob:
- Add new job to actually dispatch the core file request via the debugger
  interface.

Team{::Listener}
- Add listener event + hook for notifications when a core file gets written.
  Implement in CLI.

CliContext:
- Add event flag for core file changed.

CommandLineUserInterface:
- Add 'write-core' command. This optionally takes a path to write the core to,
  otherwise one is automatically generated by, similarly to debug reports. As
  such, one can now generate cores for things like app_server and registrar
  crashes if desired, in addition to reports.
2016-04-26 22:36:26 -04:00
Rene Gollent
5c8966c740 Debugger: Fix crash regression.
- During the TargetHostInterface refactoring, a parameter was accidentally
  omitted for the debugger options in the command line and report interfaces,
  leading to a crash during TeamDebugger init.
2016-04-26 22:34:00 -04:00
Rene Gollent
bac2e686dc Debugger: Add core file request to DebuggerInterface.
{CoreFile,Local}DebuggerInterface:
- Add virtual hook for requesting a core dump of the current team. Implement
  accordingly in LocalDebuggerInterface, and add a no-op stub in
  CoreFileDebuggerInterface.
2016-04-26 21:48:44 -04:00
Ingo Weinhold
42f9500235 Debugger: CoreFile: read symbol and string table addresses 2016-04-27 02:17:15 +02:00
Ingo Weinhold
5cde7a856d Add symbol and string table addresses to core file 2016-04-27 02:16:54 +02:00
Ingo Weinhold
8c6cb8af01 runtime loader: Register extended image info with kernel
Add structure extended_image_info which extends image_info by the
fields symbol_table, symbol_hash, string_table.
2016-04-27 02:16:09 +02:00
Ingo Weinhold
82185a52e2 Future proofing core file format
* The Haiku specific notes contain a structure size field, now.
* Change the type of the count and size fields in the Haiku specific
  notes to uint32 also for 64 bit ELF. The size field for a note is a
  uint32 anyway.
2016-04-27 00:55:23 +02:00
Rene Gollent
63a0065c83 Debugger: Implement part of #12729.
TeamsWindow:
- Add a button allowing one to specify loading a core file in addition
  to attaching to/creating teams.
- Slight layout tweak.
2016-04-26 18:28:09 -04:00
Ingo Weinhold
6d5951d612 Debugger: Handle RefsReceived(), opening core files 2016-04-26 23:48:41 +02:00
Ingo Weinhold
b7e6e93165 MIME type for core files
Icon wanted!
2016-04-26 23:48:04 +02:00
Rene Gollent
ef969bcb59 Debugger: Fix incorrect behavior when asking to activat.
GraphicalUserInterface:
- The Show() method now checks if the team window is already visible. If
  it is, we instead call Activate() to focus it. Fixes the problem that
  attempting to attach to a team which we already had a running team
  debugger for would appear to do nothing, rather than focusing that window.
2016-04-25 21:56:10 -04:00
Rene Gollent
61f0bf59fb Debugger: Fix handling of team_id clashes.
TeamDebugger:
- Add accessor to query whether the debugger's interface is a post mortem core
  rather than a live team.

TargetHostInterface:
- When asked to locate a team debugger by team_id, as is done for attach
  requests to determine if we already have an existing instance attached, skip
  over post mortems. This takes care of the potential problem of detecting a
  core instance with the same team_id as a live team, and consequently refusing
  the attach request.
- When a team debugger quits, use its actual pointer to look it up rather than its
  team ID, as we could otherwise potentially remove the wrong one in the case of a
  clash.
2016-04-25 21:49:46 -04:00
Rene Gollent
2c4195e840 Debugger: Integrate core handling into TargetHostInterface.
{Local}TargetHostInterface:
- Add virtual method for requesting a debugger interface for a core file.
  Implement accordingly in LocalTargetHostInterface based on Ingo's
  previous implementation in the Debugger app.

TeamDebuggerOptions:
- Add an enum to define the type of team debugger request being made
  to explicitly make this clear rather than guessing based on the provided
  arguments. Set accordingly in the various cases.
- Add a parameter for the core file path.

Debugger:
- Refactor to fill in TeamDebuggerOptions appropriately for core file
  requests, and consequently simplify code.

This doesn't yet deal with the fact that a post-mortem team's ID can
clash with that of a live team, which may lead to issues when attempting
to attach to a live team in such a case.
2016-04-25 16:48:37 -04:00
Jérôme Duval
0cb870a56c Use libstdc++.so in place of libsupc++.so.
* The latter doesn't link against libroot.so, which lets the library init fail.
* Fix kernel_debugger crash in malloc().
* libsupc++.so will be deleted from gcc_syslibs package (the static libs will
stay however).
2016-04-25 19:09:03 +02:00
Jérôme Duval
60ac5356ac Fix debug build of libtextencoding.so. 2016-04-25 19:08:01 +02:00
Ingo Weinhold
1a899ed474 Debugger: Beginning of core file support
* DebuggerInterface: Add method IsPostMortem() to be able to
  descriminate between live and post mortem debugging.
* Add DebuggerInterface implementation CoreFileDebuggerInterface which
  provides information from a core file.
* TeamDebugger: Don't start the debug event thread when debugging post
  mortem.
* Debugger: New command line variant "Debugger --core <file path>",
  which starts a team debugger using the core file.

There are a few issues:
* I didn't see an easy way to integrate with the new
  TargetHostInterface framework and I didn't want to get into Rene's
  way changing stuff. As a side effect core file debug windows are not
  counted and Debugger will quit when only those are left, respectively
  will additionally open a teams window on start-up.
* There aren't any symbols yet. We can't use the debug kit
  functionality, since it isn't bitness/endianess agnostic. So either
  it needs to be adjusted or ported over to Debugger.
2016-04-24 18:48:37 +02:00
Ingo Weinhold
3d26e83096 Debugger: TeamInfo: Add SetTo() version
... that doesn't expect a team_info.
2016-04-24 18:35:45 +02:00
Ingo Weinhold
86fe52b6bc Debugger: Add class CoreFile
Reads data from Haiku specific core files.
2016-04-24 18:34:51 +02:00
Ingo Weinhold
05c7cd7647 Debugger: Make ElfFile more flexible
* It was previously geared towards shared object files. Now it is
  fairly agostic and also accepts e.g. files without sections and
  different endianess.
* The handling of 32 vs. 64 bit files works a bit differently now.
  There're structs ElfClass32 and ElfClass64 now which provide the
  types for the respective bitness.
* Add a few more getters.
2016-04-24 18:34:07 +02:00
Ingo Weinhold
6dc2384f6e debug server: Offer option to write a core file
... when a team crashes/hits a debug event.
2016-04-24 18:24:50 +02:00
Ingo Weinhold
467fe4ca0c kernel: Add core dump facility
* Add function core_dump_write_core_file(). It writes a core file for
  the current thread's team. The file format is similar to that of
  other OSs (i.e. ELF with PT_LOAD segments and a PT_NOTE segment), but
  most of the notes are Haiku specific (infos for team, areas, images,
  threads). More data will probably need to be added.
* Add team flag TEAM_FLAG_DUMP_CORE, thread flag
  THREAD_FLAGS_TRAP_FOR_CORE_DUMP, and Team property coreDumpCondition,
  a condition variable available while a core dump is progress. A
  thread that finds its flag THREAD_FLAGS_TRAP_FOR_CORE_DUMP set before
  exiting the kernel to userland calls core_dump_trap_thread(), which
  blocks on the condition variable until the core dump has finished. We
  need the team's threads to stop so we can get their CPU state (and
  have a generally unchanging team state while writing the core file).
* Add user debugger message B_DEBUG_WRITE_CORE_FILE. It causes
  core_dump_write_core_file() to be called for the team.
* Dumping core as an immediate effect of a terminal signal has not been
  implemented yet, but that should be fairly straight forward.
2016-04-24 18:22:14 +02:00
Ingo Weinhold
ac1f1a926e kernel: +image_iterate_through_team_images()
Like image_iterate_through_images(), but iterates though the images of
the given team only.
2016-04-24 17:30:52 +02:00
Ingo Weinhold
99f00556a4 kernel: +arch_get_thread_debug_cpu_state()
Similar to arch_get_debug_cpu_state(), but the thread whose CPU state
to retrieve is specified. Works only for threads that aren't running,
and on x86-64 we can get the FPU state only when the thread was
interrupted in userland.
Not implemented for the incomplete architecture ports.
2016-04-24 17:29:28 +02:00