2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-16 01:12:13 +00:00
Commit Graph

1029 Commits

Author SHA1 Message Date
Steven Watanabe
5424ef24d4 Add tests and get break output to work in console mode. 2016-02-16 14:35:31 -07:00
Steven Watanabe
7a46ea5202 Get print+breakpoints+stepping to work with both console and mi. 2016-02-11 11:14:17 -07:00
Steven Watanabe
b263f1aae0 Work on un-mixing stdout and debugger internal comunication. 2016-01-11 12:27:23 -07:00
Steven Watanabe
0704b0f0af Create a flag for running the debugger. Also start splitting the text interface from the gdm/mi interface. 2015-12-14 13:33:55 -07:00
Steven Watanabe
c0ef46eeab Add support for clearing breakpoints. 2015-12-11 13:34:11 -07:00
Steven Watanabe
31692f06f9 Check for a child when printing the stack. 2015-12-11 13:02:37 -07:00
Steven Watanabe
7c8de02c3f Really commit the code that I intended to add in the last commit. Also add support for viewing the stack. 2015-12-10 19:48:01 -07:00
Steven Watanabe
daa67700ed Implement printing values for MI. 2015-12-10 17:16:13 -07:00
Steven Watanabe
48aca139d5 Start implementing GDB/MI. Basic commands for running work
in Emacs GDB mode.

TODO:
* Pipe command output in the child through the debugger rather
  than sending it straight to stdout.
* Redirect stdin/stdout/stderr as needed and format the output.
* Add a proper switch between console and mi.
* Finish implementing the stub functions.
* Get Emacs commands for viewing data and the stack working.
2015-03-31 13:23:54 -06:00
Steven Watanabe
d0594ad5d5 Cleanup.
* Commands are no longer capped at 8 tokens
* Mark functions as static
* Add declaration of debugger( void ) in debugger.h
* Use f ( void ) instead of f ( )
2015-03-23 17:23:58 -06:00
Steven Watanabe
e611b28a20 Normalize paths when setting breakpoints, so it isn't necessary to match the exact name used to load the file. Also allow setting a breakpoint with just a filename, i.e. gcc.jam:73. 2015-03-23 16:57:21 -06:00
Steven Watanabe
78d045e0df Make sure that finish stops when returning from a tail call. 2015-03-23 11:45:47 -06:00
Steven Watanabe
eb1e353840 Fix $(ARGV[1]) on *nix. 2015-03-23 11:37:27 -06:00
Steven Watanabe
ed8bf16ecc Improve test to decide whether a breakpoint is the name of a function or a file+line. Rule names can contain ':' when the module name includes an absolute path on Windows. e.g. Jamfile<C:\boost>.tag. 2015-03-23 11:05:20 -06:00
Steven Watanabe
3721fec260 Initial implementation of a debugger for Jam.
The interface is a subset of gdb.

TODO:
* Put this behind flag, so it's possible to run b2 without the debugger.
  Perhaps -db?
* Keep a command history and allow it to be accessed.
* Abbreviate long arguments in the backtrace, and wrap
  long lines better.
* Implement more commands.  I'm thinking of watch, condition, and ignore in
  particular.
* Test the runtime cost.  If it doesn't have any noticable penalty
  when it's off, then it's safe to integrate this functionality
  into the primary b2 executable.
* Write documentation.
* IDE integration.  I'm hoping that I can hijack gdb support for any
  editor that has built in support for gdb.
2015-03-21 17:21:36 -06:00
Steven Watanabe
1a87fc9da1 Adjust the alignment check to account for platforms with lower alignment requirements for pointers. Fixes #8993. 2015-03-13 20:13:27 -06:00
Steven Watanabe
30d35ce80d Make order stable. This restores the old behavior of printing includes in alphabetical order. When I added the topological sort for includes, it caused directories with no constraints to be printed in reverse alphabetical order under some circumstances. This broke existing users who relied on the original order. While I believe that users should not depend on any order for include directories that is not explicitly stated, I'd rather not gratuitously break such uses. This is especially true since explicitly ordered includes only worked in the simplest cases prior to my topological sort patch. 2015-02-28 14:16:34 -07:00
Oliver Kowalke
4a3a99bf30 check __aarch64__ for ARM
Macro __arm__ is not set on Aarch64 architecture
2015-02-25 12:23:40 +03:00
K. Noel Belcourt
f5b31b30aa Block signals to end of exec_cmd. 2015-01-02 16:25:18 -07:00
K. Noel Belcourt
87fa34a0c8 Fix typo in the cleanup to setpgid in parent process. 2014-12-29 08:40:51 -07:00
K. Noel Belcourt
dbb521a6ba Remove bogus setpgid diagnostic. 2014-12-28 22:01:42 -07:00
K. Noel Belcourt
b1e0b621c4 Make system call conform to posix.2 signal handling
a la Steven's APUE, pg 314.
2014-12-28 21:57:18 -07:00
Jessica Hamilton
7f0d33a7b0 haiku: platform support 2014-11-25 09:13:21 +03:00
Alain Miniussi
d21102f2a1 Detect the intel compiler in the environement.
The mentioned 'standard' path were quite old (9.0, last Intel
compiler version is 15.x as on Oct 2014). Keept the legacy
detection though.

