Commit Graph

277 Commits

Author SHA1 Message Date
Brad King 9fdf716ee8 Merge topic 'debug-adapter-value-formatting'
41621c3afb Debugger: Add Value Formatting support for StackTrace request

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9940
2024-11-01 09:16:18 -04:00
Jonathan Phippen 41621c3afb Debugger: Add Value Formatting support for StackTrace request
Add support for the "format" property of the Debug Adapter Protocol
StackTrace request to fulfill the host's request to format the resulting
StackFrame name differently.
2024-10-29 13:29:00 -07:00
Dylan Snelgrove 0f515c2d26 libuv: win/spawn: add option to use parent process error mode
Backport changes from libuv v2 commit `8ad246557a` (win,process: allow
users to configure child error mode, 2024-10-17) to add the
`UV_PROCESS_WINDOWS_USE_PARENT_ERROR_MODE` option.

Also use `UV_PROCESS_WINDOWS_USE_PARENT_ERROR_MODE` to keep
the behavior the same as before the option was added,
all child processes would be spawned the the parent's
error mode.

Issue: #20115
2024-10-25 08:51:45 -04:00
Alex Turbov 788e5c1043 Tests: Add tests for cmDocumentationFormatter::PrintFormatted() 2024-10-23 16:33:02 +04:00
Alex Turbov 0c17cc9ef5 cmJSONHelpers.h: Add FilteredObject helper
Iterate over the object's members and call a filter callable to decide what
to do with the current key/value. A filter returns one of the `FilterResult`
values. A container type is an associative or a sequence container of pairs
(key, value).

Refactor `MapFilter()` and `Map()` to use `FilteredObject()`. Moreover,
for C++ >= 17 implementation is more optimized depending on the given filter
object type and capable of detecting and properly calling the filter callable
using 1 or 3 arguments, up to totally eliminate any checking (even dummy)
in the generated code.

Supported container types, used to append key/value items, aren't limited to
`std::map` only and can be any associative container or a sequenced one with
pairs of key/value as elements.
2024-08-26 19:01:48 +04:00
Alex Turbov cc20644c71 testCommon.h: Introduce ASSERT_EQUAL(actual, expected) macro
Performs `==` on given arguments and print an error if they are
not equal also printing their values.

