summaryrefslogtreecommitdiff
path: root/Userland/DevTools
AgeCommit message (Collapse)Author
2021-05-04Profiler: Don't link against LibCoreDumpAndreas Kling
2021-05-04Profiler: Print addresses in debug log in hex.Brian Gianforcaro
2021-05-03Userland: Add try_* IPC handlersGunnar Beutner
This enables calling auto-generated IPC methods in a way that doesn't crash the client if the peer disconnects.
2021-05-03IPCCompiler: Don't generate handlers for response messagesGunnar Beutner
For some reason we had IPC handler methods for the return types. This removes those handlers.
2021-05-03Userland: Use snake case names in .ipc filesGunnar Beutner
This updates all .ipc files to have snake case names for IPC methods.
2021-05-03Userland: Make IPC results with one return value available directlyGunnar Beutner
This changes client methods so that they return the IPC response's return value directly - instead of the response struct - for IPC methods which only have a single return value.
2021-05-03Userland: Update IPC calls to use proxiesGunnar Beutner
This updates all existing code to use the auto-generated client methods instead of post_message/send_sync.
2021-05-03Userland: Split IPC endpoints into proxies and stubsGunnar Beutner
This enables support for automatically generating client methods. With this added the user gets code completion support for all IPC methods which are available on a connection object.
2021-05-03Userland: Change IPC funcs to use plain arguments instead of a structGunnar Beutner
Instead of having a single overloaded handle method each method gets its own unique method name now.
2021-05-03LibGUI: Rename ScrollableWidget => AbstractScrollableWidgetAndreas Kling
2021-05-03UserspaceEmulator: Make sure TLS allocation behavior matches kernelGunnar Beutner
2021-05-03UserspaceEmulator: Add missing argument for sys$allocate_tlsGunnar Beutner
2021-05-03UserspaceEmulator: Add stub for sys$futexGunnar Beutner
2021-05-02HackStudio: Show dialog on build and exit if there are unsaved changesItamar
If the user tries to exit HackStudio, or build the project, when there are unsaved changes in some of the editors, A Yes/No/Cancel dialog will be shown.
2021-05-02HackStudio: Add a "document dirty" indicator to the EditorWrapperItamar
2021-05-02HackStudio: Get rid of m_currently_open_file memberItamar
It had the following FIXME: // FIXME: This doesn't seem compatible with multiple split editors In practice this member was used to get the filename of the currently active edtior. So we now get it directly from the currently active EditorWrapper.
2021-05-02LibGUI+HackStudio: Remove editing specific hacks from GUI::CommandAndreas Kling
Use is<T> to check for specific types of command in HackStudio instead of cluttering up GUI::Command with specialized getters.
2021-05-02Userland: Make IPC handlers return void if they don't have any outputsGunnar Beutner
2021-05-02Userland: Get rid of the OwnPtr<...> boilerplate code for IPC handlersGunnar Beutner
2021-05-02HackStudio: Use common copy functions in ProjectTemplate.cppValtteri Koskivuori
This removes the duplicated copy logic and uses the ones from Core::File instead.
2021-05-01Everywhere: Turn #if *_DEBUG into dbgln_if/if constexprGunnar Beutner
2021-05-01Everywhere: Rename app_menu to file_menu or game_menuAndreas Kling
2021-05-01HackStudio: Detection of externally deleted filesOlivier De Cannière
HackStudio can now detect that files that have been opened in it were deleted. When this occurs, it will update the list of open files and reasign a file to the editors that showed the deleted file before the deletion. The new file is either another file that was opened or the default editor is no other open file is available Closes SerenityOS#6632
2021-05-01LibX86+UserspaceEmulator: Add MMX insns prototypesHendiadyoin1
2021-04-29Everywhere: "indexes" => "indices"Andreas Kling
I've wasted a silly amount of time in the past fretting over which of these words to use. Let's just choose one and use it everywhere. :^)
2021-04-29Everywhere: "file name" => "filename"Andreas Kling
2021-04-29Everywhere: Use "the SerenityOS developers." in copyright headersLinus Groh
We had some inconsistencies before: - Sometimes "The", sometimes "the" - Sometimes trailing ".", sometimes no trailing "." I picked the most common one (lowecase "the", trailing ".") and applied it to all copyright headers. By using the exact same string everywhere we can ensure nothing gets missed during a global search (and replace), and that these inconsistencies are not spread any further (as copyright headers are commonly copied to new files).
2021-04-28HackStudio: Add context option to set execution point while debuggingFalseHonesty
You can now right click in HackStudio's editor while debugging and have the option to instantly move the current execution position to the current line.
2021-04-27LibThread: Fix int to pointer conversionJean-Baptiste Boric
2021-04-26Profiler: Use NonnullOwnPtr for librariesGunnar Beutner
2021-04-26Kernel+Profiler: Improve profiling subsystemGunnar Beutner
This turns the perfcore format into more a log than it was before, which lets us properly log process, thread and region creation/destruction. This also makes it unnecessary to dump the process' regions every time it is scheduled like we did before. Incidentally this also fixes 'profile -c' because we previously ended up incorrectly dumping the parent's region map into the profile data. Log-based mmap support enables profiling shared libraries which are loaded at runtime, e.g. via dlopen(). This enables profiling both the parent and child process for programs which use execve(). Previously we'd discard the profiling data for the old process. The Profiler tool has been updated to not treat thread IDs as process IDs anymore. This enables support for processes with more than one thread. Also, there's a new widget to filter which process should be displayed.
2021-04-25Everywhere: Remove empty line after function body opening curly braceLinus Groh
2021-04-25HackStudio: Display variable type name in expression evaluatorFalseHonesty
2021-04-25HackStudio: Implement custom JS -> C++ "proxy" objectsFalseHonesty
This patch adds a custom JS Object type that will convert written properties to their C++ equivalents, reflecting JS writes back to the debugging session. This is better than a simple proxy because printing this custom object works as expected because properties still exist on the object as existing handlers expect.
2021-04-25HackStudio: Add evaluate expression popup to debuggerFalseHonesty
This implements a dialog that can be used to evaluate a JS expression in the HackStudio's Debugger context. It also implements simple C++ Variable <-> JS Value conversion, allowing for JS expressions to read/write variables in the debugger scope. Currently, C++ structs are mapped to JS objects by way of a JS proxy, however this leads to issues when printing, so this will be changed in a later commit.
2021-04-25IPCCompiler: Remove hardcoded endpoint magic, attempt deuxsin-ack
This patch removes the IPC endpoint numbers that needed to be specified in the IPC files. Since the string hash is a (hopefully) collision free number that depends on the name of the endpoint, we now use that instead. :^) Additionally, endpoint magic is now treated as a u32, because endpoint numbers were never negative anyway. For cases where the endpoint number does have to be hardcoded (a current case is LookupServer because the endpoint number must be known in LibC), the syntax has been made more explicit to avoid confusing those unfamiliar. To hardcode the endpoint magic, the following syntax is now used: endpoint EndpointName [magic=1234]
2021-04-25Revert "IPCCompiler: Use string hashes for IPC endpoint magic"Andreas Kling
This reverts commit 59218007a3034c7770b7fa5277ce1eae85bb1c07.
2021-04-25UserspaceEmulator: Add more InstructionsHendiadyoin1
Adds: * CMC * POPA * POPAD * POPF * PUSHA * PUSHAD * PUSHF * PUSH_RM16 * SAHF * FPU: * FNOP * FPREM * FSINCOS * FCMOVxx * FISTTP
2021-04-25IPCCompiler: Use string hashes for IPC endpoint magicsin-ack
This patch removes the IPC endpoint numbers that needed to be specified in the IPC files. Since the string hash is a (hopefully) collision free number that depends on the name of the endpoint, we now use that instead. :^)
2021-04-23UE: Implement FLD_RM80 and FSTP_RM80Hendiadyoin1
We do a bit too big reads and writes, but this should not be that bad although it may taint memory graphs
2021-04-23UE+LibX86: Support bigger reads and writesHendiadyoin1
2021-04-23AK: Rename adopt() to adopt_ref()Andreas Kling
This makes it more symmetrical with adopt_own() (which is used to create a NonnullOwnPtr from the result of a naked new.)
2021-04-22LibWeb+HackStudio: Use lukew@serenityos.org for my copyright headersLuke
2021-04-22Everything: Move to SPDX license identifiers in all files.Brian Gianforcaro
SPDX License Identifiers are a more compact / standardized way of representing file license information. See: https://spdx.dev/resources/use/#identifiers This was done with the `ambr` search and replace tool. ambr --no-parent-ignore --key-from-file --rep-from-file key.txt rep.txt *
2021-04-21UserspaceEmulator: Convert String::format() => String::formatted()Andreas Kling
2021-04-21HackStudio: Convert String::format() => String::formatted()Andreas Kling
2021-04-21Userland: Use Core::DirIterator::next_full_path()Andreas Kling
Simplify some code by using this instead of concatenating the full path ourselves at the call site.
2021-04-21Inspector: Add context menu to copy property name/valueDragonAlex98
I added a context menu for the property tree view to copy the name/value of a property.
2021-04-21Inspector: Select entire property rowDragonAlex98
With some themes (like the default one), it was possible to select a property, making the text of its value not visible. I solved this by setting set_should_fill_selected_rows to true.
2021-04-21HackStudio: Clean up debugger thread when debugger exitsFalseHonesty
Fixes #4393 :^)