Commit Graph

531 Commits

Author SHA1 Message Date
pyos 73e91af792 IDEA: test the plugin's ability to parse correct JSR-045 data 2020-05-19 18:33:27 +02:00
pyos 5feadd56ef JVM: parse KotlinDebug when regenerating anonymous objects 2020-05-19 18:33:27 +02:00
pyos 23ea2446e0 IDEA: add a couple "navigate to inline function call site" tests 2020-03-31 16:06:57 +02:00
Aleksandr Prokopyev 5975251a32 Debugger: Coroutines stack frames with variables & coroutine dumps 2019-11-19 12:29:06 +03:00
Yan Zhulanow 472ec72eb9 Refactor debugger tests
1. Move tests to their own module
2. Avoid sharing the 'tinyApp' project between tests
3. Clean up option directive handling
2019-10-08 19:13:56 +09:00
Yan Zhulanow d8d81c51d7 Move debugger test data to the new location 2019-10-08 19:13:55 +09:00
Yan Zhulanow 0a092d6613 Debugger: Fix breakpoint firing in '$suspendImpl' (KT-27645) 2019-08-07 01:15:33 +09:00
Yan Zhulanow 52a958256d Debugger: Disable exception on 'variable not found' event (EA-138365)
The error message is still visible to the user, so it doesn't make much sense to duplicate it as an exception.
2019-08-07 01:15:30 +09:00
Yan Zhulanow d6487e89ad Debugger: Prohibit 'suspend fun' calls in evaluated expressions
Currently, it's impossible to call suspend functions in evaluated code fragments (see KT-31701).
This commit officially prohibits such calls, so users will see a semi-friendly error message.
2019-08-07 01:15:29 +09:00
Yan Zhulanow 3d3bde5483 Debugger: Do not ignore duplicated locations for line breakpoints 2019-08-07 01:15:28 +09:00
Yan Zhulanow 780c0518e5 Debugger: Disallow breakpoints for @InlineOnly function bodies (KT-32687, KT-24408)
Kotlin compiler strips all debug information for @InlineOnly functions, making them non-debuggable.
This commit disables breakpoints inside @InlineOnly functions to prevent false expectations.
2019-08-07 01:15:28 +09:00
Yan Zhulanow 25fb77e7ad Debugger: Add breakpoint applicability tests
This commit adds a number of tests that check breakpoint placing behavior, and an inline action that work the same way as tests.
2019-08-07 01:15:28 +09:00
Yan Zhulanow b1f132d750 Debugger: Add stepping tests for function breakpoints 2019-08-07 01:15:27 +09:00
Yan Zhulanow 129ca7f2d8 Debugger: Fix breakpoint applicability (KT-10984)
Ensure that breakpoints of each type can be placed only on lines where it makes sense to place a breakpoint.

Here is a quick summary of the rules:
1. Method breakpoints are available for functions, property accessors, constructors;
2. Line breakpoints are available on any line with an expression, excluding some cases like 'const' property initializers or annotations;
3. Line breakpoints should be available on a '}' in functions and lambdas;
4. Line breakpoints are not suggested for one-liners;
5. Lambda breakpoints should be shown for single-line lambdas.
2019-08-07 01:15:27 +09:00
Yan Zhulanow 0f4085066f Debugger: Do not assume we are inside the class body when in '}' (KT-15259) 2019-07-08 16:25:19 +09:00
Yan Zhulanow d45bbaabcd Debugger: Fix missing NOPs in optimized Unit.INSTANCE calls (KT-31702) 2019-07-08 16:25:19 +09:00
Yan Zhulanow 9760c156a4 Debugger: Fix breakpoints on if/loops with constant conditions (KT-14421) 2019-07-08 16:25:18 +09:00
Yan Zhulanow 188ed82081 Debugger: Handle closure receivers came from outer callables properly (KT-31709) 2019-07-08 16:25:17 +09:00
Yan Zhulanow c2f0286183 Debugger: Prefer the closest captured values 2019-07-08 16:25:17 +09:00
Yan Zhulanow 4fe6431b0f Debugger: Disable value rendering in watches by default (KT-19084) 2019-07-08 16:25:16 +09:00
Yan Zhulanow 0f3d85716c Debugger: Fix test, synthetic this variable is now hidden in Kotlin variables mode 2019-07-08 16:25:16 +09:00
Yan Zhulanow 1eab78124a Debugger: Fix private member priority test 2019-07-08 16:25:16 +09:00
Yan Zhulanow b4f515a436 Debugger: Support Kotlin variables for inlined lambdas inside inline functions (KT-31418) 2019-07-08 16:25:16 +09:00
Yan Zhulanow afa0bec6f6 Debugger: Change the inline depth calculation heuristics, fix debugging for inlined lambdas (KT-30919) 2019-07-08 16:25:16 +09:00
Yan Zhulanow 5777592024 Debugger: Support captured values (KT-30740) 2019-07-08 16:25:15 +09:00
Mikhail Zarechenskiy 6d3a7102d5 Fix evaluation of local functions for new-inference
Plus, additionally fix evaluation of generic local functions everywhere

 The problem was that in new-inference we create more substituted
 descriptors while old inference tries to preserve original ones.
 Later, backend fails to retrieve those descriptors as it uses originals.
 But, again, this worked only for simple functions, for generic functions
 debugger with new and old inference worked incorrectly

 #KT-31785 Fixed