Both arguments must be printable to `std::ostream`!
2024-08-21 02:24:16 +04:00
Alex Turbov c553be501d CMakeLibTests: Use runTests
Also, improve it a little.
2024-08-14 01:31:46 +04:00
Alex Turbov 0146fca12d CMakeLibTests: include testCommon.h for ASSERT_TRUE
And remove duplicate definitions.
2024-08-14 01:04:15 +04:00
Alex Turbov 3d9c018f31 CMakeLibTests: Generate testConfig.h with source/build paths defined
And use it in all tests that had their particular files before.
2024-08-13 06:06:25 +04:00
Vito Gamberini 5fc2bad167 cmArgumentParser: Support binding with derived classes 2024-07-02 09:58:57 -04:00
Kyle Edwards 93e471f371 Tests: Build testUVProcessChainHelper with WIN32_LEAN_AND_MEAN 2024-02-27 14:36:40 -05:00
Christoph Grüninger 01c22dfaee Range-for loop with const reference
Prevent copy-ctor and dtor to be called.
Found by Cppcheck (constVariableReference)
2024-02-14 20:46:02 +01:00
Brad King b11c8c45f9 Merge topic 'cmuvprocesschain'
adb3e13d32 cmUVProcessChain: Tolerate fileno() of invalid FILE stream
b6e4e4babc cmUVProcessChain: Simplify SetExternalStream usage
116bb2b70f cmUVProcessChain: Simplify builder initialization
d32c30906a Tests: Add missing include in testUVProcessChainHelper on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9181
2024-01-25 10:40:02 -05:00
Brad King b6e4e4babc cmUVProcessChain: Simplify SetExternalStream usage
It is commonly called with the `fileno()` of a `FILE*` stream,
so accept the latter directly.
2024-01-24 16:59:49 -05:00
Brad King d32c30906a Tests: Add missing include in testUVProcessChainHelper on Windows
We use `STATUS_ACCESS_VIOLATION` from `windows.h`.
2024-01-24 16:59:23 -05:00
Kyle Edwards 0b043a75b7 cmUVProcessChain: Add option for external uv_loop_t 2023-12-05 14:48:24 -05:00
Brad King 5396f4a9a3 cmUVJobServerClient: Add libuv-based job server integration client 2023-12-03 08:30:06 -05:00
Brad King 47fbb29ad7 cmUVHandlePtr: Fix conversion to bool on Oracle Studio compiler
The operator added by commit 17690558c3 (cmUVHandlePtr: Add explicit
conversion to bool, 2023-10-26) works in direct expressions like
`if(foo)` but not compound expressions like `if(foo && ...)`.
Drop the `explicit` mark when compiling with Oracle Studio so we
can at least compile valid code.
2023-12-02 06:37:40 -05:00
Brad King 7ee5fb01c6 cmUVHandlePtr: Add uv_write wrapper to manage request lifetime
Provide a way to synchronously cancel a write request callback.
2023-11-22 07:12:38 -05:00
Brad King fb7ee82271 cmUVHandlePtr: Add uv_idle_ptr::{start,stop} methods
These were missing w.r.t. the pattern established for other handle wrappers.
2023-11-20 18:22:53 -05:00
Brad King 9dd14b2946 cmUVHandlePtr: Add uv_timer_ptr::stop method
This was missing w.r.t. the pattern established for other handle wrappers.
2023-11-20 18:22:30 -05:00
Brad King 8908f277d9 Tests: Add dedicated test case for uv_timer_ptr 2023-11-20 18:22:09 -05:00
Brad King f906e2482f Tests: Factor out callback in uv_idle_ptr test case 2023-11-20 18:22:03 -05:00
Brad King 89435a5662 Tests: Add dedicated test to cover cmUVHandlePtr types
Move the case added by commit 70d88a5361 (cmUVHandlePtr: Add
uv_idle_ptr, 2023-11-06) to a dedicated test.
2023-11-20 18:21:46 -05:00
Brad King 70d88a5361 cmUVHandlePtr: Add uv_idle_ptr
Wrap a `uv_idle_t` handle.
2023-11-17 08:51:25 -05:00
Brad King 17690558c3 cmUVHandlePtr: Add explicit conversion to bool 2023-11-17 08:50:53 -05:00
Brad King 85a9fe056f Merge topic 'cxx23'
a0fabc4769 cmGlobalGeneratorFactory: Provide complete cmGlobalGenerator to deleter
85627a93c9 cmCTestBuildCommand: Avoid requiring complete cmGlobalGenerator type publicly
641c02a3ce cmList: Avoid using operator-> on input iterator
e4483b8871 Tests: Avoid compiling call to dap::optional<dap::string>(nullptr)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Merge-request: !8950
2023-11-08 10:32:04 -05:00
Brad King e4483b8871 Tests: Avoid compiling call to dap::optional<dap::string>(nullptr) 2023-11-07 09:13:24 -05:00
Brad King 9627ef86c9 Merge topic 'debugger-function-name-in-stacktrace'
c028425df9 Debugger: report function name in DAP stackframes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8913
2023-10-27 09:04:06 -04:00
Dmitry.Neverov c028425df9 Debugger: report function name in DAP stackframes
Before a file name and a line were returned, but they can be
obtained by other means.

Fixes: #25091
2023-10-26 09:51:32 -04:00
Brad King 264dcae5e4 Tests: Fix clang -Wstrict-prototypes warnings 2023-10-26 09:20:45 -04:00
Ben Boeckel b0612796b1 cmDebugTools: add header
This provides a utility macro which prints out:

