summaryrefslogtreecommitdiff
path: root/Userland/DevTools
AgeCommit message (Collapse)Author
2022-01-09HackStudio: Propagate errors using try_set_main_widgetcreator1creeper1
The documentation tooltip and parameters hint tooltip initialization functions are now fallible and now call try_set_main_widget instead of set_main_widget. They are only called by Editor's new custom try_create function.
2022-01-09HackStudio: Propagate errors using try_set_main_widget in maincreator1creeper1
2022-01-09Inspector: Propagate errors using try_set_main_widget in maincreator1creeper1
2022-01-08UserspaceEmulator: Fail with EINVAL for mmap with size 0Rummskartoffel
This is the behaviour specified by POSIX and also the behaviour of the real kernel, so let's follow that while emulating.
2022-01-08UserspaceEmulator: Interpret zero-alignment as page-sized alignmentRummskartoffel
This commit fixes an issue where zero-alignment would lead to the requested range being allocated outside of the total available range, hitting an assert in RangeAllocator::allocate_anywhere().
2022-01-08LibJS: Convert Interpreter::run() to ThrowCompletionOr<Value>Linus Groh
Instead of making it a void function, checking for an exception, and then receiving the relevant result via VM::last_value(), we can consolidate all of this by using completions. This allows us to remove more uses of VM::exception(), and all uses of VM::last_value().
2022-01-07Everywhere: Fix spelling mistakesmjz19910
2022-01-07Everywhere: Fix many spelling errorsmjz19910
2022-01-01HackStudio: Avoid unnecessary copies in CodeComprehensionEngineBen Wiederhake
2022-01-01HackStudio: Use String instead of LexicalPathConor Byrne
LexicalPath is a 'heavier' object than a String that is mainly used for path parsing and validation, we don't actually need any of that in GitRepo and its related files, so let's move to String :^) I've also done some east-const conversion in the files that I was editing for the string change.
2022-01-01HackStudio: Add new multiline commit dialogConor Byrne
This new commit dialog features multi-line input and a line and column indicator. A great improvement over the last one, if you ask me! :^)
2021-12-31HackStudio: Fix crash when clicking unstaged filesConor Byrne
In certain cases, an index might be invalid in the unstaged files view. We must check if this index is valid before attempting to read the index's data.
2021-12-30Userland: Link directly against LibUnicodeData where neededTimothy Flynn
This is partially a revert of commits: 10a8b6d4116c6a627a6c189154af032f69b29c21 561b67a1add82538502ef2f5733f1d86718898ad Rather than adding the prot_exec pledge requried to use dlopen(), we can link directly against LibUnicodeData in applications that we know need that library. This might make the dlopen() dance a bit unnecessary. The same purpose might now be fulfilled with weak symbols. That can be revisted next, but for now, this at least removes the potential security risk of apps like the Browser having prot_exec privileges.
2021-12-28Profiler: Extract percentage gradient calculation into its own fileStephan Unverwerth
2021-12-28Profiler: Make everything east-const :^)Stephan Unverwerth
2021-12-28Profiler: Add source code viewStephan Unverwerth
This adds a new view mode to profiler which displays source lines and samples that occured at those lines. This view can be opened via the menu or by pressing CTRL-S. It does this by mapping file names from DWARF to "/usr/src/serenity/..." i.e. source code should be copied to /usr/src/serenity/Userland and /usr/src/serenity/Kernel to be visible in this mode. Currently *all* files contributing to the selected function are loaded completely which could be a lot of data when dealing with lots of inlined code.
2021-12-28UserspaceEmulator: Exclude special ranges from RangeAllocatorDaniel Bertalan
If we do not mark these ranges as reserved, RangeAllocator might later give us addresses that overlap these, which then causes an assertion failure in the SoftMMU. This behavior led to recurring CI failures, and sometimes made programs as simple as `/bin/true` fail. Fixes "Crash 1" reported in #9104
2021-12-28HackStudio: Highlight AF files as INIMaciej
2021-12-27HackStudio: Ask to create a non-existent directory when making a projectConor Byrne
Previously, if the parent directory didn't exist when making a project, it would say that the creation directory was 'invalid' which isn't necessarily true. This patch prompts the user to ask if they would like to create the parent directory when creating a project, instead of treating it as an 'invalid' directory.
2021-12-23Kernel+UE+LibC: Store address as void* in SC_m{re,}map_paramsDaniel Bertalan
Most other syscalls pass address arguments as `void*` instead of `uintptr_t`, so let's do that here too. Besides improving consistency, this commit makes `strace` correctly pretty-print these arguments in hex.
2021-12-23Kernel+UE: Add MAP_FIXED_NOREPLACE mmap() flagDaniel Bertalan
This feature was introduced in version 4.17 of the Linux kernel, and while it's not specified by POSIX, I think it will be a nice addition to our system. MAP_FIXED_NOREPLACE provides a less error-prone alternative to MAP_FIXED: while regular fixed mappings would cause any intersecting ranges to be unmapped, MAP_FIXED_NOREPLACE returns EEXIST instead. This ensures that we don't corrupt our process's address space if something is already at the requested address. Note that the more portable way to do this is to use regular MAP_ANONYMOUS, and check afterwards whether the returned address matches what we wanted. This, however, has a large performance impact on programs like Wine which try to reserve large portions of the address space at once, as the non-matching addresses have to be unmapped separately.
2021-12-23UserspaceEmulator: Replace intersecting ranges if MAP_FIXED is specifiedDaniel Bertalan
This commit changes UserspaceEmulator to match the behavior that the kernel has since ce1bf37.
2021-12-23Profiler: Use AK::any_of for process filtrationHendiadyoin1
Equivalent to std::ranges::any_of as clang-tidy suggests.
2021-12-23Profiler: Always use FlyString const&'s in ProfileNode constructionHendiadyoin1
No need to copy and move them around, just to pass them as a `String const&` to the constructor. We still end up copying it to a normal String in the end though...
2021-12-23Profiler: Remove one else-after-returnHendiadyoin1
2021-12-23Profiler: Don't return constant copies of GUI::ModelIndexHendiadyoin1
2021-12-23Profiler: Add some implied auto qualifiersHendiadyoin1
2021-12-23UserspaceEmulator: Return ValueAndShadowReference& on operator=Hendiadyoin1
This is what normal assign operators do and what clang-tidy expects form us.
2021-12-23UserspaceEmulator: Avoid copies of non trivial types on invocationsHendiadyoin1
These include AK::String and X86::Instruction
2021-12-23UserspaceEmulator: Remove redundant private specifier in SoftCPU.hHendiadyoin1
2021-12-23UserspaceEmulator: Remove some else-after-returnsHendiadyoin1
2021-12-23UserspaceEmulator: Add some implied auto qualifiersHendiadyoin1
2021-12-22HackStudio: Attach debuggee to "Console" terminal tabItamar
Previously the debuggee process used the same tty of the HackStudio process. We now set things up so the debuggee gets attached to the TerminalWrapper in the "Console" tab.
2021-12-22HackStudio: Separate master & slave PTY setup in TerminalWrapperItamar
Previously the setup for both the master and slave pseudoterminals was done in TerminalWrapper::run_command. This commit separates the relevant logic into TerminalWrapper::setup_master_pseudoterminal and TerminalWrapper::setup_slave_pseudoterminal.
2021-12-22HackStudio: Rename "Build" tab to "Console"Itamar
The TerminalWrapper in this tab is not only used for displaying build output, so "Console" would be a better name.
2021-12-22Kernel: Move userspace virtual address range base to 0x10000Idan Horowitz
Now that the shared bottom 2 MiB virtual address mappings are gone userspace can use lower virtual addresses.
2021-12-21AK+Everywhere: Replace __builtin bit functionsNick Johnson
In order to reduce our reliance on __builtin_{ffs, clz, ctz, popcount}, this commit removes all calls to these functions and replaces them with the equivalent functions in AK/BuiltinWrappers.h.
2021-12-21Profiler: Add horizontal_scrollbar height to initial_heightAstraeus-
This prevents the scrollbar from covering the TimelineTrack when there is one
2021-12-20Profiler: Display tooltip when hovering over flamegraph barsRok Povsic
2021-12-20Profiler: Extract the bar label String into a private methodRok Povsic
2021-12-18Profiler: Convert to try_create_default_iconAstraeus-
and sprinkle in some more TRY() statements
2021-12-18Playground: Convert to try_create_default_iconAstraeus-
and sprinkle in some more TRY() statements
2021-12-18Inspector: Convert to try_create_default_iconAstraeus-
2021-12-12UserspaceEmulator: Remove support for SC_select syscallJean-Baptiste Boric
2021-12-12UserspaceEmulator: Add support for SC_poll syscallJean-Baptiste Boric
2021-12-12UserspaceEmulator: Sort syscalls in alphabetic orderJean-Baptiste Boric
2021-12-11Playground: Remove redundant pledge()bugreport0
2021-12-11Inspector: Update pledge() idiombugreport0
2021-12-11Everywhere: Fix -Winconsistent-missing-override warnings from ClangDaniel Bertalan
This option is already enabled when building Lagom, so let's enable it for the main build too. We will no longer be surprised by Lagom Clang CI builds failing while everything compiles locally. Furthermore, the stronger `-Wsuggest-override` warning is enabled in this commit, which enforces the use of the `override` keyword in all classes, not just those which already have some methods marked as `override`. This works with both GCC and Clang.
2021-12-09HackStudio+TextEditor: Persist EditingEngineType across editorsscwfri
Persist EditingEngine mode in HackStudio and TextEditor when opening new files or editing splits. Previously, the EditingEngine defaulted to a RegularEditingEngine for a new Editor, even if Vim Emulation had been selected in the existing Editor.