Build in 64 bit (seems more common).
2014-11-06 09:54:22 +03:00
K. Noel Belcourt
156bc5c42e Make setpgid checks non-fatal.
Comment out the call to exit following a failed
called to setpgid.  Can re-enable in the future.
2014-10-24 18:11:34 -06:00
K. Noel Belcourt
7bcbc5ac31 Check setpgid return value in parent and child.
A user is having trouble with calls to setpgid failing
with EPERM and we're not sure whether it's the call to
the parent, or child process that is the source of the
failure.  Add check with explicit indication whether
the parent of child failed.
2014-10-24 16:40:47 -06:00
kjedruczyk
c79ea493ff Fixed null ptr dereference in executable_path on solaris when getexecname fails. 2014-10-24 11:05:42 +04:00
Jurko
f929602088 Return valid exit code from Windows batch scripts.
Technique used for setting Windows batch script exit codes in Boost.Build worked
correctly when the script is called from a Windows shell process and then checked
from inside that process. However, when run from a temporary shell process that
needs to terminate after running the script, such a process would always return
exit code 0.

This prevented anyone automating those scripts from detecting their success/
failure status by using their exit code without adding an additional batch script
layer.

For example, consider the following two script files:

  ret666.cmd:
    exit /b 666

  wrapper.cmd:
    call ret666.cmd

They both 'should return the value 666' and when run directly from a cmd.exe
console indeed both do (they set the shell process's ERRORLEVEL environment
variable to 666). However, when run like this:
  cmd /c <script-name>
running ret666.cmd causes the temporary cmd.exe process to exit with exit code
666, while running wrapper.cmd causes it to exit with exit code 0.
2014-10-24 11:03:15 +04:00
Noel Belcourt
252b5aa019 Block SIGCHLD during select.
Select was losing child termination signals so we explictly
block SIGCHLD during select, and unblock after select returns.
Tested on 256 core smp system, no hangs or zombies.  Thanks
to Alain Miniussi <alain.miniussi@oca.eu> for reporting this.
2014-10-21 00:23:53 -06:00
Jürgen Hunold
20a3fb2981 Merge pull request #5 from jivancic/more_than_64_jobs
[b2] support more than 64 parallel jobs (-j)
2014-07-02 16:55:03 +02:00
Marcel Raad
a106dd3798 Add support for MSVC 14 2014-06-11 21:14:03 +02:00
Steven Watanabe
d782ec52d0 Don't exit immediately on Windows if JAMSHELL is % and CreateProcess fails. 2014-04-03 14:13:33 -07:00
Steven Watanabe
23032af425 Parentheses are not allowed in REMs. Fixes #9800. 2014-04-03 09:13:53 -07:00
Steven Watanabe
702d40baf9 Fix build with MinGW. Fixes #9301. 2014-04-03 09:00:19 -07:00
Steven Watanabe
9732c695d1 Fix bug in pathnt.c that caused the results of GLOB to be downcased under some circumstances. 2014-03-24 15:18:37 -07:00
Steven Watanabe
9fb7faedcc Increment Boost.Build version 2014-03-07 12:24:12 -08:00
Steven Watanabe
7f8aac5d5e Add support for junctions on Windows 2014-02-06 14:54:40 -08:00
Dan Smith
28b7d5f82f Export BOOST_JAM_TOOLSET to calling script.
This change allows top-level scripts to determine which
toolchain was used by Boost.Build engine bootstrap process.
Top-level script of Boost C++ Libraries will be updated
separately.
2014-02-01 14:05:31 +04:00
K. Noel Belcourt
0ef40cb867 Need to bump MAXJOBS to 256.
Having to move to larger smp clusters so need more build
parallelism.
2014-01-29 10:22:01 -07:00
Juraj Ivančić
d2cf5aed72 Avoid creating a thread if remaining jobs can be placed in the same array as thread handles.
If we have to wait for, e.g. 65 jobs, first we create a thread which waits for first 63.
The remaining two can be waited on by the same WFMO call which waits for thread
completion. This will avoid creating 2 threads in this case.
2014-01-14 16:11:37 +01:00
Juraj Ivančić
db6c3d7a79 Support more than 64 parallel jobs (-j).
Windows WaitForMultipleObjects() can wait on max. 64 handles. This limitation is overcome by splitting the handle set into parts which are of adequate size, and spawning a thread which does the waiting.
2014-01-14 14:05:29 +01:00
Jürgen Hunold
4d5c1f1306 Ignore build directories 2013-12-20 11:33:30 +01:00
Steven Watanabe
c1395b4961 Make the handling of actions that produce multiple targets more correct.
[SVN r86561]
2013-11-04 22:35:14 +00:00
Eric Niebler
5e39960efd mingw patch for bootstrap from Stephan T. Lavavej, refs #8762
[SVN r86460]
2013-10-26 21:02:15 +00:00
Jürgen Hunold
acac696eac Fix #8754: Add support for upcoming msvc-12.0
Thanks to Lars Viklund for the patch

[SVN r84983]
2013-07-08 13:12:18 +00:00
Steven Watanabe
df2b34d63c Initial supprort for creating symlinks in the git layout.
[SVN r84524]
2013-05-27 00:02:43 +00:00
Steven Watanabe
ba1a63750c Increment Boost.Build version.
[SVN r84445]
2013-05-23 16:38:02 +00:00
Vladimir Prus
956bfb8dd6 Unreak compilation with Python support.
[SVN r84083]
2013-04-29 11:00:25 +00:00
Steven Watanabe
061f998f43 Optimize member function calls to use less string manipulation.
[SVN r83937]
2013-04-16 23:54:54 +00:00
Steven Watanabe
1f1f57dd08 Optimize generator.match-rank
[SVN r83933]
2013-04-16 20:48:13 +00:00