2019-06-04 11:07:50 +03:00
Yan Zhulanow b48e0a89c5 Debugger: Hide synthetic '$completion' variable in Kotlin variables mode 2019-05-30 15:27:11 +09:00
Yan Zhulanow 35c63db9bc Debugger: Support coroutineContext for suspend functions without suspend calls (KT-24829) 2019-05-30 15:27:11 +09:00
Yan Zhulanow 999d5ce3bb Debugger: Fix VariableAsFunctionResolvedCall evaluation 2019-05-30 15:27:10 +09:00
Yan Zhulanow 0a6a811c57 Debugger: Fix lvalue evaluation (KT-11663, KT-19980) 2019-05-30 15:27:10 +09:00
Yan Zhulanow bb0bc8a38a Debugger: Fix toTypedArray() evaluation (KT-8579) 2019-05-30 15:27:09 +09:00
Yan Zhulanow 9ae8a8abf1 Debugger: Fix method evaluation on arrays (KT-11706) 2019-05-30 15:27:09 +09:00
Yan Zhulanow 38dba20e24 Debugger: Allow super calls (KT-20560) 2019-05-30 15:27:09 +09:00
Yan Zhulanow cbbb3c35da Debugger: Fix evaluation for local extension functions (KT-13188) 2019-05-30 15:27:09 +09:00
Yan Zhulanow ee0daae2ab Debugger: Support synchronized blocks and functions in evaluator (KT-11888) 2019-05-30 15:27:08 +09:00
Yan Zhulanow 55bbcc4601 Generate line numbers for closing '}' in 'init {}' blocks (KT-12787) 2019-05-30 15:27:08 +09:00
Yan Zhulanow a385b4d9d0 Debugger: Fix evaluation on value parameter name position (KT-30976) 2019-05-30 15:27:08 +09:00
Yan Zhulanow 577b3e096f Debugger: Fix test (lines were changed because of the updated copyright) 2019-05-30 15:27:08 +09:00
nikita.movshin a6230c1e2a Update copyright.
Change the copyright from "JetBrains s.r.o." to
"JetBrains s.r.o. and Kotlin Project contributors"
Update 1 line comment with dates from 2000 till 2017
2019-04-23 20:09:27 +03:00
Vyacheslav Gerasimov 952d2b6287 Remove 181 bunch files 2019-04-23 17:28:41 +03:00
Yan Zhulanow 2314ca7a94 Debugger: Fix evaluation of lambda arguments (KT-10636) 2019-04-11 17:46:19 +03:00
Yan Zhulanow 0d04dc6f99 Debugger: Allow to touch experimental stuff from evaluator (KT-30216) 2019-04-11 17:46:13 +03:00
Yan Zhulanow b7ea4ccc7e Debugger: Hide call-site 'this' in inline functions in Kotlin variables mode (KT-30610) 2019-04-11 17:46:13 +03:00
Ilmir Usmanov 070fb7c250 Fix test data 2019-04-01 18:19:34 +03:00
Yan Zhulanow 754a7bc554 Code fragment analysis: analyze parents if there's no sensible scope for the default element (KT-29179) 2019-03-20 20:52:21 +03:00
Yan Zhulanow 77c2a5c87c Debugger: Fix missing NOP in empty 'when' header (KT-29189) 2019-03-20 20:52:20 +03:00
Yan Zhulanow ba0989801a Debugger: Show captured outer this in lambdas (Variables view) (KT-30220) 2019-03-20 20:52:20 +03:00
Yan Zhulanow 723f8df23e Hide '$delegate' variables in Kotlin variables mode 2019-03-20 20:52:20 +03:00
Yan Zhulanow cadb70f64a Evaluator: Allow to evaluate expression on synthetic lines in .kt files 2019-02-25 14:44:00 +03:00
Yan Zhulanow 16266259f5 Evaluator: Handle function context gracefully. Use file scope as a fallback instead of error scope 2019-02-25 14:44:00 +03:00