- location of the call;
- the expression being evaluated; and
- the value of the expression.

Evaluates to the value of the expression.

Inspired by Rust's `dbg!` macro.

See: https://doc.rust-lang.org/stable/std/macro.dbg.html
2023-10-01 06:52:44 -04:00
Kyle Edwards 49a37d5a97 cmCTestScriptHandler: Replace cmsysProcess with cmUVProcessChain
And update cmSystemTools::WaitForLine() to use cmUVProcessChain.
2023-08-29 10:51:30 -04:00
Kyle Edwards 27be5ccd45 cmUVStreamRead: Return RAII handle to avoid memory leak 2023-08-25 10:44:06 -04:00
Kyle Edwards 439722993e CMakeLibTests: Compile with WIN32_LEAN_AND_MEAN 2023-08-21 14:48:07 -04:00
Brad King df0a32f48e Merge topic 'debugger-pipe-connections'
8b1257e7bf Debugger: Replace libuv with platform-specific connection code

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8711
2023-08-19 08:46:01 -04:00
Paul Maybee 8b1257e7bf Debugger: Replace libuv with platform-specific connection code
Remove libuv usage from CMake debugger. Libuv has an async io model
and cppdap uses a sync model, so an extra thread and a buffer copy
were necessary to match semantics. In order to eliminate those
costs this commit implements the IO using platform specific APIs.
2023-08-17 10:11:33 -04:00
Brad King 5a7f30e532 Merge topic 'test-debugger-named-pipe-fix'
1a5cb0c1c1 testDebuggerNamedPipe: fix for cppdap with nlohmann_json

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8725
2023-08-16 13:31:57 -04:00
Đoàn Trần Công Danh 1a5cb0c1c1 testDebuggerNamedPipe: fix for cppdap with nlohmann_json
Fixes: #25190
Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
2023-08-16 10:24:08 -04:00
Brad King 5ed03aa07a Merge topic 'add-cm-fileno'
fbdb1fd843 Source: Add cm_fileno wrapper

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8686
2023-08-09 11:36:07 -04:00
Kyle Edwards fbdb1fd843 Source: Add cm_fileno wrapper
And use it where appropriate.
2023-08-07 11:26:05 -04:00
Marc Chevrier a9a34edc82 cmList: Fix performance regression in append/prepend
Fixes: #25147
2023-08-04 09:55:47 +02:00
Marc Chevrier 7f9f96151a cmList: Fix performance regression in append/prepend
Fixes: #25147
2023-08-04 09:52:08 +02:00
Brad King d56b0f9339 Merge topic 'test_utf8_improve'
3ce4e9523c testUTF8: Improve using string_view

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8673
2023-08-01 09:29:09 -04:00
Vitaly Stakhovsky 3ce4e9523c testUTF8: Improve using string_view 2023-07-30 15:55:39 -04:00
Brad King 241ee252ce IWYU: Update for Debian 12 CI job
`include-what-you-use` diagnostics, in practice, are specific to
the environment's compiler and standard library.  Update includes
to satisfy IWYU for our CI job under Debian 12.
2023-07-28 09:14:08 -04:00
Kyle Edwards 830a4b37aa cmUVProcessChain::Wait(): Treat timeout of 0 as no timeout 2023-07-26 13:08:27 -04:00
Marc Chevrier 945b9b8132 cmCMakePath: workarounds for Sunpro/sparc compiler 2023-07-18 11:50:07 -04:00
Brad King c9b1ce71f6 Merge topic 'debugger-breakpoints'
60b6383993 Debugger: Always clear existing breakpoints on setBreakpoints

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8624
2023-07-14 08:34:30 -04:00
Ben McMorran 60b6383993 Debugger: Always clear existing breakpoints on setBreakpoints
Fixes: #25063
2023-07-13 08:44:52 -04:00