From a26ddcc6fe6c66b7e08078daac2d460a7a189a70 Mon Sep 17 00:00:00 2001 From: Evan Teran Date: Wed, 10 Jun 2026 15:04:27 -0400 Subject: [PATCH 1/2] working to update doxygen comments to be more useful --- plugins/Analyzer/Analyzer.cpp | 70 +++++++------- plugins/Analyzer/AnalyzerWidget.cpp | 10 +- plugins/Analyzer/DialogXRefs.cpp | 6 +- plugins/Analyzer/OptionsPage.cpp | 6 +- plugins/Analyzer/SpecifiedFunctions.cpp | 10 +- plugins/Assembler/Assembler.cpp | 12 +-- plugins/Assembler/DialogAssembler.cpp | 14 +-- plugins/Assembler/OptionsPage.cpp | 4 +- plugins/Backtrace/Backtrace.cpp | 8 +- plugins/Backtrace/CallStack.cpp | 19 ++-- plugins/Backtrace/DialogBacktrace.cpp | 18 ++-- plugins/BinaryInfo/BinaryInfo.cpp | 16 ++-- plugins/BinaryInfo/DialogRegions.cpp | 4 +- plugins/BinaryInfo/ELF32.cpp | 2 +- plugins/BinaryInfo/ELF64.cpp | 2 +- plugins/BinaryInfo/PE32.cpp | 12 +-- plugins/BinarySearcher/BinarySearcher.cpp | 10 +- plugins/BinarySearcher/DialogAsciiString.cpp | 6 +- plugins/BinarySearcher/DialogBinaryString.cpp | 4 +- plugins/BinarySearcher/DialogResults.cpp | 9 +- plugins/Bookmarks/BookmarkWidget.cpp | 22 ++--- plugins/Bookmarks/Bookmarks.cpp | 12 +-- plugins/Bookmarks/BookmarksModel.cpp | 26 +++--- .../BreakpointManager/BreakpointManager.cpp | 6 +- plugins/CheckVersion/CheckVersion.cpp | 16 ++-- plugins/CheckVersion/OptionsPage.cpp | 6 +- plugins/DebuggerCore/DebuggerCoreBase.cpp | 24 +++-- .../arch/x86-generic/Breakpoint.cpp | 20 ++-- plugins/DebuggerCore/unix/Posix.cpp | 12 +-- plugins/DebuggerCore/unix/Unix.cpp | 10 +- .../DebuggerCore/unix/linux/DebuggerCore.cpp | 91 ++++++++++--------- .../unix/linux/DialogMemoryAccess.cpp | 4 +- .../DebuggerCore/unix/linux/PlatformEvent.cpp | 30 +++--- .../unix/linux/PlatformProcess.cpp | 90 ++++++++++-------- .../unix/linux/PlatformRegion.cpp | 44 ++++----- .../unix/linux/PlatformThread.cpp | 18 ++-- .../linux/arch/arm-generic/PlatformState.cpp | 56 ++++++------ .../linux/arch/arm-generic/PlatformThread.cpp | 24 ++--- 38 files changed, 384 insertions(+), 369 deletions(-) diff --git a/plugins/Analyzer/Analyzer.cpp b/plugins/Analyzer/Analyzer.cpp index 359fa5523..f7516f245 100644 --- a/plugins/Analyzer/Analyzer.cpp +++ b/plugins/Analyzer/Analyzer.cpp @@ -46,7 +46,7 @@ namespace { constexpr int MinRefCount = 2; /** - * @brief will_return + * @brief Returns true if the function at the given address is not marked as non-returning. * @param address * @return */ @@ -68,7 +68,7 @@ bool will_return(edb::address_t address) { } /** - * @brief is_entrypoint + * @brief Returns true if the given symbol represents the ELF process entry point (_start). * @param sym * @return */ @@ -81,7 +81,7 @@ bool is_entrypoint(const Symbol &sym) { } /** - * @brief is_thunk + * @brief Returns true if the function at the given address begins with an unconditional jump, indicating a thunk. * @param address * @return true if the first instruction of the function is a jmp */ @@ -97,7 +97,7 @@ bool is_thunk(edb::address_t address) { } /** - * @brief set_function_types + * @brief Classifies each function in the map as either a thunk or a standard function based on its entry instruction. * @param results */ void set_function_types(IAnalyzer::FunctionMap *results) { @@ -123,7 +123,7 @@ void set_function_types(IAnalyzer::FunctionMap *results) { } /** - * @brief module_entry_point + * @brief Returns the entry point address of the binary module that contains the given memory region. * @param region * @return */ @@ -150,7 +150,7 @@ edb::address_t module_entry_point(const std::shared_ptr ®ion) { } /** - * @brief Analyzer::Analyzer + * @brief Constructs the Analyzer plugin object. * @param parent */ Analyzer::Analyzer(QObject *parent) @@ -158,7 +158,7 @@ Analyzer::Analyzer(QObject *parent) } /** - * @brief Analyzer::optionsPage + * @brief Returns the plugin's configuration options widget. * @return */ QWidget *Analyzer::optionsPage() { @@ -166,7 +166,7 @@ QWidget *Analyzer::optionsPage() { } /** - * @brief Analyzer::menu + * @brief Creates and returns the Analyzer plugin menu, adding toolbar and dock widgets on first call. * @param parent * @return */ @@ -208,14 +208,14 @@ QMenu *Analyzer::menu(QWidget *parent) { } /** - * @brief Analyzer::privateInit + * @brief Registers this instance as the global active analyzer. */ void Analyzer::privateInit() { edb::v1::set_analyzer(this); } /** - * @brief Analyzer::showSpecified + * @brief Opens or raises the dialog listing user-specified function start addresses. */ void Analyzer::showSpecified() { static auto dialog = new SpecifiedFunctions(edb::v1::debugger_ui); @@ -223,7 +223,7 @@ void Analyzer::showSpecified() { } /** - * @brief Analyzer::doIpAnalysis + * @brief Analyzes the memory region containing the current instruction pointer. */ void Analyzer::doIpAnalysis() { if (IProcess *process = edb::v1::debugger_core->process()) { @@ -240,14 +240,14 @@ void Analyzer::doIpAnalysis() { } /** - * @brief Analyzer::doViewAnalysis + * @brief Analyzes the memory region currently visible in the CPU disassembly view. */ void Analyzer::doViewAnalysis() { doAnalysis(edb::v1::current_cpu_view_region()); } /** - * @brief Analyzer::markFunctionStart + * @brief Marks the currently selected address as a known function start and invalidates the region's analysis. */ void Analyzer::markFunctionStart() { @@ -260,7 +260,7 @@ void Analyzer::markFunctionStart() { } /** - * @brief Analyzer::showXrefs + * @brief Opens a dialog listing all cross-references that target the currently selected address. */ void Analyzer::showXrefs() { @@ -284,7 +284,7 @@ void Analyzer::showXrefs() { dialog->show(); } /** - * @brief Analyzer::gotoFunctionStart + * @brief Jumps the disassembly view to the entry address of the function containing the selected address. */ void Analyzer::gotoFunctionStart() { @@ -303,7 +303,7 @@ void Analyzer::gotoFunctionStart() { } /** - * @brief Analyzer::gotoFunctionEnd + * @brief Jumps the disassembly view to the last instruction of the function containing the selected address. */ void Analyzer::gotoFunctionEnd() { @@ -321,7 +321,7 @@ void Analyzer::gotoFunctionEnd() { tr("The selected instruction is not inside of a known function. Have you run an analysis of this region?")); } /** - * @brief Analyzer::cpuContextMenu + * @brief Returns the list of CPU context menu actions contributed by the Analyzer plugin. * @return */ QList Analyzer::cpuContextMenu() { @@ -346,7 +346,7 @@ QList Analyzer::cpuContextMenu() { } /** - * @brief Analyzer::doAnalysis + * @brief Runs a full analysis pass on the given region, showing progress and repainting the CPU view on completion. * @param region */ void Analyzer::doAnalysis(const std::shared_ptr ®ion) { @@ -361,7 +361,7 @@ void Analyzer::doAnalysis(const std::shared_ptr ®ion) { } /** - * @brief Analyzer::bonusMain + * @brief Seeds the known-function list with the address of main() if it can be located in the region. * @param data */ void Analyzer::bonusMain(RegionData *data) const { @@ -381,7 +381,7 @@ void Analyzer::bonusMain(RegionData *data) const { } /** - * @brief Analyzer::bonusSymbols + * @brief Seeds the known-function list with all code symbol addresses that fall within the region. * @param data */ void Analyzer::bonusSymbols(RegionData *data) { @@ -406,7 +406,7 @@ void Analyzer::bonusSymbols(RegionData *data) { } /** - * @brief Analyzer::bonusMarkedFunctions + * @brief Seeds the known-function list with all user-specified function addresses that fall within the region. * @param data */ void Analyzer::bonusMarkedFunctions(RegionData *data) { @@ -422,7 +422,7 @@ void Analyzer::bonusMarkedFunctions(RegionData *data) { } /** - * @brief Analyzer::identHeader + * @brief Hook for identifying executable header information within the region; currently a no-op. * @param data */ void Analyzer::identHeader(Analyzer::RegionData *data) { @@ -481,7 +481,7 @@ void Analyzer::computeNonReturning(Analyzer::RegionData *data) { } /** - * @brief Analyzer::collectFunctions + * @brief Performs recursive disassembly from all known entry points to build the complete function and basic block maps. * @param data */ void Analyzer::collectFunctions(Analyzer::RegionData *data) { @@ -632,7 +632,7 @@ void Analyzer::collectFunctions(Analyzer::RegionData *data) { } /** - * @brief Analyzer::collectFuzzyFunctions + * @brief Heuristically discovers additional function entry points by scanning for call targets and ENDBR instructions. * @param data */ void Analyzer::collectFuzzyFunctions(RegionData *data) { @@ -694,7 +694,7 @@ void Analyzer::collectFuzzyFunctions(RegionData *data) { } /** - * @brief Analyzer::analyze + * @brief Runs all analysis pipeline steps on the given region, caching results and emitting progress updates. * @param region */ void Analyzer::analyze(const std::shared_ptr ®ion) { @@ -770,7 +770,7 @@ void Analyzer::analyze(const std::shared_ptr ®ion) { } /** - * @brief Analyzer::category + * @brief Returns the role of the given address (function start, body, end, or unknown) relative to known functions. * @param address * @return */ @@ -792,7 +792,7 @@ IAnalyzer::AddressCategory Analyzer::category(edb::address_t address) const { } /** - * @brief Analyzer::functions + * @brief Returns the map of all functions found within the given memory region. * @param region * @return */ @@ -801,7 +801,7 @@ IAnalyzer::FunctionMap Analyzer::functions(const std::shared_ptr ®io } /** - * @brief Analyzer::functions + * @brief Returns the combined map of all functions across every analyzed region. * @return */ IAnalyzer::FunctionMap Analyzer::functions() const { @@ -813,7 +813,7 @@ IAnalyzer::FunctionMap Analyzer::functions() const { } /** - * @brief Analyzer::findContainingFunction + * @brief Finds the function that contains the given address and stores it in the output parameter. * @param address * @param function * @return @@ -853,7 +853,7 @@ bool Analyzer::findContainingFunction(edb::address_t address, Function *function } /** - * @brief Analyzer::forFuncsInRange + * @brief Invokes a callback for each known function whose body overlaps the given address range. * * Calls functor once for every function that exists between the start and end * addresses. This includes functions whose bodies include the start address. @@ -893,7 +893,7 @@ bool Analyzer::forFuncsInRange(edb::address_t start, edb::address_t end, std::fu } /** - * @brief Analyzer::bonusEntryPoint + * @brief Seeds the known-function list with the module's binary entry point address. * @param data */ void Analyzer::bonusEntryPoint(RegionData *data) const { @@ -917,7 +917,7 @@ void Analyzer::bonusEntryPoint(RegionData *data) const { } /** - * @brief Analyzer::invalidateAnalysis + * @brief Clears cached analysis for the given region and removes any user-specified functions within it. * @param region */ void Analyzer::invalidateAnalysis(const std::shared_ptr ®ion) { @@ -931,7 +931,7 @@ void Analyzer::invalidateAnalysis(const std::shared_ptr ®ion) { } /** - * @brief Analyzer::invalidateDynamicAnalysis + * @brief Resets the dynamically-computed analysis data for the given region without affecting user-specified functions. * @param region */ void Analyzer::invalidateDynamicAnalysis(const std::shared_ptr ®ion) { @@ -944,7 +944,7 @@ void Analyzer::invalidateDynamicAnalysis(const std::shared_ptr ®ion) } /** - * @brief Analyzer::invalidateAnalysis + * @brief Clears all cached analysis data and all user-specified function addresses. */ void Analyzer::invalidateAnalysis() { analysisInfo_.clear(); @@ -952,7 +952,7 @@ void Analyzer::invalidateAnalysis() { } /** - * @brief Analyzer::findContainingFunction + * @brief Returns the entry point of the function containing the given address, or an error if none is found. * @param address * @return the entry point of the function which contains
*/ diff --git a/plugins/Analyzer/AnalyzerWidget.cpp b/plugins/Analyzer/AnalyzerWidget.cpp index 372b327a4..31c0f07cb 100644 --- a/plugins/Analyzer/AnalyzerWidget.cpp +++ b/plugins/Analyzer/AnalyzerWidget.cpp @@ -27,7 +27,7 @@ namespace AnalyzerPlugin { /** - * @brief AnalyzerWidget::AnalyzerWidget + * @brief Constructs the analyzer overview bar widget and connects it to the disassembly scroll view. * @param parent * @param f */ @@ -55,7 +55,7 @@ AnalyzerWidget::AnalyzerWidget(QWidget *parent, Qt::WindowFlags f) } /** - * @brief AnalyzerWidget::paintEvent + * @brief Renders a proportional color-coded map of analyzed functions across the current memory region. * @param event */ void AnalyzerWidget::paintEvent(QPaintEvent *event) { @@ -138,7 +138,7 @@ void AnalyzerWidget::paintEvent(QPaintEvent *event) { } /** - * @brief AnalyzerWidget::mousePressEvent + * @brief Handles a click on the overview bar by jumping the disassembly view to the corresponding address. * @param event */ void AnalyzerWidget::mousePressEvent(QMouseEvent *event) { @@ -162,7 +162,7 @@ void AnalyzerWidget::mousePressEvent(QMouseEvent *event) { } /** - * @brief AnalyzerWidget::mouseReleaseEvent + * @brief Clears the mouse-pressed tracking state when the mouse button is released. * @param event */ void AnalyzerWidget::mouseReleaseEvent(QMouseEvent *event) { @@ -171,7 +171,7 @@ void AnalyzerWidget::mouseReleaseEvent(QMouseEvent *event) { } /** - * @brief AnalyzerWidget::mouseMoveEvent + * @brief Forwards mouse drag events to mousePressEvent to keep the disassembly view in sync with the cursor. * @param event */ void AnalyzerWidget::mouseMoveEvent(QMouseEvent *event) { diff --git a/plugins/Analyzer/DialogXRefs.cpp b/plugins/Analyzer/DialogXRefs.cpp index d604ea2cc..f11d0ae4d 100644 --- a/plugins/Analyzer/DialogXRefs.cpp +++ b/plugins/Analyzer/DialogXRefs.cpp @@ -9,7 +9,7 @@ namespace AnalyzerPlugin { /** - * @brief DialogXRefs::DialogXRefs + * @brief Constructs the cross-references dialog and sets up its UI. * @param parent */ DialogXRefs::DialogXRefs(QWidget *parent, Qt::WindowFlags f) @@ -18,7 +18,7 @@ DialogXRefs::DialogXRefs(QWidget *parent, Qt::WindowFlags f) } /** - * @brief DialogXRefs::on_listReferences_itemDoubleClicked + * @brief Jumps the disassembly view to the source address of the double-clicked cross-reference entry. * @param item */ void DialogXRefs::on_listReferences_itemDoubleClicked(QListWidgetItem *item) { @@ -28,7 +28,7 @@ void DialogXRefs::on_listReferences_itemDoubleClicked(QListWidgetItem *item) { } /** - * @brief DialogXRefs::addReference + * @brief Adds a new cross-reference to the dialog, formatting the source symbol name and target address. * @param ref */ void DialogXRefs::addReference(const std::pair &ref) { diff --git a/plugins/Analyzer/OptionsPage.cpp b/plugins/Analyzer/OptionsPage.cpp index c754fe336..134453f16 100644 --- a/plugins/Analyzer/OptionsPage.cpp +++ b/plugins/Analyzer/OptionsPage.cpp @@ -10,7 +10,7 @@ namespace AnalyzerPlugin { /** - * @brief OptionsPage::OptionsPage + * @brief Constructs the Analyzer options page and connects the fuzzy-logic checkbox to its handler. * @param parent * @param f */ @@ -22,7 +22,7 @@ OptionsPage::OptionsPage(QWidget *parent, Qt::WindowFlags f) } /** - * @brief OptionsPage::showEvent + * @brief Populates the options page controls from saved settings when it becomes visible. * @param event */ void OptionsPage::showEvent(QShowEvent *event) { @@ -33,7 +33,7 @@ void OptionsPage::showEvent(QShowEvent *event) { } /** - * @brief OptionsPage::checkBoxToggled + * @brief Persists the fuzzy-logic functions enabled setting whenever the checkbox state changes. * @param checked */ void OptionsPage::checkBoxToggled(bool checked) { diff --git a/plugins/Analyzer/SpecifiedFunctions.cpp b/plugins/Analyzer/SpecifiedFunctions.cpp index 22fb5dd7d..d96cf15d0 100644 --- a/plugins/Analyzer/SpecifiedFunctions.cpp +++ b/plugins/Analyzer/SpecifiedFunctions.cpp @@ -17,7 +17,7 @@ namespace AnalyzerPlugin { /** - * @brief SpecifiedFunctions::SpecifiedFunctions + * @brief Constructs the specified functions dialog and sets up its list model, filter, and refresh button. * @param parent * @param f */ @@ -46,9 +46,7 @@ SpecifiedFunctions::SpecifiedFunctions(QWidget *parent, Qt::WindowFlags f) } /** - * @brief SpecifiedFunctions::on_function_list_doubleClicked - * - * follows the found item in the data view + * @brief Jumps the disassembly view to the address corresponding to the double-clicked list entry. * * @param index */ @@ -61,7 +59,7 @@ void SpecifiedFunctions::on_function_list_doubleClicked(const QModelIndex &index } /** - * @brief SpecifiedFunctions::doFind + * @brief Refreshes the list with all currently user-specified function addresses. */ void SpecifiedFunctions::doFind() { @@ -76,7 +74,7 @@ void SpecifiedFunctions::doFind() { } /** - * @brief SpecifiedFunctions::showEvent + * @brief Refreshes the user-specified function list every time the dialog becomes visible. */ void SpecifiedFunctions::showEvent(QShowEvent *) { buttonRefresh_->setEnabled(false); diff --git a/plugins/Assembler/Assembler.cpp b/plugins/Assembler/Assembler.cpp index 5a0eb8a9f..eda6adc51 100644 --- a/plugins/Assembler/Assembler.cpp +++ b/plugins/Assembler/Assembler.cpp @@ -17,7 +17,7 @@ namespace AssemblerPlugin { /** - * @brief Assembler::Assembler + * @brief Constructs the Assembler plugin object. * @param parent */ Assembler::Assembler(QObject *parent) @@ -25,14 +25,14 @@ Assembler::Assembler(QObject *parent) } /** - * @brief Assembler::~Assembler + * @brief Destroys the Assembler plugin and frees the assembler dialog. */ Assembler::~Assembler() { delete dialog_; } /** - * @brief Assembler::cpuContextMenu + * @brief Returns the CPU context menu actions contributed by the Assembler plugin. * @return */ QList Assembler::cpuContextMenu() { @@ -49,7 +49,7 @@ QList Assembler::cpuContextMenu() { } /** - * @brief Assembler::menu + * @brief Returns nullptr, as the Assembler plugin contributes no top-level menu. * @param parent * @return */ @@ -59,7 +59,7 @@ QMenu *Assembler::menu(QWidget *parent) { } /** - * @brief Assembler::showDialog + * @brief Opens the assembler dialog at the currently selected CPU address. */ void Assembler::showDialog() { @@ -77,7 +77,7 @@ void Assembler::showDialog() { } /** - * @brief Assembler::optionsPage + * @brief Returns the plugin's configuration options widget. * @return */ QWidget *Assembler::optionsPage() { diff --git a/plugins/Assembler/DialogAssembler.cpp b/plugins/Assembler/DialogAssembler.cpp index 03775c6fc..e5dba7fb7 100644 --- a/plugins/Assembler/DialogAssembler.cpp +++ b/plugins/Assembler/DialogAssembler.cpp @@ -33,7 +33,7 @@ namespace AssemblerPlugin { namespace { /** - * @brief escape_html + * @brief Returns an HTML-escaped copy of the given string. * @param str * @return */ @@ -42,7 +42,7 @@ QString escape_html(const QString &str) { } /** - * @brief assembler_description + * @brief Loads and returns the XML description for the currently configured assembler helper. * @return */ QDomDocument assembler_description() { @@ -68,7 +68,7 @@ QDomDocument assembler_description() { } /** - * @brief fixupSyntax + * @brief Translates operand size keywords in an instruction string to the syntax expected by the active assembler. * @param insn * @return */ @@ -109,7 +109,7 @@ QString fixup_syntax(QString insn) { } /** - * @brief DialogAssembler::DialogAssembler + * @brief Constructs the assembler dialog and configures focus policies on its button widgets. * @param parent * @param f */ @@ -124,7 +124,7 @@ DialogAssembler::DialogAssembler(QWidget *parent, Qt::WindowFlags f) } /** - * @brief DialogAssembler::setAddress + * @brief Sets the target address and pre-fills the assembly input with the current instruction's text. * @param address */ void DialogAssembler::setAddress(edb::address_t address) { @@ -142,7 +142,7 @@ void DialogAssembler::setAddress(edb::address_t address) { } /** - * @brief DialogAssembler::on_buttonBox_accepted + * @brief Assembles the entered instruction and patches it into the debugged process at the target address. */ void DialogAssembler::on_buttonBox_accepted() { @@ -276,7 +276,7 @@ void DialogAssembler::on_buttonBox_accepted() { } /** - * @brief DialogAssembler::showEvent + * @brief Updates the assembler label and focuses the assembly input when the dialog becomes visible. * @param event */ void DialogAssembler::showEvent(QShowEvent *event) { diff --git a/plugins/Assembler/OptionsPage.cpp b/plugins/Assembler/OptionsPage.cpp index 61316e716..b8cc4285d 100644 --- a/plugins/Assembler/OptionsPage.cpp +++ b/plugins/Assembler/OptionsPage.cpp @@ -13,7 +13,7 @@ namespace AssemblerPlugin { /** - * @brief OptionsPage::OptionsPage + * @brief Constructs the Assembler options page, populating the assembler list from the XML resource for the current architecture. * @param parent * @param f */ @@ -59,7 +59,7 @@ OptionsPage::OptionsPage(QWidget *parent, Qt::WindowFlags f) } /** - * @brief OptionsPage::on_assemblerName_currentIndexChanged + * @brief Saves the newly selected assembler name to persistent settings when the combo box selection changes. * @param text */ void OptionsPage::on_assemblerName_currentIndexChanged(const QString &text) { diff --git a/plugins/Backtrace/Backtrace.cpp b/plugins/Backtrace/Backtrace.cpp index f8758e72f..9b156c794 100644 --- a/plugins/Backtrace/Backtrace.cpp +++ b/plugins/Backtrace/Backtrace.cpp @@ -14,7 +14,7 @@ namespace BacktracePlugin { /** - * @brief Backtrace::Backtrace + * @brief Constructs the Backtrace plugin object. * @param parent */ Backtrace::Backtrace(QObject *parent) @@ -22,14 +22,14 @@ Backtrace::Backtrace(QObject *parent) } /** - * @brief Backtrace::~Backtrace + * @brief Destroys the Backtrace plugin and frees the backtrace dialog. */ Backtrace::~Backtrace() { delete dialog_; } /** - * @brief Backtrace::menu + * @brief Creates and returns the Call Stack plugin menu with a backtrace action, building it on first call. * @param parent * @return */ @@ -49,7 +49,7 @@ QMenu *Backtrace::menu(QWidget *parent) { } /** - * @brief Backtrace::showMenu + * @brief Opens or raises the backtrace dialog. */ void Backtrace::showMenu() { if (!dialog_) { diff --git a/plugins/Backtrace/CallStack.cpp b/plugins/Backtrace/CallStack.cpp index e7b76f070..7e2ce446c 100644 --- a/plugins/Backtrace/CallStack.cpp +++ b/plugins/Backtrace/CallStack.cpp @@ -18,16 +18,15 @@ // TODO: This may be specific to x86... Maybe abstract this in the future. /** - * @brief CallStack::CallStack + * @brief Constructs a CallStack by immediately snapshotting the current call stack state. */ CallStack::CallStack() { getCallStack(); } /** - * @brief CallStack::get_call_stack + * @brief Walks the stack frame chain from the current frame pointer to build the list of return addresses. * - * Gets the state of the call stack at the time the object is created. */ void CallStack::getCallStack() { /* @@ -94,9 +93,7 @@ void CallStack::getCallStack() { } /** - * @brief CallStack::operator [] - * - * Provides array-like access to the stack_frames_ + * @brief Returns a pointer to the stack frame at the given index, or nullptr if the index is out of range. * * @param index * @return @@ -110,7 +107,7 @@ CallStack::StackFrame *CallStack::operator[](size_t index) { } /** - * @brief CallStack::size + * @brief Returns the number of frames captured in the call stack. * @return the number of frames in the call stack. */ size_t CallStack::size() const { @@ -118,7 +115,7 @@ size_t CallStack::size() const { } /** - * @brief CallStack::top + * @brief Returns a pointer to the topmost (most recent) stack frame, or nullptr if the stack is empty. * @return a pointer to the frame at the top of the call stack or nullptr * if there are no frames on the stack */ @@ -131,7 +128,7 @@ CallStack::StackFrame *CallStack::top() { } /** - * @brief CallStack::bottom + * @brief Returns a pointer to the bottommost (oldest) stack frame, or nullptr if the stack is empty. * @return a pointer to the frame at the bottom of the call stack or nullptr * if there are no frames on the stack */ @@ -144,9 +141,7 @@ CallStack::StackFrame *CallStack::bottom() { } /** - * @brief CallStack::push - * - * Pushes a stack frame onto the top of the call stack. + * @brief Pushes a new stack frame onto the top of the call stack. * * @param frame */ diff --git a/plugins/Backtrace/DialogBacktrace.cpp b/plugins/Backtrace/DialogBacktrace.cpp index b92d2c70a..1fb57a65b 100644 --- a/plugins/Backtrace/DialogBacktrace.cpp +++ b/plugins/Backtrace/DialogBacktrace.cpp @@ -23,7 +23,7 @@ constexpr int FirstRow = 0; constexpr int ReturnColumn = 1; /** - * @brief address_from_table + * @brief Extracts the edb::address_t stored in the UserRole data of the given table widget item. * @param item * @return the edb::address_t represented by the given *item and sets *ok to * true if successful or false, otherwise. @@ -34,7 +34,7 @@ edb::address_t address_from_table(const QTableWidgetItem *item) { } /** - * @brief is_ret + * @brief Returns true if the given column number corresponds to the return address column. * @param column * @return true if the column number is the one dedicated to return addresses. * otherwise, false. @@ -44,7 +44,7 @@ bool is_ret(int column) { } /** - * @brief is_ret + * @brief Returns true if the given table widget item resides in the return address column. * @param item * @return true if the selected item is in the column for return addresses. * otherwise, false. @@ -60,7 +60,7 @@ bool is_ret(const QTableWidgetItem *item) { } /** - * @brief DialogBacktrace::DialogBacktrace + * @brief Constructs the call stack backtrace dialog, setting up its table widget and "Return To" button. * * Initializes the Dialog with its QTableWidget. This class over all is * designed to analyze the stack for return addresses to show the user the @@ -117,7 +117,7 @@ DialogBacktrace::DialogBacktrace(QWidget *parent, Qt::WindowFlags f) } /** - * @brief DialogBacktrace::showEvent + * @brief Connects the UI update signal and populates the call stack table when the dialog is shown. * * Ensures the column sizes are correct, connects the sig/slot for syncing with * the Debugger UI, then populates the Call Stack table. @@ -135,7 +135,7 @@ void DialogBacktrace::showEvent(QShowEvent *) { } /** - * @brief DialogBacktrace::populateTable + * @brief Clears and repopulates the call stack table with current stack frame entries. * * Populates the Call Stack table with stack frame entries. * @@ -207,7 +207,7 @@ void DialogBacktrace::populateTable() { } /** - * @brief DialogBacktrace::hideEvent + * @brief Disconnects the UI update signal when the dialog is hidden to avoid unnecessary table rebuilds. * * Disconnects the signal/slot when the dialog goes away so that * populate_table() is not called unnecessarily. @@ -218,7 +218,7 @@ void DialogBacktrace::hideEvent(QHideEvent *) { } /** - * @brief DialogBacktrace::on_tableWidgetCallStack_itemDoubleClicked + * @brief Jumps the disassembly view to the address of the double-clicked call stack table entry. * * Jumps to the double-clicked address in the CPU/Disassembly view. * @@ -229,7 +229,7 @@ void DialogBacktrace::on_tableWidgetCallStack_itemDoubleClicked(QTableWidgetItem } /** - * @brief DialogBacktrace::on_tableWidgetCallStack_cellClicked + * @brief Enables or disables the "Return To" button based on whether the clicked cell is a return address column. * * Enables the "Run To Return" button if the selected cell is in the column for * return addresses. Disables it, otherwise. diff --git a/plugins/BinaryInfo/BinaryInfo.cpp b/plugins/BinaryInfo/BinaryInfo.cpp index 64bf00d9b..4da1995a3 100644 --- a/plugins/BinaryInfo/BinaryInfo.cpp +++ b/plugins/BinaryInfo/BinaryInfo.cpp @@ -23,7 +23,7 @@ namespace BinaryInfoPlugin { /** - * @brief BinaryInfo::BinaryInfo + * @brief Constructs the BinaryInfo plugin object. * @param parent */ BinaryInfo::BinaryInfo(QObject *parent) @@ -31,7 +31,7 @@ BinaryInfo::BinaryInfo(QObject *parent) } /** - * @brief BinaryInfo::privateInit + * @brief Registers ELF32, ELF64, and PE32 binary parsers and sets this plugin as the symbol generator. */ void BinaryInfo::privateInit() { @@ -51,7 +51,7 @@ void BinaryInfo::privateInit() { } /** - * @brief BinaryInfo::optionsPage + * @brief Returns the plugin's configuration options widget. * @return */ QWidget *BinaryInfo::optionsPage() { @@ -59,7 +59,7 @@ QWidget *BinaryInfo::optionsPage() { } /** - * @brief BinaryInfo::menu + * @brief Creates and returns the Binary Info plugin menu, building it on first call. * @param parent * @return */ @@ -76,7 +76,7 @@ QMenu *BinaryInfo::menu(QWidget *parent) { } /** - * @brief BinaryInfo::exploreHeader + * @brief Opens or raises the memory region browser dialog for exploring binary headers. */ void BinaryInfo::exploreHeader() { static auto dialog = new DialogRegions(edb::v1::debugger_ui); @@ -84,7 +84,7 @@ void BinaryInfo::exploreHeader() { } /** - * @brief BinaryInfo::extraArguments + * @brief Returns the extra command-line argument description string for the --symbols option. * @return */ QString BinaryInfo::extraArguments() const { @@ -92,7 +92,7 @@ QString BinaryInfo::extraArguments() const { } /** - * @brief BinaryInfo::parseArguments + * @brief Handles the --symbols command-line argument to generate symbol files, returning ARG_EXIT if processed. * @param args * @return */ @@ -107,7 +107,7 @@ IPlugin::ArgumentStatus BinaryInfo::parseArguments(QStringList &args) { } /** - * @brief BinaryInfo::generateSymbolFile + * @brief Generates a symbol file for the given binary and writes it to the specified output path. * @param filename * @param symbol_file * @return diff --git a/plugins/BinaryInfo/DialogRegions.cpp b/plugins/BinaryInfo/DialogRegions.cpp index a0a7023ac..2521b52af 100644 --- a/plugins/BinaryInfo/DialogRegions.cpp +++ b/plugins/BinaryInfo/DialogRegions.cpp @@ -16,7 +16,7 @@ namespace BinaryInfoPlugin { /** - * @brief DialogRegions::DialogRegions + * @brief Constructs the memory regions dialog and sets up its table, search filter, and Explore button. * @param parent */ DialogRegions::DialogRegions(QWidget *parent, Qt::WindowFlags f) @@ -56,7 +56,7 @@ DialogRegions::DialogRegions(QWidget *parent, Qt::WindowFlags f) } /** - * @brief DialogRegions::showEvent + * @brief Refreshes the region list from the current memory map when the dialog becomes visible. */ void DialogRegions::showEvent(QShowEvent *) { filterModel_->setFilterKeyColumn(3); diff --git a/plugins/BinaryInfo/ELF32.cpp b/plugins/BinaryInfo/ELF32.cpp index ab3568dea..7e6849a0f 100644 --- a/plugins/BinaryInfo/ELF32.cpp +++ b/plugins/BinaryInfo/ELF32.cpp @@ -12,7 +12,7 @@ namespace BinaryInfoPlugin { /** - * @brief ELF32::native + * @brief Returns true if this 32-bit ELF binary matches the architecture edb was built for. * @return true if this binary is native to the arch edb was built for */ template <> diff --git a/plugins/BinaryInfo/ELF64.cpp b/plugins/BinaryInfo/ELF64.cpp index b74e6105b..aacde90a3 100644 --- a/plugins/BinaryInfo/ELF64.cpp +++ b/plugins/BinaryInfo/ELF64.cpp @@ -12,7 +12,7 @@ namespace BinaryInfoPlugin { /** - * @brief ELF64::native + * @brief Returns true if this 64-bit ELF binary matches the architecture edb was built for. * @return true if this binary is native to the arch edb was built for */ template <> diff --git a/plugins/BinaryInfo/PE32.cpp b/plugins/BinaryInfo/PE32.cpp index 55f124415..dcdfac2e5 100644 --- a/plugins/BinaryInfo/PE32.cpp +++ b/plugins/BinaryInfo/PE32.cpp @@ -23,7 +23,7 @@ const char *PEBinaryException::what() const noexcept { } /** - * @brief PE32::PE32 + * @brief Constructs a PE32 object by reading and validating the DOS and PE headers from the given memory region. * @param region */ PE32::PE32(std::shared_ptr region) @@ -63,7 +63,7 @@ PE32::PE32(std::shared_ptr region) } /** - * @brief PE32::entryPoint + * @brief Returns the relative virtual address of the PE binary's entry point. * @return */ edb::address_t PE32::entryPoint() { @@ -72,7 +72,7 @@ edb::address_t PE32::entryPoint() { } /** - * @brief PE32::native + * @brief Returns true, since PE32 binaries are always treated as native to the current architecture. * @return */ bool PE32::native() const { @@ -80,7 +80,7 @@ bool PE32::native() const { } /** - * @brief PE32::headerSize + * @brief Returns the combined size in bytes of the DOS stub and PE header. * @return */ size_t PE32::headerSize() const { @@ -88,7 +88,7 @@ size_t PE32::headerSize() const { } /** - * @brief PE32::headers + * @brief Returns a list containing the single header entry covering the DOS and PE header region. * @return a list of all headers in this binary */ std::vector PE32::headers() const { @@ -98,7 +98,7 @@ std::vector PE32::headers() const { } /** - * @brief PE32::header + * @brief Returns nullptr; structured PE header access is not implemented via this method. * @return a copy of the file header or nullptr if the region wasn't a valid, * known binary type */ diff --git a/plugins/BinarySearcher/BinarySearcher.cpp b/plugins/BinarySearcher/BinarySearcher.cpp index 83e8de0b6..5afdbe436 100644 --- a/plugins/BinarySearcher/BinarySearcher.cpp +++ b/plugins/BinarySearcher/BinarySearcher.cpp @@ -13,7 +13,7 @@ namespace BinarySearcherPlugin { /** - * @brief BinarySearcher::BinarySearcher + * @brief Constructs the BinarySearcher plugin object. * @param parent */ BinarySearcher::BinarySearcher(QObject *parent) @@ -21,7 +21,7 @@ BinarySearcher::BinarySearcher(QObject *parent) } /** - * @brief BinarySearcher::menu + * @brief Creates and returns the Binary Searcher plugin menu, building it on first call. * @param parent * @return */ @@ -38,7 +38,7 @@ QMenu *BinarySearcher::menu(QWidget *parent) { } /** - * @brief BinarySearcher::stackContextMenu + * @brief Returns the stack context menu actions contributed by the BinarySearcher plugin. * @return */ QList BinarySearcher::stackContextMenu() { @@ -53,7 +53,7 @@ QList BinarySearcher::stackContextMenu() { } /** - * @brief BinarySearcher::showMenu + * @brief Opens or raises the binary string search dialog. */ void BinarySearcher::showMenu() { static auto dialog = new DialogBinaryString(edb::v1::debugger_ui); @@ -61,7 +61,7 @@ void BinarySearcher::showMenu() { } /** - * @brief BinarySearcher::mnuStackFindAscii + * @brief Opens or raises the ASCII string search dialog from the stack context menu. */ void BinarySearcher::mnuStackFindAscii() { static auto dialog = new DialogAsciiString(edb::v1::debugger_ui); diff --git a/plugins/BinarySearcher/DialogAsciiString.cpp b/plugins/BinarySearcher/DialogAsciiString.cpp index 217cf0586..8e15631a9 100644 --- a/plugins/BinarySearcher/DialogAsciiString.cpp +++ b/plugins/BinarySearcher/DialogAsciiString.cpp @@ -26,7 +26,7 @@ namespace BinarySearcherPlugin { /** - * @brief DialogAsciiString::DialogAsciiString + * @brief Constructs the ASCII string search dialog and sets up its Find button. * @param parent * @param f */ @@ -48,7 +48,7 @@ DialogAsciiString::DialogAsciiString(QWidget *parent, Qt::WindowFlags f) } /** - * @brief DialogAsciiString::doFind + * @brief Searches stack memory for stack-aligned pointers that point to the entered ASCII string. * * find *stack aligned pointers* to exact string matches */ @@ -114,7 +114,7 @@ void DialogAsciiString::doFind() { } /** - * @brief DialogAsciiString::showEvent + * @brief Focuses the ASCII input field when the dialog becomes visible. * @param event */ void DialogAsciiString::showEvent(QShowEvent *event) { diff --git a/plugins/BinarySearcher/DialogBinaryString.cpp b/plugins/BinarySearcher/DialogBinaryString.cpp index cf8a4a3e9..e4e29ba50 100644 --- a/plugins/BinarySearcher/DialogBinaryString.cpp +++ b/plugins/BinarySearcher/DialogBinaryString.cpp @@ -21,7 +21,7 @@ namespace BinarySearcherPlugin { /** - * @brief DialogBinaryString::DialogBinaryString + * @brief Constructs the binary string search dialog and sets up its Find button and input widget. * @param parent * @param f */ @@ -47,7 +47,7 @@ DialogBinaryString::DialogBinaryString(QWidget *parent, Qt::WindowFlags f) } /** - * @brief DialogBinaryString::doFind + * @brief Searches all mapped memory regions for occurrences of the entered binary pattern. */ void DialogBinaryString::doFind() { const QByteArray b = ui.binaryString->value(); diff --git a/plugins/BinarySearcher/DialogResults.cpp b/plugins/BinarySearcher/DialogResults.cpp index 5236ef942..05645a619 100644 --- a/plugins/BinarySearcher/DialogResults.cpp +++ b/plugins/BinarySearcher/DialogResults.cpp @@ -10,7 +10,7 @@ namespace BinarySearcherPlugin { /** - * @brief DialogResults::DialogResults + * @brief Constructs the search results dialog and sets up its UI. * @param parent * @param f */ @@ -21,9 +21,10 @@ DialogResults::DialogResults(QWidget *parent, Qt::WindowFlags f) } /** + * @brief Navigates to the double-clicked result address in the appropriate view (code, stack, or data). + * * follows the found item in the appropriate view * - * @brief DialogResults::on_listWidget_itemDoubleClicked * @param item */ void DialogResults::on_listWidget_itemDoubleClicked(QListWidgetItem *item) { @@ -42,7 +43,7 @@ void DialogResults::on_listWidget_itemDoubleClicked(QListWidgetItem *item) { } /** - * @brief DialogResults::addResult + * @brief Adds a search result entry with the given region type and address to the results list. * @param address */ void DialogResults::addResult(RegionType region, edb::address_t address) { @@ -53,7 +54,7 @@ void DialogResults::addResult(RegionType region, edb::address_t address) { } /** - * @brief DialogResults::resultCount + * @brief Returns the total number of results currently shown in the list. * @return */ int DialogResults::resultCount() const { diff --git a/plugins/Bookmarks/BookmarkWidget.cpp b/plugins/Bookmarks/BookmarkWidget.cpp index 7a184fe25..dd93fc5d4 100644 --- a/plugins/Bookmarks/BookmarkWidget.cpp +++ b/plugins/Bookmarks/BookmarkWidget.cpp @@ -17,7 +17,7 @@ namespace BookmarksPlugin { /** - * @brief BookmarkWidget::BookmarkWidget + * @brief Constructs the bookmark list widget, sets up its model, and creates toggle/conditional breakpoint actions. * @param parent * @param f */ @@ -40,7 +40,7 @@ BookmarkWidget::BookmarkWidget(QWidget *parent, Qt::WindowFlags f) } /** - * @brief BookmarkWidget::on_tableView_doubleClicked + * @brief Navigates to the double-clicked bookmark address, or opens an inline editor for type or comment columns. * @param index */ void BookmarkWidget::on_tableView_doubleClicked(const QModelIndex &index) { @@ -86,7 +86,7 @@ void BookmarkWidget::on_tableView_doubleClicked(const QModelIndex &index) { } /** - * @brief BookmarkWidget::buttonAddClicked + * @brief Prompts the user for an address expression and adds it as a new bookmark. */ void BookmarkWidget::buttonAddClicked() { @@ -96,7 +96,7 @@ void BookmarkWidget::buttonAddClicked() { } /** - * @brief BookmarkWidget::buttonDelClicked + * @brief Removes the currently selected bookmark from the list. */ void BookmarkWidget::buttonDelClicked() { @@ -110,14 +110,14 @@ void BookmarkWidget::buttonDelClicked() { } /** - * @brief BookmarkWidget::buttonClearClicked + * @brief Clears all bookmarks from the list. */ void BookmarkWidget::buttonClearClicked() { model_->clearBookmarks(); } /** - * @brief BookmarkWidget::toggleBreakpoint + * @brief Toggles a breakpoint at each currently selected bookmark's address. */ void BookmarkWidget::toggleBreakpoint() { @@ -131,7 +131,7 @@ void BookmarkWidget::toggleBreakpoint() { } /** - * @brief BookmarkWidget::addConditionalBreakpoint + * @brief Creates a breakpoint with an optional condition expression at the selected bookmark's address. */ void BookmarkWidget::addConditionalBreakpoint() { @@ -154,7 +154,7 @@ void BookmarkWidget::addConditionalBreakpoint() { } /** - * @brief BookmarkWidget::addAddress + * @brief Adds the given address as a new bookmark if it is not already in the list. * @param address * @param type * @param comment @@ -179,7 +179,7 @@ void BookmarkWidget::addAddress(edb::address_t address, const QString &type, con } /** - * @brief BookmarkWidget::shortcut + * @brief Navigates to the bookmark at the given index, used by the Ctrl+0–9 keyboard shortcuts. * @param index */ void BookmarkWidget::shortcut(int index) { @@ -203,7 +203,7 @@ void BookmarkWidget::shortcut(int index) { } /** - * @brief BookmarkWidget::on_tableView_customContextMenuRequested + * @brief Shows a context menu offering add, delete, clear, comment, type, and breakpoint actions for the selected entry. * @param pos */ void BookmarkWidget::on_tableView_customContextMenuRequested(const QPoint &pos) { @@ -270,7 +270,7 @@ void BookmarkWidget::on_tableView_customContextMenuRequested(const QPoint &pos) } /** - * @brief BookmarkWidget::entries + * @brief Returns a copy of the current bookmark list. * @return */ QList BookmarkWidget::entries() const { diff --git a/plugins/Bookmarks/Bookmarks.cpp b/plugins/Bookmarks/Bookmarks.cpp index 812780062..7281ad63a 100644 --- a/plugins/Bookmarks/Bookmarks.cpp +++ b/plugins/Bookmarks/Bookmarks.cpp @@ -16,7 +16,7 @@ namespace BookmarksPlugin { /** - * @brief Bookmarks::Bookmarks + * @brief Constructs the Bookmarks plugin object. * @param parent */ Bookmarks::Bookmarks(QObject *parent) @@ -24,7 +24,7 @@ Bookmarks::Bookmarks(QObject *parent) } /** - * @brief Bookmarks::menu + * @brief Creates the Bookmarks dock widget, registers Ctrl+0–9 shortcuts, and builds the menu on first call. * @param parent * @return */ @@ -80,7 +80,7 @@ QMenu *Bookmarks::menu(QWidget *parent) { } /** - * @brief Bookmarks::cpuContextMenu + * @brief Returns the CPU context menu actions contributed by the Bookmarks plugin. * @return */ QList Bookmarks::cpuContextMenu() { @@ -95,14 +95,14 @@ QList Bookmarks::cpuContextMenu() { } /** - * @brief Bookmarks::addBookmarkMenu + * @brief Adds the currently selected CPU address as a bookmark. */ void Bookmarks::addBookmarkMenu() { bookmarkWidget_->addAddress(edb::v1::cpu_selected_address()); } /** - * @brief Bookmarks::saveState + * @brief Serializes the current bookmark list to a QVariantMap for session state persistence. * @return */ QVariantMap Bookmarks::saveState() const { @@ -123,7 +123,7 @@ QVariantMap Bookmarks::saveState() const { } /** - * @brief Bookmarks::restoreState + * @brief Restores the bookmark list from a previously serialized QVariantMap session state. * @param state */ void Bookmarks::restoreState(const QVariantMap &state) { diff --git a/plugins/Bookmarks/BookmarksModel.cpp b/plugins/Bookmarks/BookmarksModel.cpp index 108b11677..135f3a1e9 100644 --- a/plugins/Bookmarks/BookmarksModel.cpp +++ b/plugins/Bookmarks/BookmarksModel.cpp @@ -10,7 +10,7 @@ namespace BookmarksPlugin { /** - * @brief BookmarksModel::BookmarksModel + * @brief Constructs the bookmarks model and loads the breakpoint and current-instruction indicator icons. * @param parent */ BookmarksModel::BookmarksModel(QObject *parent) @@ -21,7 +21,7 @@ BookmarksModel::BookmarksModel(QObject *parent) } /** - * @brief BookmarksModel::headerData + * @brief Returns the column header labels: Address, Type, and Comment. * @param section * @param orientation * @param role @@ -44,7 +44,7 @@ QVariant BookmarksModel::headerData(int section, Qt::Orientation orientation, in } /** - * @brief BookmarksModel::data + * @brief Returns display text and decoration icons for each bookmark cell based on the role. * @param index * @param role * @return @@ -121,7 +121,7 @@ QVariant BookmarksModel::data(const QModelIndex &index, int role) const { } /** - * @brief BookmarksModel::addBookmark + * @brief Appends a new bookmark entry to the list and notifies the view. * @param r */ void BookmarksModel::addBookmark(const Bookmark &r) { @@ -131,7 +131,7 @@ void BookmarksModel::addBookmark(const Bookmark &r) { } /** - * @brief BookmarksModel::clearBookmarks + * @brief Removes all bookmarks from the model and notifies the view. */ void BookmarksModel::clearBookmarks() { beginResetModel(); @@ -140,7 +140,7 @@ void BookmarksModel::clearBookmarks() { } /** - * @brief BookmarksModel::index + * @brief Returns the model index for the given row and column, embedding a pointer to the bookmark entry. * @param row * @param column * @param parent @@ -166,7 +166,7 @@ QModelIndex BookmarksModel::index(int row, int column, const QModelIndex &parent } /** - * @brief BookmarksModel::parent + * @brief Returns an invalid index since bookmarks form a flat list with no hierarchical parent. * @param index * @return */ @@ -176,7 +176,7 @@ QModelIndex BookmarksModel::parent(const QModelIndex &index) const { } /** - * @brief BookmarksModel::rowCount + * @brief Returns the number of bookmarks currently stored in the model. * @param parent * @return */ @@ -186,7 +186,7 @@ int BookmarksModel::rowCount(const QModelIndex &parent) const { } /** - * @brief BookmarksModel::columnCount + * @brief Returns 3, representing the fixed Address, Type, and Comment columns. * @param parent * @return */ @@ -196,7 +196,7 @@ int BookmarksModel::columnCount(const QModelIndex &parent) const { } /** - * @brief BookmarksModel::setComment + * @brief Updates the comment string for the bookmark at the given index and notifies the view. * @param index * @param comment */ @@ -213,7 +213,7 @@ void BookmarksModel::setComment(const QModelIndex &index, const QString &comment } /** - * @brief BookmarksModel::setType + * @brief Updates the bookmark type for the entry at the given index and notifies the view. * @param index * @param type */ @@ -231,7 +231,7 @@ void BookmarksModel::setType(const QModelIndex &index, const QString &type) { } /** - * @brief BookmarksModel::updateList + * @brief Invalidates all displayed bookmark data and triggers a full view refresh. */ void BookmarksModel::updateList() { // Every time the disassembly view changes, all the bookmark data is invalidated. @@ -245,7 +245,7 @@ void BookmarksModel::updateList() { } /** - * @brief BookmarksModel::deleteBookmark + * @brief Removes the bookmark at the given index from the model and notifies the view. * @param index */ void BookmarksModel::deleteBookmark(const QModelIndex &index) { diff --git a/plugins/BreakpointManager/BreakpointManager.cpp b/plugins/BreakpointManager/BreakpointManager.cpp index aad006eb2..f91af84d9 100644 --- a/plugins/BreakpointManager/BreakpointManager.cpp +++ b/plugins/BreakpointManager/BreakpointManager.cpp @@ -10,7 +10,7 @@ namespace BreakpointManagerPlugin { /** - * @brief BreakpointManager::BreakpointManager + * @brief Constructs the BreakpointManager plugin object. * @param parent */ BreakpointManager::BreakpointManager(QObject *parent) @@ -18,12 +18,12 @@ BreakpointManager::BreakpointManager(QObject *parent) } /** - * @brief BreakpointManager::~BreakpointManager + * @brief Default destructor for the BreakpointManager plugin. */ BreakpointManager::~BreakpointManager() = default; /** - * @brief BreakpointManager::menu + * @brief Returns nullptr, as the BreakpointManager plugin contributes no top-level menu. * @param parent * @return */ diff --git a/plugins/CheckVersion/CheckVersion.cpp b/plugins/CheckVersion/CheckVersion.cpp index 640a58669..ea7b279a6 100644 --- a/plugins/CheckVersion/CheckVersion.cpp +++ b/plugins/CheckVersion/CheckVersion.cpp @@ -24,7 +24,7 @@ namespace CheckVersionPlugin { /** - * @brief CheckVersion::CheckVersion + * @brief Constructs the CheckVersion plugin object. * @param parent */ CheckVersion::CheckVersion(QObject *parent) @@ -32,7 +32,7 @@ CheckVersion::CheckVersion(QObject *parent) } /** - * @brief CheckVersion::privateInit + * @brief Performs an automatic version check on startup if enabled in settings. */ void CheckVersion::privateInit() { QSettings settings; @@ -42,7 +42,7 @@ void CheckVersion::privateInit() { } /** - * @brief CheckVersion::optionsPage + * @brief Returns the plugin's configuration options widget. * @return */ QWidget *CheckVersion::optionsPage() { @@ -50,7 +50,7 @@ QWidget *CheckVersion::optionsPage() { } /** - * @brief CheckVersion::menu + * @brief Creates and returns the CheckVersion plugin menu, building it on first call. * @param parent * @return */ @@ -67,7 +67,7 @@ QMenu *CheckVersion::menu(QWidget *parent) { } /** - * @brief CheckVersion::doCheck + * @brief Initiates an HTTP request to fetch the latest version information from the project server. */ void CheckVersion::doCheck() { @@ -84,7 +84,7 @@ void CheckVersion::doCheck() { } /** - * @brief CheckVersion::setProxy + * @brief Configures the network manager's proxy from the HTTP_PROXY environment variable or system settings. * @param url */ void CheckVersion::setProxy(const QUrl &url) { @@ -116,7 +116,7 @@ void CheckVersion::setProxy(const QUrl &url) { } /** - * @brief CheckVersion::showMenu + * @brief Triggers a manual version check when the user selects it from the menu. */ void CheckVersion::showMenu() { initialCheck_ = false; @@ -124,7 +124,7 @@ void CheckVersion::showMenu() { } /** - * @brief CheckVersion::requestFinished + * @brief Handles the HTTP version check response, showing a notification dialog if a newer version is available. * @param reply */ void CheckVersion::requestFinished(QNetworkReply *reply) { diff --git a/plugins/CheckVersion/OptionsPage.cpp b/plugins/CheckVersion/OptionsPage.cpp index 3c70062cc..c4e6a3c90 100644 --- a/plugins/CheckVersion/OptionsPage.cpp +++ b/plugins/CheckVersion/OptionsPage.cpp @@ -10,7 +10,7 @@ namespace CheckVersionPlugin { /** - * @brief OptionsPage::OptionsPage + * @brief Constructs the CheckVersion options page and sets up its UI. * @param parent * @param f */ @@ -21,7 +21,7 @@ OptionsPage::OptionsPage(QWidget *parent, Qt::WindowFlags f) } /** - * @brief OptionsPage::showEvent + * @brief Loads the check-on-start setting into the checkbox when the page becomes visible. * @param event */ void OptionsPage::showEvent(QShowEvent *event) { @@ -32,7 +32,7 @@ void OptionsPage::showEvent(QShowEvent *event) { } /** - * @brief OptionsPage::on_checkBox_toggled + * @brief Saves the check-on-start setting to persistent storage when the checkbox is toggled. * @param checked */ void OptionsPage::on_checkBox_toggled(bool checked) { diff --git a/plugins/DebuggerCore/DebuggerCoreBase.cpp b/plugins/DebuggerCore/DebuggerCoreBase.cpp index 216b2d1d0..880baf5ce 100644 --- a/plugins/DebuggerCore/DebuggerCoreBase.cpp +++ b/plugins/DebuggerCore/DebuggerCoreBase.cpp @@ -13,9 +13,10 @@ namespace DebuggerCorePlugin { /** + * @brief Removes all breakpoints if a process is currently attached. + * * removes all breakpoints * - * @brief DebuggerCoreBase::clearBreakpoints */ void DebuggerCoreBase::clearBreakpoints() { if (attached()) { @@ -24,9 +25,10 @@ void DebuggerCoreBase::clearBreakpoints() { } /** + * @brief Creates a new breakpoint at the given address, or returns the existing one if already present. + * * creates a new breakpoint (only if there isn't already one at the given address) * - * @brief DebuggerCoreBase::addBreakpoint * @param address * @return the breakpoint which was created/found */ @@ -51,7 +53,7 @@ std::shared_ptr DebuggerCoreBase::addBreakpoint(edb::address_t addr } /** - * @brief DebuggerCoreBase::findBreakpoint + * @brief Returns the breakpoint at the given address, or an empty shared_ptr if none exists. * @param address * @return the breakpoint at the given address or std::shared_ptr() */ @@ -66,11 +68,12 @@ std::shared_ptr DebuggerCoreBase::findBreakpoint(edb::address_t add } /** + * @brief Finds the breakpoint that triggered at the given address by checking possible rewind sizes. + * * similarly to findBreakpoint, finds a breakpoint near given address. But * unlike findBreakpoint, this function looks for a breakpoint which ends * up at this address after being triggered, instead of just starting there. * - * @brief DebuggerCoreBase::findTriggeredBreakpoint * @param address * @return */ @@ -89,11 +92,12 @@ std::shared_ptr DebuggerCoreBase::findTriggeredBreakpoint(edb::addr } /** + * @brief Removes the breakpoint at the given address; this is a no-op if no breakpoint exists there. + * * Decrements the reference count for the breakpoint found at the given address. * If the reference count goes to zero, then it is removed. * This is a no-op if there is no breakpoint present. * - * @brief DebuggerCoreBase::removeBreakpoint * @param address */ void DebuggerCoreBase::removeBreakpoint(edb::address_t address) { @@ -108,9 +112,10 @@ void DebuggerCoreBase::removeBreakpoint(edb::address_t address) { } /** + * @brief Ends the debug session by detaching from or killing the debuggee according to user preferences. + * * Ends debug session, detaching from or killing debuggee according to user preferences * - * @brief DebuggerCoreBase::endDebugSession */ void DebuggerCoreBase::endDebugSession() { if (attached()) { @@ -133,10 +138,11 @@ void DebuggerCoreBase::endDebugSession() { } /** + * @brief Returns a copy of the breakpoint map, keeping shared_ptr references alive until it is destroyed. + * * returns a copy of the BP list, these count as references to the BPs * preventing full removal until this list is destructed. * - * @brief DebuggerCoreBase::backupBreakpoints * @return a list of shared_ptr's to the BPs */ DebuggerCoreBase::BreakpointList DebuggerCoreBase::backupBreakpoints() const { @@ -144,7 +150,7 @@ DebuggerCoreBase::BreakpointList DebuggerCoreBase::backupBreakpoints() const { } /** - * @brief DebuggerCoreBase::attached + * @brief Returns true if a process is currently attached for debugging. * @return */ bool DebuggerCoreBase::attached() const { @@ -152,7 +158,7 @@ bool DebuggerCoreBase::attached() const { } /** - * @brief DebuggerCoreBase::supportedBreakpointTypes + * @brief Returns the list of all software breakpoint types supported on x86/x86-64. * @return */ std::vector DebuggerCoreBase::supportedBreakpointTypes() const { diff --git a/plugins/DebuggerCore/arch/x86-generic/Breakpoint.cpp b/plugins/DebuggerCore/arch/x86-generic/Breakpoint.cpp index 43fb5adfc..41ff6c82f 100644 --- a/plugins/DebuggerCore/arch/x86-generic/Breakpoint.cpp +++ b/plugins/DebuggerCore/arch/x86-generic/Breakpoint.cpp @@ -28,7 +28,7 @@ const std::vector BreakpointInstructionUD0 = {0x0f, 0xff}; } /** - * @brief Breakpoint::Breakpoint + * @brief Constructs a breakpoint at the given address, writing the trap instruction immediately. * @param address */ Breakpoint::Breakpoint(edb::address_t address) @@ -40,7 +40,7 @@ Breakpoint::Breakpoint(edb::address_t address) } /** - * @brief Breakpoint::supportedTypes + * @brief Returns the list of all software breakpoint instruction types supported on x86/x86-64. * @return */ auto Breakpoint::supportedTypes() -> std::vector { @@ -62,7 +62,7 @@ auto Breakpoint::supportedTypes() -> std::vector { } /** - * @brief Breakpoint::setType + * @brief Disables the current breakpoint, changes its instruction type, and re-enables it. * @param type */ void Breakpoint::setType(IBreakpoint::TypeId type) { @@ -80,14 +80,14 @@ void Breakpoint::setType(IBreakpoint::TypeId type) { } /** - * @brief Breakpoint::~Breakpoint + * @brief Destroys the breakpoint and restores the original instruction bytes. */ Breakpoint::~Breakpoint() { disable(); } /** - * @brief Breakpoint::enable + * @brief Writes the breakpoint instruction bytes to the target process, saving the original bytes. * @return */ bool Breakpoint::enable() { @@ -152,7 +152,7 @@ bool Breakpoint::enable() { } /** - * @brief Breakpoint::disable + * @brief Restores the original instruction bytes in the target process to remove the breakpoint. * @return */ bool Breakpoint::disable() { @@ -168,14 +168,14 @@ bool Breakpoint::disable() { } /** - * @brief Breakpoint::hit + * @brief Increments the breakpoint hit count. */ void Breakpoint::hit() { ++hitCount_; } /** - * @brief Breakpoint::setOneTime + * @brief Sets whether the breakpoint should automatically remove itself after being hit once. * @param value */ void Breakpoint::setOneTime(bool value) { @@ -183,7 +183,7 @@ void Breakpoint::setOneTime(bool value) { } /** - * @brief Breakpoint::setInternal + * @brief Sets whether the breakpoint is internal (not shown to the user in the UI). * @param value */ void Breakpoint::setInternal(bool value) { @@ -191,7 +191,7 @@ void Breakpoint::setInternal(bool value) { } /** - * @brief Breakpoint::possibleRewindSizes + * @brief Returns the possible instruction sizes (in bytes) to rewind the PC when a breakpoint is triggered. * @return */ std::vector Breakpoint::possibleRewindSizes() { diff --git a/plugins/DebuggerCore/unix/Posix.cpp b/plugins/DebuggerCore/unix/Posix.cpp index a919a7230..642ceb8e7 100644 --- a/plugins/DebuggerCore/unix/Posix.cpp +++ b/plugins/DebuggerCore/unix/Posix.cpp @@ -30,7 +30,7 @@ timespec duration_to_timespec(std::chrono::milliseconds msecs) { namespace detail { /** - * @brief sigtimedwait + * @brief Calls the system sigtimedwait, restarting on EINTR. * @param set * @param info * @param timeout @@ -47,7 +47,7 @@ int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *ti } /** - * @brief Posix::read + * @brief Calls the system read(), automatically restarting on EINTR. * @param fd * @param buf * @param count @@ -62,7 +62,7 @@ ssize_t Posix::read(int fd, void *buf, size_t count) { } /** - * @brief Posix::write + * @brief Calls the system write(), automatically restarting on EINTR. * @param fd * @param buf * @param count @@ -77,7 +77,7 @@ ssize_t Posix::write(int fd, const void *buf, size_t count) { } /** - * @brief Posix::select + * @brief Calls the system select(), automatically restarting on EINTR. * @param nfds * @param readfds * @param writefds @@ -94,7 +94,7 @@ int Posix::select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds } /** - * @brief Posix::waitpid + * @brief Calls the system waitpid(), automatically restarting on EINTR. * @param pid * @param status * @param options @@ -109,7 +109,7 @@ pid_t Posix::waitpid(pid_t pid, int *status, int options) { } /** - * @brief Posix::wait_for_sigchld + * @brief Waits up to the specified timeout for a SIGCHLD signal using sigtimedwait. * @param msecs * @return */ diff --git a/plugins/DebuggerCore/unix/Unix.cpp b/plugins/DebuggerCore/unix/Unix.cpp index 6e9dc4a47..f7a39fd9d 100644 --- a/plugins/DebuggerCore/unix/Unix.cpp +++ b/plugins/DebuggerCore/unix/Unix.cpp @@ -114,7 +114,7 @@ constexpr Exception Exceptions[] = { }; /** - * @brief copyString + * @brief Allocates a null-terminated copy of the given QByteArray string on the heap. * @param str * @return */ @@ -127,7 +127,7 @@ char *copyString(const QByteArray &str) { } /** - * @brief Unix::exceptions + * @brief Returns a map of all known Unix signal numbers and their names. * @return */ QMap Unix::exceptions() { @@ -140,7 +140,7 @@ QMap Unix::exceptions() { } /** - * @brief Unix::exception_name + * @brief Returns the name string for the Unix signal with the given numeric value. * @param value * @return */ @@ -157,7 +157,7 @@ QString Unix::exception_name(qlonglong value) { } /** - * @brief Unix::exception_value + * @brief Returns the numeric value for the Unix signal with the given name, or -1 if not found. * @param name * @return */ @@ -174,7 +174,7 @@ qlonglong Unix::exception_value(const QString &name) { } /** - * @brief Unix::execute_process + * @brief Changes to the given working directory and launches the process via execv with the provided arguments. * @param path * @param cwd * @param args diff --git a/plugins/DebuggerCore/unix/linux/DebuggerCore.cpp b/plugins/DebuggerCore/unix/linux/DebuggerCore.cpp index 08ab5cc03..159a1ed7a 100644 --- a/plugins/DebuggerCore/unix/linux/DebuggerCore.cpp +++ b/plugins/DebuggerCore/unix/linux/DebuggerCore.cpp @@ -73,7 +73,7 @@ namespace { constexpr size_t PageSize = 0x1000; /** - * @brief disable_aslr + * @brief Disables address space layout randomization for the current process using personality(). */ void disable_aslr() { const int current = ::personality(UINT32_MAX); @@ -86,7 +86,7 @@ void disable_aslr() { } /** - * @brief disable_lazy_binding + * @brief Forces eager binding of shared library symbols by setting the LD_BIND_NOW environment variable. */ void disable_lazy_binding() { if (setenv("LD_BIND_NOW", "1", true) == -1) { @@ -95,7 +95,7 @@ void disable_lazy_binding() { } /** - * @brief is_clone_event + * @brief Returns true if the given waitpid status encodes a PTRACE_EVENT_CLONE trace event. * @param status * @return */ @@ -104,7 +104,7 @@ constexpr bool is_clone_event(int status) { } /** - * @brief is_exit_trace_event + * @brief Returns true if the given waitpid status encodes a PTRACE_EVENT_EXIT trace event. * @param status * @return */ @@ -114,7 +114,7 @@ constexpr bool is_exit_trace_event(int status) { #if defined(EDB_X86) || defined(EDB_X86_64) /** - * @brief in_64bit_segment + * @brief Returns true if edb is currently executing in a 64-bit code segment (as opposed to 32-bit compatibility mode). * @return */ bool in_64bit_segment() { @@ -131,7 +131,7 @@ bool in_64bit_segment() { } /** - * @brief os_is_64_bit + * @brief Returns true if the underlying operating system kernel is 64-bit. * @param edbIsIn64BitSegment * @return */ @@ -162,7 +162,7 @@ bool os_is_64_bit() { } /** - * @brief DebuggerCore::DebuggerCore + * @brief Constructs the DebuggerCore, detects proc/mem access capabilities, and warns the user if broken. */ DebuggerCore::DebuggerCore() #if defined(EDB_X86) || defined(EDB_X86_64) @@ -192,7 +192,7 @@ DebuggerCore::DebuggerCore() } /** - * @brief DebuggerCore::hasExtension + * @brief Returns true if the debugged CPU supports the requested extension (MMX, SSE, AVX, etc.). * @param ext * @return */ @@ -246,7 +246,7 @@ bool DebuggerCore::hasExtension(uint64_t ext) const { } /** - * @brief DebuggerCore::pageSize + * @brief Returns the system page size in bytes. * @return the size of a page on this system */ size_t DebuggerCore::pageSize() const { @@ -254,7 +254,7 @@ size_t DebuggerCore::pageSize() const { } /** - * @brief DebuggerCore::pointerSize + * @brief Returns the pointer size in bytes for the debugged process. * @return */ std::size_t DebuggerCore::pointerSize() const { @@ -262,14 +262,14 @@ std::size_t DebuggerCore::pointerSize() const { } /** - * @brief DebuggerCore::~DebuggerCore + * @brief Destroys the DebuggerCore and ends any active debug session. */ DebuggerCore::~DebuggerCore() { endDebugSession(); } /** - * @brief DebuggerCore::ptraceGetSigInfo + * @brief Retrieves signal information for the given thread via PTRACE_GETSIGINFO. * @param tid * @param siginfo * @return @@ -287,7 +287,7 @@ Status DebuggerCore::ptraceGetSigInfo(edb::tid_t tid, siginfo_t *siginfo) { } /** - * @brief DebuggerCore::ptraceTraceme + * @brief Requests that the current process be traced by its parent via PTRACE_TRACEME. * @return */ long DebuggerCore::ptraceTraceme() { @@ -295,7 +295,7 @@ long DebuggerCore::ptraceTraceme() { } /** - * @brief DebuggerCore::ptraceContinue + * @brief Resumes the given thread via PTRACE_CONT, delivering the specified signal if non-zero. * @param tid * @param status * @return @@ -318,7 +318,7 @@ Status DebuggerCore::ptraceContinue(edb::tid_t tid, long status) { } /** - * @brief DebuggerCore::ptraceStep + * @brief Single-steps the given thread via PTRACE_SINGLESTEP, delivering the specified signal if non-zero. * @param tid * @param status * @return @@ -341,7 +341,7 @@ Status DebuggerCore::ptraceStep(edb::tid_t tid, long status) { } /** - * @brief DebuggerCore::ptraceSetOptions + * @brief Sets ptrace options for the given thread via PTRACE_SETOPTIONS. * @param tid * @param options * @return @@ -358,7 +358,7 @@ Status DebuggerCore::ptraceSetOptions(edb::tid_t tid, long options) { } /** - * @brief DebuggerCore::ptraceGetEventMessage + * @brief Retrieves the extended ptrace event message for the given thread via PTRACE_GETEVENTMSG. * @param tid * @param message * @return @@ -377,7 +377,7 @@ Status DebuggerCore::ptraceGetEventMessage(edb::tid_t tid, unsigned long *messag } /** - * @brief DebuggerCore::ptraceOptions + * @brief Returns the ptrace option flags appropriate for the current debugger configuration. * @return */ long DebuggerCore::ptraceOptions() const { @@ -409,7 +409,7 @@ long DebuggerCore::ptraceOptions() const { } /** - * @brief DebuggerCore::handleThreadExit + * @brief Removes the exiting thread from the tracked thread map and waited-thread set. * @param tid * @param status */ @@ -421,7 +421,7 @@ void DebuggerCore::handleThreadExit(edb::tid_t tid, int status) { } /** - * @brief DebuggerCore::handleThreadCreate + * @brief Handles a thread-creation ptrace event by registering the new thread and setting its trace options. * @param tid * @param status * @return @@ -476,7 +476,7 @@ std::shared_ptr DebuggerCore::handleThreadCreate(edb::tid_t tid, in } /** - * @brief DebuggerCore::handleEvent + * @brief Processes the waitpid status for the given thread and returns the corresponding debug event. * @param tid * @param status * @return @@ -580,7 +580,7 @@ std::shared_ptr DebuggerCore::handleEvent(edb::tid_t tid, int statu } /** - * @brief DebuggerCore::stopThreads + * @brief Sends SIGSTOP to all running threads that have not yet been waited on. * @return */ Status DebuggerCore::stopThreads() { @@ -629,9 +629,10 @@ Status DebuggerCore::stopThreads() { } /** + * @brief Waits up to the given timeout for a debug event from any traced thread, returning the event or nullptr on timeout. + * * waits for a debug event, witha timeout specified in milliseconds * - * @brief DebuggerCore::waitDebugEvent * @param msecs * @return nullptr if an error or timeout occurs */ @@ -652,7 +653,7 @@ std::shared_ptr DebuggerCore::waitDebugEvent(std::chrono::milliseco } /** - * @brief DebuggerCore::attachThread + * @brief Attaches to the given thread via PTRACE_ATTACH and registers it in the thread map. * @param tid * @return 0 if successful, errno if failed */ @@ -691,7 +692,7 @@ int DebuggerCore::attachThread(edb::tid_t tid) { } /** - * @brief DebuggerCore::attach + * @brief Attaches to an already-running process, tracing all of its threads. * @param pid * @return */ @@ -742,7 +743,7 @@ Status DebuggerCore::attach(edb::pid_t pid) { } /** - * @brief DebuggerCore::detach + * @brief Detaches from the traced process, resuming all its threads. * @return */ Status DebuggerCore::detach() { @@ -773,7 +774,7 @@ Status DebuggerCore::detach() { } /** - * @brief DebuggerCore::kill + * @brief Sends SIGKILL to the traced process and waits for it to terminate. */ void DebuggerCore::kill() { if (attached()) { @@ -792,7 +793,7 @@ void DebuggerCore::kill() { } /** - * @brief DebuggerCore::detectCpuMode + * @brief Detects whether the debugged process is running in 32-bit or 64-bit mode and updates pointerSize_. */ void DebuggerCore::detectCpuMode() { @@ -852,7 +853,7 @@ void DebuggerCore::detectCpuMode() { } /** - * @brief DebuggerCore::open + * @brief Forks, optionally disables ASLR and lazy binding, and launches the specified process under ptrace. * @param path * @param cwd * @param args @@ -985,7 +986,7 @@ Status DebuggerCore::open(const QString &path, const QString &cwd, const QList DebuggerCore::createState() const { @@ -1010,7 +1011,7 @@ std::unique_ptr DebuggerCore::createState() const { } /** - * @brief DebuggerCore::enumerateProcesses + * @brief Returns a map of all running processes on the system by scanning /proc. * @return */ QMap> DebuggerCore::enumerateProcesses() const { @@ -1036,7 +1037,7 @@ QMap> DebuggerCore::enumerateProcesses() c } /** - * @brief DebuggerCore::parentPid + * @brief Returns the parent process ID for the given PID by reading /proc/[pid]/stat. * @param pid * @return */ @@ -1052,7 +1053,7 @@ edb::pid_t DebuggerCore::parentPid(edb::pid_t pid) const { } /** - * @brief DebuggerCore::cpuType + * @brief Returns the hash identifier for the current build architecture. * @return edb's native CPU type */ uint64_t DebuggerCore::cpuType() const { @@ -1070,7 +1071,7 @@ uint64_t DebuggerCore::cpuType() const { } /** - * @brief DebuggerCore::stackPointer + * @brief Returns the architecture-appropriate stack pointer register name. * @return */ QString DebuggerCore::stackPointer() const { @@ -1089,7 +1090,7 @@ QString DebuggerCore::stackPointer() const { } /** - * @brief DebuggerCore::framePointer + * @brief Returns the architecture-appropriate frame pointer register name. * @return */ QString DebuggerCore::framePointer() const { @@ -1107,7 +1108,7 @@ QString DebuggerCore::framePointer() const { } /** - * @brief DebuggerCore::instructionPointer + * @brief Returns the architecture-appropriate instruction pointer register name. * @return */ QString DebuggerCore::instructionPointer() const { @@ -1125,7 +1126,7 @@ QString DebuggerCore::instructionPointer() const { } /** - * @brief DebuggerCore::flagRegister + * @brief Returns the architecture-appropriate flags/status register name. * @return the name of the flag register */ QString DebuggerCore::flagRegister() const { @@ -1143,7 +1144,7 @@ QString DebuggerCore::flagRegister() const { } /** - * @brief DebuggerCore::process + * @brief Returns a raw pointer to the currently attached process, or nullptr if not attached. * @return */ IProcess *DebuggerCore::process() const { @@ -1151,7 +1152,7 @@ IProcess *DebuggerCore::process() const { } /** - * @brief DebuggerCore::setIgnoredExceptions + * @brief Stores the list of exception (signal) numbers that should be silently passed to the debuggee. * @param exceptions */ void DebuggerCore::setIgnoredExceptions(const QList &exceptions) { @@ -1159,7 +1160,7 @@ void DebuggerCore::setIgnoredExceptions(const QList &exceptions) { } /** - * @brief DebuggerCore::exceptions + * @brief Returns the map of Unix signal numbers and their names. * @return */ QMap DebuggerCore::exceptions() const { @@ -1167,7 +1168,7 @@ QMap DebuggerCore::exceptions() const { } /** - * @brief DebuggerCore::exceptionName + * @brief Returns the name string for the Unix signal with the given numeric value. * @param value * @return */ @@ -1176,7 +1177,7 @@ QString DebuggerCore::exceptionName(qlonglong value) { } /** - * @brief DebuggerCore::exceptionValue + * @brief Returns the numeric value for the Unix signal with the given name. * @param name * @return */ @@ -1185,7 +1186,7 @@ qlonglong DebuggerCore::exceptionValue(const QString &name) { } /** - * @brief DebuggerCore::nopFillByte + * @brief Returns the byte value used to fill NOP-padded regions for the current architecture. * @return */ uint8_t DebuggerCore::nopFillByte() const { diff --git a/plugins/DebuggerCore/unix/linux/DialogMemoryAccess.cpp b/plugins/DebuggerCore/unix/linux/DialogMemoryAccess.cpp index 8340de8f5..aff2531f5 100644 --- a/plugins/DebuggerCore/unix/linux/DialogMemoryAccess.cpp +++ b/plugins/DebuggerCore/unix/linux/DialogMemoryAccess.cpp @@ -9,7 +9,7 @@ namespace DebuggerCorePlugin { /** - * @brief DialogMemoryAccess::DialogMemoryAccess + * @brief Constructs the proc/mem access warning dialog and fixes its size. * @param parent * @param f */ @@ -22,7 +22,7 @@ DialogMemoryAccess::DialogMemoryAccess(QWidget *parent, Qt::WindowFlags f) } /** - * @brief DialogMemoryAccess::warnNextTime + * @brief Returns true if the warning dialog should be shown again on the next run. * @return */ bool DialogMemoryAccess::warnNextTime() const { diff --git a/plugins/DebuggerCore/unix/linux/PlatformEvent.cpp b/plugins/DebuggerCore/unix/linux/PlatformEvent.cpp index 5f124df0e..15376c51d 100644 --- a/plugins/DebuggerCore/unix/linux/PlatformEvent.cpp +++ b/plugins/DebuggerCore/unix/linux/PlatformEvent.cpp @@ -10,7 +10,7 @@ namespace DebuggerCorePlugin { /** - * @brief PlatformEvent::clone + * @brief Creates and returns a heap-allocated copy of this event. * @return */ IDebugEvent *PlatformEvent::clone() const { @@ -18,7 +18,7 @@ IDebugEvent *PlatformEvent::clone() const { } /** - * @brief PlatformEvent::createUnexpectedSignalMessage + * @brief Constructs a generic unexpected-signal Message with the given signal name and number. * @param name * @param number * @return @@ -31,7 +31,7 @@ IDebugEvent::Message PlatformEvent::createUnexpectedSignalMessage(const QString } /** - * @brief PlatformEvent::errorDescription + * @brief Returns a human-readable Message describing the error signal, fault address, and reason code. * @return */ IDebugEvent::Message PlatformEvent::errorDescription() const { @@ -267,7 +267,7 @@ IDebugEvent::Message PlatformEvent::errorDescription() const { } /** - * @brief PlatformEvent::reason + * @brief Returns the high-level reason category (signal, trap, etc.) for this debug event. * @return */ IDebugEvent::REASON PlatformEvent::reason() const { @@ -286,7 +286,7 @@ IDebugEvent::REASON PlatformEvent::reason() const { } /** - * @brief PlatformEvent::trapReason + * @brief Returns the specific trap reason (breakpoint, single-step, etc.) for a REASON_TRAP event. * @return */ IDebugEvent::TRAP_REASON PlatformEvent::trapReason() const { @@ -299,7 +299,7 @@ IDebugEvent::TRAP_REASON PlatformEvent::trapReason() const { } /** - * @brief PlatformEvent::exited + * @brief Returns true if the debugged process exited normally. * @return */ bool PlatformEvent::exited() const { @@ -307,7 +307,7 @@ bool PlatformEvent::exited() const { } /** - * @brief PlatformEvent::isError + * @brief Returns true if this event represents a fatal error signal (e.g. SIGSEGV, SIGILL). * @return */ bool PlatformEvent::isError() const { @@ -335,7 +335,7 @@ bool PlatformEvent::isError() const { } /** - * @brief PlatformEvent::isKill + * @brief Returns true if the process was killed by a signal. * @return */ bool PlatformEvent::isKill() const { @@ -343,7 +343,7 @@ bool PlatformEvent::isKill() const { } /** - * @brief PlatformEvent::isStop + * @brief Returns true if the process was stopped by delivery of a signal. * @return */ bool PlatformEvent::isStop() const { @@ -351,7 +351,7 @@ bool PlatformEvent::isStop() const { } /** - * @brief PlatformEvent::isTrap + * @brief Returns true if this event is a SIGTRAP (breakpoint or single-step). * @return */ bool PlatformEvent::isTrap() const { @@ -359,7 +359,7 @@ bool PlatformEvent::isTrap() const { } /** - * @brief PlatformEvent::terminated + * @brief Returns true if the process terminated due to an unhandled signal. * @return */ bool PlatformEvent::terminated() const { @@ -367,7 +367,7 @@ bool PlatformEvent::terminated() const { } /** - * @brief PlatformEvent::stopped + * @brief Returns true if the process is currently stopped (but has not exited). * @return */ bool PlatformEvent::stopped() const { @@ -375,7 +375,7 @@ bool PlatformEvent::stopped() const { } /** - * @brief PlatformEvent::process + * @brief Returns the PID of the process that generated this event. * @return */ edb::pid_t PlatformEvent::process() const { @@ -383,7 +383,7 @@ edb::pid_t PlatformEvent::process() const { } /** - * @brief PlatformEvent::thread + * @brief Returns the TID of the thread that generated this event. * @return */ edb::tid_t PlatformEvent::thread() const { @@ -391,7 +391,7 @@ edb::tid_t PlatformEvent::thread() const { } /** - * @brief PlatformEvent::code + * @brief Returns the signal number or exit code associated with this event. * @return */ int64_t PlatformEvent::code() const { diff --git a/plugins/DebuggerCore/unix/linux/PlatformProcess.cpp b/plugins/DebuggerCore/unix/linux/PlatformProcess.cpp index d33b8a202..5175dec72 100644 --- a/plugins/DebuggerCore/unix/linux/PlatformProcess.cpp +++ b/plugins/DebuggerCore/unix/linux/PlatformProcess.cpp @@ -50,7 +50,7 @@ void hash_combine(std::size_t &seed, const T &v) { } /** - * @brief set_ok + * @brief Returns true if the ptrace long value is a valid (non-error) result. * @param value */ bool set_ok(long value) { @@ -58,7 +58,7 @@ bool set_ok(long value) { } /** - * @brief split_max + * @brief Splits a whitespace-delimited string into at most maxparts parts. * @param str * @param maxparts * @return @@ -90,9 +90,10 @@ QStringList split_max(const QString &str, int maxparts) { } /** + * @brief Parses a single line from /proc/[pid]/maps and returns the corresponding memory region. + * * parses the data from a line of a memory map file * - * @brief process_map_line * @param line * @return */ @@ -141,7 +142,7 @@ std::shared_ptr process_map_line(const QString &line) { } /** - * @brief get_loaded_modules + * @brief Walks the dynamic linker's link_map chain to enumerate all loaded shared libraries. * @param process * @return */ @@ -257,7 +258,7 @@ bool get_program_headers(const IProcess *process, edb::address_t *phdr_memaddr, } /** - * @brief PlatformProcess::PlatformProcess + * @brief Constructs a PlatformProcess for the given PID under the given debugger core. * @param core * @param pid */ @@ -279,9 +280,10 @@ PlatformProcess::PlatformProcess(DebuggerCore *core, edb::pid_t pid) } /** + * @brief Reads up to len bytes from the process at the given address, transparently patching through breakpoint bytes. + * * reads bytes into starting at
* - * @brief PlatformProcess::readBytes * @param address * @param buf * @param len @@ -366,10 +368,11 @@ std::size_t PlatformProcess::readBytes(edb::address_t address, void *buf, std::s } /** - * same as writeBytes, except that it also records the original data that was + * @brief Writes len bytes into the process at the given address and records the patch. + * + * Same as writeBytes, except that it also records the original data that was * found at the address being written to. * - * @brief PlatformProcess::patchBytes * @param address * @param buf * @param len @@ -403,9 +406,10 @@ std::size_t PlatformProcess::patchBytes(edb::address_t address, const void *buf, } /** + * @brief Writes len bytes from buf into the process memory at the given address without recording a patch. + * * writes bytes from starting at
* - * @brief PlatformProcess::writeBytes * @param address * @param buf * @param len @@ -440,9 +444,10 @@ std::size_t PlatformProcess::writeBytes(edb::address_t address, const void *buf, } /** + * @brief Reads count whole memory pages starting at the page-aligned address. + * * reads pages from the process starting at
* - * @brief PlatformProcess::readPages * @param address - must be page aligned. * @param buf - sizeof(buf) must be >= count * core_->page_size() * @param count - number of pages @@ -455,7 +460,7 @@ std::size_t PlatformProcess::readPages(edb::address_t address, void *buf, std::s } /** - * @brief PlatformProcess::startTime + * @brief Returns the wall-clock start time of the process by reading /proc/[pid]/stat. * @return */ QDateTime PlatformProcess::startTime() const { @@ -464,7 +469,7 @@ QDateTime PlatformProcess::startTime() const { } /** - * @brief PlatformProcess::arguments + * @brief Returns the command-line arguments of the process by reading /proc/[pid]/cmdline. * @return */ QList PlatformProcess::arguments() const { @@ -501,7 +506,7 @@ QList PlatformProcess::arguments() const { } /** - * @brief PlatformProcess::currentWorkingDirectory + * @brief Returns the current working directory of the process by reading /proc/[pid]/cwd. * @return */ QString PlatformProcess::currentWorkingDirectory() const { @@ -509,7 +514,7 @@ QString PlatformProcess::currentWorkingDirectory() const { } /** - * @brief PlatformProcess::executable + * @brief Returns the executable path of the process by reading /proc/[pid]/exe. * @return */ QString PlatformProcess::executable() const { @@ -517,7 +522,7 @@ QString PlatformProcess::executable() const { } /** - * @brief PlatformProcess::pid + * @brief Returns the PID of this process. * @return */ edb::pid_t PlatformProcess::pid() const { @@ -525,7 +530,7 @@ edb::pid_t PlatformProcess::pid() const { } /** - * @brief PlatformProcess::parent + * @brief Returns a shared pointer to the parent process. * @return */ std::shared_ptr PlatformProcess::parent() const { @@ -540,7 +545,7 @@ std::shared_ptr PlatformProcess::parent() const { } /** - * @brief PlatformProcess::codeAddress + * @brief Returns the address of the code segment for this process. * @return */ edb::address_t PlatformProcess::codeAddress() const { @@ -553,7 +558,7 @@ edb::address_t PlatformProcess::codeAddress() const { } /** - * @brief PlatformProcess::dataAddress + * @brief Returns the address of the data segment for this process. * @return */ edb::address_t PlatformProcess::dataAddress() const { @@ -566,7 +571,7 @@ edb::address_t PlatformProcess::dataAddress() const { } /** - * @brief PlatformProcess::regions + * @brief Returns the list of all mapped memory regions by reading /proc/[pid]/maps. * @return */ QList> PlatformProcess::regions() const { @@ -613,7 +618,7 @@ QList> PlatformProcess::regions() const { } /** - * @brief PlatformProcess::ptraceReadByte + * @brief Reads a single byte from the process using ptrace PTRACE_PEEKDATA. * @param address * @param ok * @return @@ -653,9 +658,10 @@ uint8_t PlatformProcess::ptraceReadByte(edb::address_t address, bool *ok) const } /** + * @brief Writes a single byte into the process at the given address via PTRACE_POKEDATA. + * * writes a single byte at a given address via ptrace API. * - * @brief PlatformProcess::ptraceWriteByte * @param address * @param value * @param ok @@ -693,7 +699,7 @@ void PlatformProcess::ptraceWriteByte(edb::address_t address, uint8_t value, boo } /** - * @brief PlatformProcess::ptracePeek + * @brief Reads one word-sized value from the process via PTRACE_PEEKDATA. * @param address * @param ok * @return @@ -722,7 +728,7 @@ long PlatformProcess::ptracePeek(edb::address_t address, bool *ok) const { } /** - * @brief PlatformProcess::ptracePoke + * @brief Writes one word-sized value into the process via PTRACE_POKEDATA. * @param address * @param value * @return @@ -743,7 +749,7 @@ bool PlatformProcess::ptracePoke(edb::address_t address, long value) { } /** - * @brief PlatformProcess::threads + * @brief Returns the list of threads currently associated with this process. * @return */ QList> PlatformProcess::threads() const { @@ -757,7 +763,7 @@ QList> PlatformProcess::threads() const { } /** - * @brief PlatformProcess::currentThread + * @brief Returns the current (active) thread for this process. * @return */ std::shared_ptr PlatformProcess::currentThread() const { @@ -772,7 +778,7 @@ std::shared_ptr PlatformProcess::currentThread() const { } /** - * @brief PlatformProcess::setCurrentThread + * @brief Sets the active thread to the given thread. * @param thread */ void PlatformProcess::setCurrentThread(IThread &thread) { @@ -781,7 +787,7 @@ void PlatformProcess::setCurrentThread(IThread &thread) { } /** - * @brief PlatformProcess::uid + * @brief Returns the numeric UID of the process owner. * @return */ edb::uid_t PlatformProcess::uid() const { @@ -791,7 +797,7 @@ edb::uid_t PlatformProcess::uid() const { } /** - * @brief PlatformProcess::user + * @brief Returns the username of the process owner. * @return */ QString PlatformProcess::user() const { @@ -803,7 +809,7 @@ QString PlatformProcess::user() const { } /** - * @brief PlatformProcess::name + * @brief Returns the process name (the filename part of its executable path). * @return */ QString PlatformProcess::name() const { @@ -817,7 +823,7 @@ QString PlatformProcess::name() const { } /** - * @brief PlatformProcess::loadedModules + * @brief Returns the list of all loaded shared library modules by walking the dynamic linker link map. * @return */ QList PlatformProcess::loadedModules() const { @@ -833,9 +839,10 @@ QList PlatformProcess::loadedModules() const { } /** + * @brief Sends SIGSTOP to all threads to pause the process. + * * stops *all* threads of a process * - * @brief PlatformProcess::pause * @return */ Status PlatformProcess::pause() { @@ -854,9 +861,10 @@ Status PlatformProcess::pause() { } /** + * @brief Resumes all threads from their stopped state with the given event status. + * * resumes ALL threads * - * @brief PlatformProcess::resume * @param status * @return */ @@ -901,9 +909,10 @@ Status PlatformProcess::resume(edb::EventStatus status) { } /** + * @brief Single-steps the current thread with the given event status. + * * steps the currently active thread * - * @brief PlatformProcess::step * @param status * @return */ @@ -920,7 +929,7 @@ Status PlatformProcess::step(edb::EventStatus status) { } /** - * @brief PlatformProcess::isPaused + * @brief Returns true if all threads of this process are currently stopped. * @return true if ALL threads are currently in the debugger's wait list */ bool PlatformProcess::isPaused() const { @@ -934,7 +943,7 @@ bool PlatformProcess::isPaused() const { } /** - * @brief PlatformProcess::patches + * @brief Returns the map of all applied byte patches keyed by address. * @return any patches applied to this process */ QMap PlatformProcess::patches() const { @@ -942,7 +951,7 @@ QMap PlatformProcess::patches() const { } /** - * @brief PlatformProcess::entry_point + * @brief Returns the binary entry point address read from the ELF auxiliary vector. * @return */ edb::address_t PlatformProcess::entryPoint() const { @@ -1034,10 +1043,11 @@ edb::address_t get_relocation(const IProcess *process, edb::address_t phdr_memad } /** + * @brief Returns the address of the r_debug structure by searching the dynamic segment. + * * attempts to locate the ELF debug pointer in the target process and returns * it, 0 of not found * - * @brief PlatformProcess::debug_pointer * @return */ edb::address_t PlatformProcess::debugPointer() const { @@ -1089,7 +1099,7 @@ edb::address_t PlatformProcess::debugPointer() const { } /** - * @brief PlatformProcess::calculateMain + * @brief Attempts to locate the address of main() by following the ELF startup sequence. * @return */ edb::address_t PlatformProcess::calculateMain() const { @@ -1163,7 +1173,7 @@ edb::address_t PlatformProcess::calculateMain() const { } /** - * @brief PlatformProcess::standardInput + * @brief Returns the path to the standard input file or device for this process. * @return */ QString PlatformProcess::standardInput() const { @@ -1171,7 +1181,7 @@ QString PlatformProcess::standardInput() const { } /** - * @brief PlatformProcess::standardOutput + * @brief Returns the path to the standard output file or device for this process. * @return */ QString PlatformProcess::standardOutput() const { diff --git a/plugins/DebuggerCore/unix/linux/PlatformRegion.cpp b/plugins/DebuggerCore/unix/linux/PlatformRegion.cpp index 26cb3b91a..8e6b94e04 100644 --- a/plugins/DebuggerCore/unix/linux/PlatformRegion.cpp +++ b/plugins/DebuggerCore/unix/linux/PlatformRegion.cpp @@ -23,7 +23,7 @@ namespace DebuggerCorePlugin { namespace { /** - * @brief permissions_value + * @brief Converts individual read/write/execute permission booleans into the POSIX permissions_t bitmask. * @param read * @param write * @param execute @@ -74,7 +74,7 @@ class BackupInfo : public IDebugEventHandler { }; /** - * @brief BackupInfo::BackupInfo + * @brief Constructs a BackupInfo handler that backs up the given number of bytes at the given address before applying temporary permission changes. * @param address * @param perms * @param region @@ -86,7 +86,7 @@ BackupInfo::BackupInfo(edb::address_t address, IRegion::permissions_t perms, } /** - * @brief BackupInfo::~BackupInfo + * @brief Destroys the BackupInfo handler and unregisters it from debug event notifications. */ template BackupInfo::~BackupInfo() { @@ -94,7 +94,7 @@ BackupInfo::~BackupInfo() { } /** - * @brief BackupInfo::backup + * @brief Saves the current register state and memory bytes at the target address. * @return */ template @@ -111,7 +111,7 @@ bool BackupInfo::backup() { } /** - * @brief BackupInfo::restore + * @brief Restores the saved register state and memory bytes at the target address. * @return */ template @@ -129,7 +129,7 @@ bool BackupInfo::restore() { } /** - * @brief BackupInfo::handleEvent + * @brief Receives a debug event, unlocks the handler, and restores the backed-up memory and register state. * @param event * @return */ @@ -151,7 +151,7 @@ edb::EventStatus BackupInfo::handleEvent(const std::shared_ptr & } /** - * @brief PlatformRegion::PlatformRegion + * @brief Constructs a PlatformRegion with the given address range, base, name, and permission flags. * @param start * @param end * @param base @@ -163,7 +163,7 @@ PlatformRegion::PlatformRegion(edb::address_t start, edb::address_t end, edb::ad } /** - * @brief PlatformRegion::clone + * @brief Creates and returns a heap-allocated copy of this memory region. * @return */ IRegion *PlatformRegion::clone() const { @@ -171,7 +171,7 @@ IRegion *PlatformRegion::clone() const { } /** - * @brief PlatformRegion::accessible + * @brief Returns true if the region has any of read, write, or execute permission. * @return */ bool PlatformRegion::accessible() const { @@ -179,7 +179,7 @@ bool PlatformRegion::accessible() const { } /** - * @brief PlatformRegion::readable + * @brief Returns true if the region has PROT_READ permission. * @return */ bool PlatformRegion::readable() const { @@ -187,7 +187,7 @@ bool PlatformRegion::readable() const { } /** - * @brief PlatformRegion::writable + * @brief Returns true if the region has PROT_WRITE permission. * @return */ bool PlatformRegion::writable() const { @@ -195,7 +195,7 @@ bool PlatformRegion::writable() const { } /** - * @brief PlatformRegion::executable + * @brief Returns true if the region has PROT_EXEC permission. * @return */ bool PlatformRegion::executable() const { @@ -203,14 +203,14 @@ bool PlatformRegion::executable() const { } /** - * @brief PlatformRegion::size + * @brief Returns the size in bytes of this memory region. * @return */ size_t PlatformRegion::size() const { return end_ - start_; } /** - * @brief PlatformRegion::setPermissions + * @brief Changes the memory protection of this region via injected shellcode, with user confirmation if removing the last executable region. * @param read * @param write * @param execute @@ -258,7 +258,7 @@ void PlatformRegion::setPermissions(bool read, bool write, bool execute) { } /** - * @brief PlatformRegion::start + * @brief Returns the start address of this memory region. * @return */ edb::address_t PlatformRegion::start() const { @@ -266,7 +266,7 @@ edb::address_t PlatformRegion::start() const { } /** - * @brief PlatformRegion::end + * @brief Returns the end address of this memory region (exclusive). * @return */ edb::address_t PlatformRegion::end() const { @@ -274,7 +274,7 @@ edb::address_t PlatformRegion::end() const { } /** - * @brief PlatformRegion::base + * @brief Returns the base (file-mapped) address of this memory region. * @return */ edb::address_t PlatformRegion::base() const { @@ -282,7 +282,7 @@ edb::address_t PlatformRegion::base() const { } /** - * @brief PlatformRegion::name + * @brief Returns the name (filename or label) associated with this memory region. * @return */ QString PlatformRegion::name() const { @@ -290,7 +290,7 @@ QString PlatformRegion::name() const { } /** - * @brief PlatformRegion::permissions + * @brief Returns the raw POSIX permissions bitmask for this memory region. * @return */ IRegion::permissions_t PlatformRegion::permissions() const { @@ -298,7 +298,7 @@ IRegion::permissions_t PlatformRegion::permissions() const { } /** - * @brief PlatformRegion::setPermissions + * @brief Injects shellcode to call mprotect() and change this region's protection flags. * @param read * @param write * @param execute @@ -385,7 +385,7 @@ void PlatformRegion::setPermissions(bool read, bool write, bool execute, edb::ad } /** - * @brief PlatformRegion::setStart + * @brief Updates the start address of this memory region. * @param address */ void PlatformRegion::setStart(edb::address_t address) { @@ -393,7 +393,7 @@ void PlatformRegion::setStart(edb::address_t address) { } /** - * @brief PlatformRegion::setEnd + * @brief Updates the end address of this memory region. * @param address */ void PlatformRegion::setEnd(edb::address_t address) { diff --git a/plugins/DebuggerCore/unix/linux/PlatformThread.cpp b/plugins/DebuggerCore/unix/linux/PlatformThread.cpp index 6a2524ac0..7e59310e4 100644 --- a/plugins/DebuggerCore/unix/linux/PlatformThread.cpp +++ b/plugins/DebuggerCore/unix/linux/PlatformThread.cpp @@ -20,7 +20,7 @@ namespace DebuggerCorePlugin { /** - * @brief PlatformThread::PlatformThread + * @brief Constructs a PlatformThread for the given core, process, and thread ID. * @param core * @param process * @param tid @@ -32,7 +32,7 @@ PlatformThread::PlatformThread(DebuggerCore *core, std::shared_ptr &pr } /** - * @brief PlatformThread::tid + * @brief Returns the thread ID of this thread. * @return */ edb::tid_t PlatformThread::tid() const { @@ -40,7 +40,7 @@ edb::tid_t PlatformThread::tid() const { } /** - * @brief PlatformThread::name + * @brief Returns the thread's comm name by reading /proc/[pid]/task/[tid]/stat. * @return */ QString PlatformThread::name() const { @@ -54,7 +54,7 @@ QString PlatformThread::name() const { } /** - * @brief PlatformThread::priority + * @brief Returns the thread's scheduling priority by reading /proc/[pid]/task/[tid]/stat. * @return */ int PlatformThread::priority() const { @@ -68,7 +68,7 @@ int PlatformThread::priority() const { } /** - * @brief PlatformThread::runState + * @brief Returns a human-readable run state string for this thread. * @return */ QString PlatformThread::runState() const { @@ -106,10 +106,11 @@ QString PlatformThread::runState() const { } /** + * @brief Resumes this thread via ptrace, re-delivering the signal that stopped it (unless it was SIGSTOP). + * * resumes this thread, passing the signal that stopped it * (unless the signal was SIGSTOP) * - * @brief PlatformThread::resume * @return */ Status PlatformThread::resume() { @@ -117,9 +118,10 @@ Status PlatformThread::resume() { } /** + * @brief Resumes this thread via ptrace, re-delivering the signal only if status is DEBUG_EXCEPTION_NOT_HANDLED. + * * resumes this thread, passing the signal that stopped it * (unless the signal was SIGSTOP, or the passed status != DEBUG_EXCEPTION_NOT_HANDLED) - * @brief PlatformThread::resume * @param status * @return */ @@ -129,7 +131,7 @@ Status PlatformThread::resume(edb::EventStatus status) { } /** - * @brief PlatformThread::isPaused + * @brief Returns true if this thread is currently in the debugger's waited-thread set. * @return true if this thread is currently in the debugger's wait list */ bool PlatformThread::isPaused() const { diff --git a/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformState.cpp b/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformState.cpp index 9e38a04f0..1ba2b2a03 100644 --- a/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformState.cpp +++ b/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformState.cpp @@ -27,14 +27,14 @@ const std::array PlatformState:: RegNameVariants{"pc", "r15"}}; /** - * @brief PlatformState::PlatformState + * @brief Constructs a PlatformState with all register values cleared. */ PlatformState::PlatformState() { clear(); } /** - * @brief PlatformState::clone + * @brief Creates and returns a heap-allocated copy of this register state. * @return */ std::unique_ptr PlatformState::clone() const { @@ -44,7 +44,7 @@ std::unique_ptr PlatformState::clone() const { } /** - * @brief PlatformState::flagsToString + * @brief Returns a string representation of the current CPSR flags. * @return */ QString PlatformState::flagsToString() const { @@ -52,7 +52,7 @@ QString PlatformState::flagsToString() const { } /** - * @brief PlatformState::flagsToString + * @brief Returns a string representation of the given CPSR flags value. * @param flags * @return */ @@ -61,7 +61,7 @@ QString PlatformState::flagsToString(edb::reg_t flags) const { } /** - * @brief PlatformState::findGPR + * @brief Finds and returns an iterator to the GPR name entry matching the given register name. * @param name */ auto PlatformState::findGPR(QString const &name) const -> decltype(gpr.GPRegNames.begin()) { @@ -77,7 +77,7 @@ auto PlatformState::findGPR(QString const &name) const -> decltype(gpr.GPRegName } /** - * @brief PlatformState::value + * @brief Returns the Register value for the named register (GPR, CPSR, or FPSCR). * @param reg * @return */ @@ -100,7 +100,7 @@ Register PlatformState::value(const QString ®) const { } /** - * @brief PlatformState::instructionPointerRegister + * @brief Returns the instruction pointer register (PC) as a Register object. * @return */ Register PlatformState::instructionPointerRegister() const { @@ -112,7 +112,7 @@ Register PlatformState::instructionPointerRegister() const { } /** - * @brief PlatformState::flagsRegister + * @brief Returns the flags register (CPSR) as a Register object. * @return */ Register PlatformState::flagsRegister() const { @@ -126,7 +126,7 @@ Register PlatformState::flagsRegister() const { } /** - * @brief PlatformState::framePointer + * @brief Returns the current value of the frame pointer register (FP). * @return */ edb::address_t PlatformState::framePointer() const { @@ -134,7 +134,7 @@ edb::address_t PlatformState::framePointer() const { } /** - * @brief PlatformState::instructionPointer + * @brief Returns the current value of the instruction pointer (PC). * @return */ edb::address_t PlatformState::instructionPointer() const { @@ -142,7 +142,7 @@ edb::address_t PlatformState::instructionPointer() const { } /** - * @brief PlatformState::stackPointer + * @brief Returns the current value of the stack pointer (SP). * @return */ edb::address_t PlatformState::stackPointer() const { @@ -150,7 +150,7 @@ edb::address_t PlatformState::stackPointer() const { } /** - * @brief PlatformState::debugRegister + * @brief Returns the value of the hardware debug register n (currently a stub returning 0). * @param n * @return */ @@ -159,7 +159,7 @@ edb::reg_t PlatformState::debugRegister(size_t n) const { } /** - * @brief PlatformState::flags + * @brief Returns the current CPSR (flags) register value. * @return */ edb::reg_t PlatformState::flags() const { @@ -167,7 +167,7 @@ edb::reg_t PlatformState::flags() const { } /** - * @brief PlatformState::adjustStack + * @brief Adjusts the stack pointer by adding the given number of bytes. * @param bytes */ void PlatformState::adjustStack(int bytes) { @@ -175,14 +175,14 @@ void PlatformState::adjustStack(int bytes) { } /** - * @brief PlatformState::clear + * @brief Resets all register state to zeroed/uninitialized values. */ void PlatformState::clear() { gpr.clear(); } /** - * @brief PlatformState::empty + * @brief Returns true if no register data has been loaded into this state object. * @return */ bool PlatformState::empty() const { @@ -190,7 +190,7 @@ bool PlatformState::empty() const { } /** - * @brief PlatformState::GPR::empty + * @brief Returns true if no GPR data has been filled into this register group. * @return */ bool PlatformState::GPR::empty() const { @@ -198,7 +198,7 @@ bool PlatformState::GPR::empty() const { } /** - * @brief PlatformState::GPR::clear + * @brief Clears all GPR values and marks the group as unfilled. */ void PlatformState::GPR::clear() { util::mark_memory(this, sizeof(*this)); @@ -206,7 +206,7 @@ void PlatformState::GPR::clear() { } /** - * @brief PlatformState::setDebugRegister + * @brief Sets hardware debug register n to the given value (currently a stub). * @param n * @param value */ @@ -215,7 +215,7 @@ void PlatformState::setDebugRegister(size_t n, edb::reg_t value) { } /** - * @brief PlatformState::setFlags + * @brief Sets the CPSR (flags) register to the given value. * @param flags */ void PlatformState::setFlags(edb::reg_t flags) { @@ -223,7 +223,7 @@ void PlatformState::setFlags(edb::reg_t flags) { } /** - * @brief PlatformState::setInstructionPointer + * @brief Sets the instruction pointer (PC) to the given address. * @param value */ void PlatformState::setInstructionPointer(edb::address_t value) { @@ -231,7 +231,7 @@ void PlatformState::setInstructionPointer(edb::address_t value) { } /** - * @brief PlatformState::setRegister + * @brief Sets the named register from the given Register object. * @param reg */ void PlatformState::setRegister(const Register ®) { @@ -260,7 +260,7 @@ void PlatformState::setRegister(const Register ®) { } /** - * @brief PlatformState::setRegister + * @brief Sets the named register to the given 32-bit value. * @param name * @param value */ @@ -273,7 +273,7 @@ void PlatformState::setRegister(const QString &name, edb::reg_t value) { } /** - * @brief PlatformState::gpRegister + * @brief Returns the general-purpose register at index n as a Register object. * @param n * @return */ @@ -288,7 +288,7 @@ Register PlatformState::gpRegister(size_t n) const { } /** - * @brief PlatformState::fillFrom + * @brief Fills the GPR state from a user_regs ptrace structure. * @param regs */ void PlatformState::fillFrom(user_regs const ®s) { @@ -301,7 +301,7 @@ void PlatformState::fillFrom(user_regs const ®s) { } /** - * @brief PlatformState::fillFrom + * @brief Fills the VFP floating-point state from a user_vfp ptrace structure. * @param regs */ void PlatformState::fillFrom(user_vfp const ®s) { @@ -314,7 +314,7 @@ void PlatformState::fillFrom(user_vfp const ®s) { } /** - * @brief PlatformState::fillStruct + * @brief Fills a user_regs struct with the current GPR values for use with PTRACE_SETREGS. * @param regs */ void PlatformState::fillStruct(user_regs ®s) const { @@ -330,7 +330,7 @@ void PlatformState::fillStruct(user_regs ®s) const { } /** - * @brief PlatformState::fillStruct + * @brief Fills a user_vfp struct with the current VFP values for use with PTRACE_SETVFPREGS. * @param regs */ void PlatformState::fillStruct(user_vfp ®s) const { diff --git a/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp b/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp index 60b566aa9..609a4cfdc 100644 --- a/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp +++ b/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp @@ -61,7 +61,7 @@ namespace DebuggerCorePlugin { /** - * @brief PlatformThread::fillStateFromPrStatus + * @brief Fills the state from a PR_STATUS ptrace structure (currently a no-op stub for ARM). * @param state * @return */ @@ -71,7 +71,7 @@ bool PlatformThread::fillStateFromPrStatus(PlatformState *state) { } /** - * @brief PlatformThread::fillStateFromSimpleRegs + * @brief Fills the state by reading the general-purpose registers via PTRACE_GETREGS. * @param state * @return */ @@ -89,7 +89,7 @@ bool PlatformThread::fillStateFromSimpleRegs(PlatformState *state) { } /** - * @brief PlatformThread::fillStateFromVFPRegs + * @brief Fills the state with VFP floating-point registers via PTRACE_GETVFPREGS. * @param state * @return */ @@ -107,7 +107,7 @@ bool PlatformThread::fillStateFromVFPRegs(PlatformState *state) { } /** - * @brief PlatformThread::getState + * @brief Reads the full CPU and VFP register state for this thread into the provided State object. * @param state */ void PlatformThread::getState(State *state) { @@ -123,7 +123,7 @@ void PlatformThread::getState(State *state) { } /** - * @brief PlatformThread::setState + * @brief Writes the CPU and VFP register state back into the thread via ptrace. * @param state */ void PlatformThread::setState(const State &state) { @@ -147,7 +147,7 @@ void PlatformThread::setState(const State &state) { } /** - * @brief PlatformThread::getDebugRegister + * @brief Returns the value of hardware debug register n (currently a stub). * @param n * @return */ @@ -156,7 +156,7 @@ unsigned long PlatformThread::getDebugRegister(std::size_t n) { } /** - * @brief PlatformThread::setDebugRegister + * @brief Sets hardware debug register n to the given value (currently a stub). * @param n * @param value * @return @@ -166,7 +166,7 @@ long PlatformThread::setDebugRegister(std::size_t n, long value) { } /** - * @brief PlatformThread::instructionPointer + * @brief Returns the current instruction pointer of this thread (currently a stub). * @return */ edb::address_t PlatformThread::instructionPointer() const { @@ -174,7 +174,7 @@ edb::address_t PlatformThread::instructionPointer() const { } /** - * @brief PlatformThread::doStep + * @brief Implements single-step for the given TID by injecting a breakpoint at the next instruction. * @param tid * @param status * @return @@ -355,10 +355,11 @@ Status PlatformThread::doStep(const edb::tid_t tid, const long status) { } /** + * @brief Single-steps this thread, re-delivering the signal that stopped it (unless it was SIGSTOP). + * * steps this thread one instruction, passing the signal that stopped it * (unless the signal was SIGSTOP) * - * @brief PlatformThread::step * @return */ Status PlatformThread::step() { @@ -366,10 +367,11 @@ Status PlatformThread::step() { } /** + * @brief Single-steps this thread, re-delivering the signal only if status is DEBUG_EXCEPTION_NOT_HANDLED. + * * steps this thread one instruction, passing the signal that stopped it * (unless the signal was SIGSTOP, or the passed status != DEBUG_EXCEPTION_NOT_HANDLED) * - * @brief PlatformThread::step * @param status * @return */ From 8dff881409195345d1f373b16c65b12595b2f84b Mon Sep 17 00:00:00 2001 From: Evan Teran Date: Wed, 10 Jun 2026 16:13:04 -0400 Subject: [PATCH 2/2] more docstring cleanups --- cspell.config.yaml | 1 + plugins/Backtrace/CallStack.cpp | 1 - plugins/Backtrace/DialogBacktrace.cpp | 16 --------- plugins/BinarySearcher/DialogAsciiString.cpp | 2 -- plugins/BinarySearcher/DialogResults.cpp | 2 -- plugins/DebuggerCore/DebuggerCoreBase.cpp | 17 +--------- .../DebuggerCore/unix/linux/DebuggerCore.cpp | 2 -- .../unix/linux/PlatformProcess.cpp | 34 ++++--------------- .../unix/linux/PlatformThread.cpp | 6 ---- .../linux/arch/arm-generic/PlatformThread.cpp | 6 ---- 10 files changed, 8 insertions(+), 79 deletions(-) diff --git a/cspell.config.yaml b/cspell.config.yaml index 3bdfde647..28d9b49de 100644 --- a/cspell.config.yaml +++ b/cspell.config.yaml @@ -35,6 +35,7 @@ words: - Opfer - Pixmap - Polyline + - PTRACE_POKEDATA - qcommonstyle - qgetenv - qlonglong diff --git a/plugins/Backtrace/CallStack.cpp b/plugins/Backtrace/CallStack.cpp index 7e2ce446c..c2b978c3a 100644 --- a/plugins/Backtrace/CallStack.cpp +++ b/plugins/Backtrace/CallStack.cpp @@ -26,7 +26,6 @@ CallStack::CallStack() { /** * @brief Walks the stack frame chain from the current frame pointer to build the list of return addresses. - * */ void CallStack::getCallStack() { /* diff --git a/plugins/Backtrace/DialogBacktrace.cpp b/plugins/Backtrace/DialogBacktrace.cpp index 1fb57a65b..802f63cc0 100644 --- a/plugins/Backtrace/DialogBacktrace.cpp +++ b/plugins/Backtrace/DialogBacktrace.cpp @@ -118,10 +118,6 @@ DialogBacktrace::DialogBacktrace(QWidget *parent, Qt::WindowFlags f) /** * @brief Connects the UI update signal and populates the call stack table when the dialog is shown. - * - * Ensures the column sizes are correct, connects the sig/slot for syncing with - * the Debugger UI, then populates the Call Stack table. - * */ void DialogBacktrace::showEvent(QShowEvent *) { @@ -136,9 +132,6 @@ void DialogBacktrace::showEvent(QShowEvent *) { /** * @brief Clears and repopulates the call stack table with current stack frame entries. - * - * Populates the Call Stack table with stack frame entries. - * */ void DialogBacktrace::populateTable() { @@ -208,10 +201,6 @@ void DialogBacktrace::populateTable() { /** * @brief Disconnects the UI update signal when the dialog is hidden to avoid unnecessary table rebuilds. - * - * Disconnects the signal/slot when the dialog goes away so that - * populate_table() is not called unnecessarily. - * */ void DialogBacktrace::hideEvent(QHideEvent *) { disconnect(edb::v1::debugger_ui, SIGNAL(uiUpdated()), this, SLOT(populateTable())); @@ -220,8 +209,6 @@ void DialogBacktrace::hideEvent(QHideEvent *) { /** * @brief Jumps the disassembly view to the address of the double-clicked call stack table entry. * - * Jumps to the double-clicked address in the CPU/Disassembly view. - * * @param item */ void DialogBacktrace::on_tableWidgetCallStack_itemDoubleClicked(QTableWidgetItem *item) { @@ -231,9 +218,6 @@ void DialogBacktrace::on_tableWidgetCallStack_itemDoubleClicked(QTableWidgetItem /** * @brief Enables or disables the "Return To" button based on whether the clicked cell is a return address column. * - * Enables the "Run To Return" button if the selected cell is in the column for - * return addresses. Disables it, otherwise. - * * @param row * @param column */ diff --git a/plugins/BinarySearcher/DialogAsciiString.cpp b/plugins/BinarySearcher/DialogAsciiString.cpp index 8e15631a9..78a1c3ffc 100644 --- a/plugins/BinarySearcher/DialogAsciiString.cpp +++ b/plugins/BinarySearcher/DialogAsciiString.cpp @@ -49,8 +49,6 @@ DialogAsciiString::DialogAsciiString(QWidget *parent, Qt::WindowFlags f) /** * @brief Searches stack memory for stack-aligned pointers that point to the entered ASCII string. - * - * find *stack aligned pointers* to exact string matches */ void DialogAsciiString::doFind() { diff --git a/plugins/BinarySearcher/DialogResults.cpp b/plugins/BinarySearcher/DialogResults.cpp index 05645a619..e59fa35cd 100644 --- a/plugins/BinarySearcher/DialogResults.cpp +++ b/plugins/BinarySearcher/DialogResults.cpp @@ -23,8 +23,6 @@ DialogResults::DialogResults(QWidget *parent, Qt::WindowFlags f) /** * @brief Navigates to the double-clicked result address in the appropriate view (code, stack, or data). * - * follows the found item in the appropriate view - * * @param item */ void DialogResults::on_listWidget_itemDoubleClicked(QListWidgetItem *item) { diff --git a/plugins/DebuggerCore/DebuggerCoreBase.cpp b/plugins/DebuggerCore/DebuggerCoreBase.cpp index 880baf5ce..bca0db379 100644 --- a/plugins/DebuggerCore/DebuggerCoreBase.cpp +++ b/plugins/DebuggerCore/DebuggerCoreBase.cpp @@ -14,9 +14,6 @@ namespace DebuggerCorePlugin { /** * @brief Removes all breakpoints if a process is currently attached. - * - * removes all breakpoints - * */ void DebuggerCoreBase::clearBreakpoints() { if (attached()) { @@ -27,8 +24,6 @@ void DebuggerCoreBase::clearBreakpoints() { /** * @brief Creates a new breakpoint at the given address, or returns the existing one if already present. * - * creates a new breakpoint (only if there isn't already one at the given address) - * * @param address * @return the breakpoint which was created/found */ @@ -70,7 +65,7 @@ std::shared_ptr DebuggerCoreBase::findBreakpoint(edb::address_t add /** * @brief Finds the breakpoint that triggered at the given address by checking possible rewind sizes. * - * similarly to findBreakpoint, finds a breakpoint near given address. But + * Similarly to findBreakpoint, finds a breakpoint near given address. But * unlike findBreakpoint, this function looks for a breakpoint which ends * up at this address after being triggered, instead of just starting there. * @@ -94,10 +89,6 @@ std::shared_ptr DebuggerCoreBase::findTriggeredBreakpoint(edb::addr /** * @brief Removes the breakpoint at the given address; this is a no-op if no breakpoint exists there. * - * Decrements the reference count for the breakpoint found at the given address. - * If the reference count goes to zero, then it is removed. - * This is a no-op if there is no breakpoint present. - * * @param address */ void DebuggerCoreBase::removeBreakpoint(edb::address_t address) { @@ -113,9 +104,6 @@ void DebuggerCoreBase::removeBreakpoint(edb::address_t address) { /** * @brief Ends the debug session by detaching from or killing the debuggee according to user preferences. - * - * Ends debug session, detaching from or killing debuggee according to user preferences - * */ void DebuggerCoreBase::endDebugSession() { if (attached()) { @@ -140,9 +128,6 @@ void DebuggerCoreBase::endDebugSession() { /** * @brief Returns a copy of the breakpoint map, keeping shared_ptr references alive until it is destroyed. * - * returns a copy of the BP list, these count as references to the BPs - * preventing full removal until this list is destructed. - * * @return a list of shared_ptr's to the BPs */ DebuggerCoreBase::BreakpointList DebuggerCoreBase::backupBreakpoints() const { diff --git a/plugins/DebuggerCore/unix/linux/DebuggerCore.cpp b/plugins/DebuggerCore/unix/linux/DebuggerCore.cpp index 159a1ed7a..fb139a2be 100644 --- a/plugins/DebuggerCore/unix/linux/DebuggerCore.cpp +++ b/plugins/DebuggerCore/unix/linux/DebuggerCore.cpp @@ -631,8 +631,6 @@ Status DebuggerCore::stopThreads() { /** * @brief Waits up to the given timeout for a debug event from any traced thread, returning the event or nullptr on timeout. * - * waits for a debug event, witha timeout specified in milliseconds - * * @param msecs * @return nullptr if an error or timeout occurs */ diff --git a/plugins/DebuggerCore/unix/linux/PlatformProcess.cpp b/plugins/DebuggerCore/unix/linux/PlatformProcess.cpp index 5175dec72..28c3843aa 100644 --- a/plugins/DebuggerCore/unix/linux/PlatformProcess.cpp +++ b/plugins/DebuggerCore/unix/linux/PlatformProcess.cpp @@ -92,8 +92,6 @@ QStringList split_max(const QString &str, int maxparts) { /** * @brief Parses a single line from /proc/[pid]/maps and returns the corresponding memory region. * - * parses the data from a line of a memory map file - * * @param line * @return */ @@ -282,8 +280,6 @@ PlatformProcess::PlatformProcess(DebuggerCore *core, edb::pid_t pid) /** * @brief Reads up to len bytes from the process at the given address, transparently patching through breakpoint bytes. * - * reads bytes into starting at
- * * @param address * @param buf * @param len @@ -370,9 +366,6 @@ std::size_t PlatformProcess::readBytes(edb::address_t address, void *buf, std::s /** * @brief Writes len bytes into the process at the given address and records the patch. * - * Same as writeBytes, except that it also records the original data that was - * found at the address being written to. - * * @param address * @param buf * @param len @@ -408,8 +401,6 @@ std::size_t PlatformProcess::patchBytes(edb::address_t address, const void *buf, /** * @brief Writes len bytes from buf into the process memory at the given address without recording a patch. * - * writes bytes from starting at
- * * @param address * @param buf * @param len @@ -446,11 +437,9 @@ std::size_t PlatformProcess::writeBytes(edb::address_t address, const void *buf, /** * @brief Reads count whole memory pages starting at the page-aligned address. * - * reads pages from the process starting at
- * - * @param address - must be page aligned. - * @param buf - sizeof(buf) must be >= count * core_->page_size() - * @param count - number of pages + * @param address must be page aligned. + * @param buf sizeof(buf) must be >= count * core_->page_size() + * @param count number of pages * @return */ std::size_t PlatformProcess::readPages(edb::address_t address, void *buf, std::size_t count) const { @@ -660,8 +649,6 @@ uint8_t PlatformProcess::ptraceReadByte(edb::address_t address, bool *ok) const /** * @brief Writes a single byte into the process at the given address via PTRACE_POKEDATA. * - * writes a single byte at a given address via ptrace API. - * * @param address * @param value * @param ok @@ -839,9 +826,7 @@ QList PlatformProcess::loadedModules() const { } /** - * @brief Sends SIGSTOP to all threads to pause the process. - * - * stops *all* threads of a process + * @brief Sends SIGSTOP to ALL threads to pause the process. * * @return */ @@ -861,9 +846,7 @@ Status PlatformProcess::pause() { } /** - * @brief Resumes all threads from their stopped state with the given event status. - * - * resumes ALL threads + * @brief Resumes ALL threads from their stopped state with the given event status. * * @param status * @return @@ -911,8 +894,6 @@ Status PlatformProcess::resume(edb::EventStatus status) { /** * @brief Single-steps the current thread with the given event status. * - * steps the currently active thread - * * @param status * @return */ @@ -1045,10 +1026,7 @@ edb::address_t get_relocation(const IProcess *process, edb::address_t phdr_memad /** * @brief Returns the address of the r_debug structure by searching the dynamic segment. * - * attempts to locate the ELF debug pointer in the target process and returns - * it, 0 of not found - * - * @return + * @return The address of the r_debug structure or 0 if not found. */ edb::address_t PlatformProcess::debugPointer() const { diff --git a/plugins/DebuggerCore/unix/linux/PlatformThread.cpp b/plugins/DebuggerCore/unix/linux/PlatformThread.cpp index 7e59310e4..89751472e 100644 --- a/plugins/DebuggerCore/unix/linux/PlatformThread.cpp +++ b/plugins/DebuggerCore/unix/linux/PlatformThread.cpp @@ -108,9 +108,6 @@ QString PlatformThread::runState() const { /** * @brief Resumes this thread via ptrace, re-delivering the signal that stopped it (unless it was SIGSTOP). * - * resumes this thread, passing the signal that stopped it - * (unless the signal was SIGSTOP) - * * @return */ Status PlatformThread::resume() { @@ -119,9 +116,6 @@ Status PlatformThread::resume() { /** * @brief Resumes this thread via ptrace, re-delivering the signal only if status is DEBUG_EXCEPTION_NOT_HANDLED. - * - * resumes this thread, passing the signal that stopped it - * (unless the signal was SIGSTOP, or the passed status != DEBUG_EXCEPTION_NOT_HANDLED) * @param status * @return */ diff --git a/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp b/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp index 609a4cfdc..cf066a9f2 100644 --- a/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp +++ b/plugins/DebuggerCore/unix/linux/arch/arm-generic/PlatformThread.cpp @@ -357,9 +357,6 @@ Status PlatformThread::doStep(const edb::tid_t tid, const long status) { /** * @brief Single-steps this thread, re-delivering the signal that stopped it (unless it was SIGSTOP). * - * steps this thread one instruction, passing the signal that stopped it - * (unless the signal was SIGSTOP) - * * @return */ Status PlatformThread::step() { @@ -369,9 +366,6 @@ Status PlatformThread::step() { /** * @brief Single-steps this thread, re-delivering the signal only if status is DEBUG_EXCEPTION_NOT_HANDLED. * - * steps this thread one instruction, passing the signal that stopped it - * (unless the signal was SIGSTOP, or the passed status != DEBUG_EXCEPTION_NOT_HANDLED) - * * @param status * @return */