Commit Graph

257 Commits

Author SHA1 Message Date
skidau 219a5078e8 Added a "Step Out" (aka "Step return") function to the debugger.
Conflicts:
	Source/Core/DolphinWX/Debugger/CodeWindow.h
2014-10-26 14:56:01 +11:00
Ryan Houdek cb10bef9a4 Implements LLVM based disassembler for the debugger.
This will work for all of our platforms, x86, ARMv7, and AArch64.
Main issue with this is that LLVM's cmake files aren't correctly finding the LLVM install.
Not sure if this is Ubuntu's issue or not, it may just work on other operating systems.

We could potentially improve this, you can pass in a specific CPU in to the LLVM disassembler. This would probably affect latency times that are
reported by LLVM's disassembly? This needs to be further investigated later.
2014-10-24 18:10:21 -05:00
Ryan Houdek ecf65d6f1f Cleans up the JIT block viewer in the WX UI.
This code was an absolute mess. It had allocated an arbitrarily large string buffer to hold instructions that were disassembled.

Strip out all of the nasty raw C string manipulation and replaces it with ostringstream usage.
Fixes an issue where if you didn't have a JIT recompiler running then Dolphin would instantly crash if you tried comparing PPC to x86 code.
Changed the disassembly of the host side code from being inline to the function to instead being in a class, this will be required when I add support
for ARMv7 and AArch64 to this window.
2014-10-21 12:27:59 -05:00
Lioncash 635408b686 Debugger: Fix class indentation 2014-10-18 22:55:23 -04:00
skidau fc774f0232 Merge pull request #1062 from zhuowei/master
Parse input as hex instead of decimal to match display values in the register view
2014-10-16 13:58:56 +11:00
comex 47faf7c4fd Merge branch 'Remove-MMU-Speed-Hack-option' of https://github.com/skidau/dolphin into skidau-Remove-MMU-Speed-Hack-option
Conflicts:
	Source/Core/Core/PowerPC/Jit64/JitAsm.cpp
2014-10-14 01:08:20 -04:00
skidau 01359a481b Merge pull request #1265 from skidau/debugger-registers-mmu
Added some of the MMU registers into the debugger Register window
2014-10-14 12:47:47 +11:00
Lioncash 9f2b48ab07 Core: Use an enum for indicating CPU cores 2014-10-13 10:35:31 -04:00
skidau 6d9990585c Added some of the MMU registers into the debugger Register window 2014-10-12 20:03:29 +11:00
skidau 8738b1879c Removed the MMU Speed Hack option. The TLBHack is now enabled if the MMU option is disabled. This will help catch cases where a game requires the TLBHack but the option has not been set in the game ini. It also removes the possibility to mistakenly enable both the MMU and TLBHack. 2014-10-11 11:31:16 +11:00
Fiora 8bf2cf0641 Debug: fix disable block linking option
Previously it did the opposite of what it was supposed to; when checked, it'd
turn block linking on, and when unchecked, it'd turn it off.

Also update JITIL's block linking disabling in debug mode to match the behavior
of the regular JIT.
2014-10-08 19:03:25 -07:00
Fiora 85547d94be JIT: properly remove FIFO write addresses when code is invalidated
Fixes a bug caused by interaction with carry optimizations; might fix other
issues too.
2014-09-30 01:00:23 -07:00
skidau 6379d3983a Merge pull request #1137 from lioncash/debugger-crash
DolphinWX: Fix case where the debugger would crash on hiding a pane.
2014-09-22 14:48:29 +10:00
Lioncash 95660a5563 DolphinWX: Fix case where the debugger would crash on hiding a pane.
These ID values would clash with the window parent IDs of all the actual debugger panes (they are in the 350 range as well).

For example, attempting to show and then close the memory window would cause an assertion, because it would attempt to destroy the text control for searching through memory, rather than destroying the actual parent window it's attached to.

These IDs are only used locally, so their value doesn't matter.
2014-09-21 14:06:27 -04:00
Lioncash dc65ef33ba DolphinWX: Fix the memory view in the debugger 2014-09-21 11:47:52 -04:00
Ryan Houdek 2e1377ab7e Merge pull request #1107 from FioraAeterna/opcodesearch
Debugger: make opcode search a bit better
2014-09-19 15:50:54 -05:00
Fiora 20c3a0f2d8 Debugger: scroll by multiples of 4 bytes
Avoids that weird effect where scrolling offsets code from 4-byte boundaries,
showing nonsense 75% of the time.
2014-09-18 03:54:57 -07:00
Fiora 8ce4676605 Debugger: make opcode search a bit better
Search a wider range (not all games fit in the originally searched range).
Print a notice if the opcode isn't found, instead of silently failing.
2014-09-18 03:47:46 -07:00
Zhuowei Zhang 3eaeeee41d Parse input as hex instead of decimal to match display values in the debugger's register view 2014-09-12 00:21:49 -04:00
Rohit Nirmal c0f7cab3f5 Remove extra semicolons at the ends of some lines. 2014-09-10 12:17:38 -04:00
Ryan Houdek 71cb09f1ca Merge pull request #1027 from rohit-n/change-include
Include CommonTypes.h instead of Common.h.
2014-09-10 00:35:16 -05:00
Rachel Bryk f93aa7087c Kill Core::g_CoreStartupParameter. 2014-09-09 00:24:49 -04:00
Rohit Nirmal fbc64984ca Include CommonTypes.h instead of Common.h. 2014-09-08 15:39:58 -04:00
Lioncash 9db370ea40 DolphinWX: Use std::string over char arrays in MemoryView 2014-09-07 20:36:02 -04:00
shuffle2 46c1a0f03b Merge pull request #733 from lioncash/readability
DolphinWX: More readable variable names in BreakpointView
2014-09-03 01:28:17 -07:00
Lioncash 8553b0f27b DolphinWX: Clean up brace placements 2014-08-30 18:06:48 -04:00
Lioncash 1d706b2311 Get rid of C-style empty function parameter indicators 2014-08-30 15:23:48 -04:00
Lioncash f239ea3853 DolphinWX: Parenthesize some expressions in CodeView.cpp 2014-08-24 15:40:19 -04:00
Lioncash c3e41809d9 DolphinWX: Move the CodeView debugger view over to wxGraphicsContext
This is a more advanced drawing 'backend' over the previous one and allows us to control things like transparency and anti-aliasing, etc.
2014-08-24 15:40:05 -04:00
Lioncash 6a74f5e8f6 Merge pull request #817 from archshift/disabledcolor
Fixed toolbar's disabled button color.
2014-08-23 05:08:26 -04:00
Lioncash 6a8dfda0ea DolphinWX: Use the typesafe equivalents for declaring wx event types
The others were used when wx 2.4 was around
2014-08-17 16:18:58 -04:00
archshift b7f3797689 Wx: further cleanup to toolbar creation process 2014-08-17 12:57:44 -07:00
archshift b74a34795b Fixed toolbar's disabled button color. 2014-08-17 12:57:44 -07:00
Dolphin Bot 1d88091e0b Merge pull request #821 from FioraAeterna/fixjitcompare
Debugger: fix JIT block viewer PPC view
2014-08-17 07:29:25 +02:00
Fiora a317dac089 Debugger: fix JIT block viewer PPC view
The JIT block compare code didn't set the same options for the PPCAnalyzer
as the actual JIT did, which made the PPC side of the JIT block viewer stop
at the first branch instead of the end of the block.
2014-08-16 22:25:49 -07:00
Lioncash 07f72b1afc Merge pull request #811 from FioraAeterna/fixblowup
Debugger: fix blowup calculation again
2014-08-16 12:42:27 -04:00
Lioncash cf46ac7dc9 Core: Kill off Host_ShowJitResults
Another host function that can be killed off by simple wx event handling
2014-08-15 15:18:28 -04:00
Fiora 56cc0227c3 Debugger: fix blowup calculation again
Wasn't quiiite right in 3c2567 either.
2014-08-15 10:24:35 -07:00
lioncash 77ccfa1967 DolphinWX: Fix variable styling in BreakpointView 2014-08-15 09:51:29 -04:00
Lioncash 2848ff342f DolphinWX: More readable variable names in BreakpointView
Also doesn't make everything rely on a single temp variable.
2014-08-15 09:49:09 -04:00
Fiora 6741cdbe84 Debugger: fix blowup calculation 2014-08-14 13:40:34 -07:00
shuffle2 0b27e0f3f0 Merge pull request #761 from archshift/better-toolbar
Changed main toolbar to be flush with the rest of the window.
2014-08-11 20:12:24 -07:00
Lioncash a04809b4d1 DolphinWX: Fix scrolling in hex mode for the memory view
Prior to this after painting the hex values, it would increment the curAddress by 32. This is not only a bug, but unnecessary, since the OnMouseDownL and OnScrollWheel functions should be the only things to handle address incrementing for scrolling purposes.
2014-08-10 03:06:06 -04:00
archshift b81617fba1 Removed TBDebug, using TBMain instead. Fixed debugger assert. 2014-08-09 03:40:56 -07:00
archshift b8b72861b5 Removed AuiTB, moved functions to menubar (Debug->Perspectives) 2014-08-09 03:40:56 -07:00
Lioncash 7bf82f1989 Core: Kill off Host_UpdateLogDisplay()
This was actually never used as far as I can tell. There was no wx event handling done whatsoever for the global ID, So this is basically a dead function.
2014-08-08 19:21:40 -04:00
Lioncash d4eb0684f7 Core: Kill off Host_UpdateBreakPointView()
Uses wxWidgets event propagation to the parent window which then appropriately handles the breakpoint list updating.
2014-08-08 19:21:29 -04:00
archshift 6cd0ebab93 Included toolbar headers, preventing forward-decl errors 2014-08-08 15:04:58 -07:00
archshift 019d5aee49 Changed toolbar to be static, increasing UI integration 2014-08-08 03:43:13 -07:00
Lioncash c051ae3338 DolphinWX: Ensure the code view string vector is always a size of two.
This way if any entries are not populated, then an empty string will be used.
2014-08-04 03:15:29 -04:00
Pierre Bourdon 6befa34b60 Merge pull request #647 from lioncash/disasm
Common: Introduce the new Gekko disassembler to Common.
2014-08-03 21:52:08 -07:00
Lioncash 0718937237 Common: Introduce the new Gekko disassembler to Common.
This moves the Gekko disassembler to Common where it should be. Having it in the Bochs disassembly Externals is incorrect.

Unlike the PowerPC disassembler prior however, this one is updated to have an API that is more fitting for C++. e.g. Not needing to specify a string buffer and size. It does all of this under the hood.

This modifies all the DebuggingInterfaces as necessary to handle this.
2014-08-04 00:45:07 -04:00
Pierre Bourdon 497de04c52 Merge pull request #671 from lioncash/non-panic
DolphinWX: Use a regular wxMessageBox instead of a PanicAlert for non-panic errors.
2014-08-03 21:27:27 -07:00
Ryan Houdek 21ee61d7fc Remove x86_32 from DolphinWX. 2014-08-03 13:44:37 -05:00
Lioncash 0ed29e1fac DolphinWX: Use a regular wxMessageBox instead of a PanicAlert for non-panic errors. 2014-08-02 13:49:51 -04:00
Lioncash 298425920a DolphinWX: Fix a possible crash when setting debugger memory values. 2014-07-19 19:59:44 -04:00
Lioncash fa2944898f DolphinWX: Move some public variables to be private in CodeView
It's not used outside of the class, and it also shouldn't be modified
outside of it either (considering it holds all the blr instructions inserted by the user).
2014-07-19 17:23:43 -04:00
Dolphin Bot 5df45dfbba Merge pull request #650 from lioncash/scrolling
DolphinWX: Implement scrolling in the memory views
2014-07-19 19:31:41 +02:00
Lioncash a00c7bdb9e DolphinWX: Implement scrolling in the memory views 2014-07-18 22:42:03 -04:00
Lioncash bc172f4883 DolphinWX: Enable certain Code View context options only when the core is running.
Prior to this, attempting to execute these contextual menu options would
crash the application.
2014-07-17 04:50:53 -04:00
Lioncash 48ca800b13 DolphinWX: Mild readability clean up of CodeView.
- Gets rid of the underscore in some function names
- Appends the 'm_' prefix to class member variables.

Now it isn't a pain to see what is being modified in terms of state. Especially in the OnPaint call.
2014-07-15 23:01:17 -04:00
Lioncash 9c1b427687 DolphinWX: Implement scrolling in the code view and DSP disassembly view. 2014-07-15 21:35:11 -04:00
Scott Mansell d4cfddcf8d Revert "DolphinWX: Use non-deprecated flags for the monospace debugger font" 2014-07-14 21:37:27 +12:00
Lioncash 5c57a1ef4b DolphinWX: Remove the use of some wx 1.0 compatibility functions.
Uses the recommended replacements.
2014-07-13 23:42:37 -04:00
Pierre Bourdon 0563960dbc Merge pull request #603 from lioncash/debugger-font
DolphinWX: Use non-deprecated flags for the monospace debugger font
2014-07-13 06:21:02 +02:00
Lioncash 26f3867e20 DolphinWX: Allow short-hand searching in the code window
Lessens the restrictions on the searching in the code view.
Now typing out the full 8 digit hex number isn't needed. For example, you don't need to type 000000FF to go to FF, you just literally type FF.

Also makes JumpToAddress a boolean function to remain consistent with the DSP code view.

This will also change the address search box to have a red background if
either an invalid hex number is given, or if it's longer than 8 characters
2014-07-11 18:32:32 -04:00
Lioncash 6885bac05f DolphinWX: Use non-deprecated flags for the monospace debugger font 2014-07-11 13:11:11 -04:00
degasus 7e79806efc remove unused globals
Also change globals into statics which are only used in one file
2014-07-11 16:10:20 +02:00
degasus 81ed17be53 avoid the extern keyword in .cpp files 2014-07-11 16:10:20 +02:00
degasus 22e1aa5bb4 mark all local functions as static 2014-07-11 16:07:23 +02:00
Lioncash 6f9483d161 DolphinWX: Remove unnecessary true within event Skip calls 2014-07-10 20:39:26 -04:00
Lioncash 32d53c7d1d DolphinWX: Get rid of an unneccessary cast in CodeWindow
CFrame inherits from CRenderFrame which inherits from wxFrame which
eventually inherits from wxWindow, so this cast is not required.
2014-07-10 20:29:55 -04:00
Jules Blok db7e746cb4 Check whether the core is running instead of checking if it is unitialized.
This properly handles the stopping state and more accurately represents the intended check.
2014-07-08 22:30:44 +02:00
Pierre Bourdon b0b70381f7 Revert "Don't add segfault handler in interpreter mode" 2014-07-07 05:30:06 +02:00
Tillmann Karras 311e9e655a CoreParameter: add enum CPUBackend 2014-07-05 11:02:41 +02:00
Lioncash f05d3f6e5d Use only section-based ini reading. 2014-06-16 01:31:23 -04:00
lioncash efdcfe404f Fix a typo in a function prototype in PowerPCDisasm.h
Should be GetGPRName not GetGRPName.

Removed an unnecessary extern declaration of GetGRPName in RegisterWindow.cpp.

Also added GetFPRName to the PowerPCDisasm header for consistency.
2014-06-04 12:12:28 -04:00
Lioncash 554207a87c Remove an unnecessary null check in CodeWindow.cpp.
The validity of ToolBar is checked at the beginning of the function
2014-05-18 11:43:21 -04:00
Lioncash 75cb8a7452 Fix a typo in the JIT debugger window 2014-05-18 10:31:39 -04:00
Lioncash e1359382be Kill off _T and wxT macros
Minor other alterations that relate to above as well.

Also added the PanicAlertT version of alerts for some error messages that
use PanicAlert. We want the user to actually understand why the error
occurred.
2014-05-17 16:25:51 -04:00
Lioncash 90df5efd01 Get rid of old wx event type usages. Use recommended replacements 2014-05-17 13:17:43 -04:00
Ryan Houdek c794dc8085 Move the JitWindow debugging window over to using the new PPCAnalyzer class. 2014-04-30 10:49:39 -05:00
Pierre Bourdon 6bdcbad3e4 Common: Move the Event class to a separate file, and add tests for it. Fix includes everywhere to match this. 2014-04-14 10:54:07 +02:00
Tillmann Karras fa3cc05753 Turn some non-const refs into pointers 2014-03-17 02:55:57 +01:00
Lioncash a82675b7d5 Kill off some usages of c_str.
Also changes some function params, but this is ok.
Some simplifications were also able to be made (ie. killing off strcmps with ==, etc).
2014-03-14 13:51:23 -04:00
Matthew Parlane 31cfc73a09 Fixes spacing for "for", "while", "switch" and "if"
Also moved && and || to ends of lines instead of start.
Fixed misc vertical alignments and some { needed newlining.
2014-03-11 00:35:07 +13:00
Tillmann Karras d802d39281 clang-modernize -use-nullptr
and s/\bNULL\b/nullptr/g for *.cpp/h/mm files not compiled on my machine
2014-03-09 21:14:26 +01:00
Tillmann Karras f28116b7da clang-modernize -add-override 2014-03-09 21:12:01 +01:00
Matthew Parlane 886060aaf7 Merge pull request #96 from lioncash/remove-console-correctly
Remove console correctly
2014-03-08 15:54:06 +13:00
Matthew Parlane 6704832f3d Merge pull request #139 from lioncash/wx-clean
Remove some superfluous arguments from some wx control creations
2014-03-08 15:50:34 +13:00
Lioncash b2d47401b2 Remove some superfluous arguments from some wx control creations
wx has these as default parameters.
2014-03-05 23:02:34 -05:00
Lioncash 610a6f9b23 Add ClearAllMemChecks to DebugInterface
Breakpoints have one, but memchecks don't, despite being cleared directly in the breakpoint window.

Now DolphinWX should call the interface functions and not the direct functions of the breakpoints or memchecks for clearing.
2014-03-05 21:50:23 -05:00
Ryan Houdek 4f02132f93 Make our architecture defines less stupid.
Our defines were never clear between what meant 64bit or x86_64
This makes a clear cut between bitness and architecture.
This commit also has the side effect of bringing up aarch64 compiling support.
2014-03-04 09:36:59 -06:00
Lioncash 279a8c0148 Change the DebugInterface, PPCDebugInterface, and DSPDebugInterface to use CamelCase names.
This is the standard coding convention in the codebase, so our interfaces should use it too.
2014-03-03 00:39:08 -05:00
Tillmann Karras 315a8ba1c0 Various changes suggested by cppcheck
- remove unused variables
- reduce the scope where it makes sense
- correct limits (did you know that strcat()'s last parameter does not
  include the \0 that is always added?)
- set some free()'d pointers to NULL
2014-02-28 12:43:20 +01:00
Lioncash 8d57f38be7 Purge wx elements of the console. 2014-02-23 03:12:24 -05:00
Pierre Bourdon 70f3a069f2 Revert "Merge pull request #83 from lioncash/remove-console"
This breaks Linux stdout logging.

This reverts commit 7ac5b1f2f8, reversing
changes made to 9bc14012fc.

Revert "Merge pull request #77 from lioncash/remove-console"

This reverts commit 9bc14012fc, reversing
changes made to b18a33377d.

Conflicts:
	Source/Core/Common/LogManager.cpp
	Source/Core/DolphinWX/Frame.cpp
	Source/Core/DolphinWX/FrameAui.cpp
	Source/Core/DolphinWX/LogConfigWindow.cpp
	Source/Core/DolphinWX/LogWindow.cpp
2014-02-23 07:48:06 +01:00
Pierre Bourdon f344a43657 Make DolphinWX/ mostly IWYU clean. 2014-02-23 00:27:27 +01:00
Pierre Bourdon 592ebc5262 Fix more header sorting issues in DolphinWX/ (now check-includes clean). 2014-02-20 01:01:10 +01:00
Lioncash 2afe215271 Convert all includes to relative paths. 2014-02-18 02:19:10 -05:00
Lioncash 3fd87a7636 Second and final pass of clearing out tabs. 2014-02-17 02:19:41 -05:00
Lioncash ca7bdf1d5d Remove the embedded Console from the possible logging options.
Note I do not mean the Logging window, but the console window.
It's literally rarely, if at all used, and offers less advantages over the built-in logging window (ie. it breaks on different locales: http://i.imgur.com/Cs92tQE.png)

This commit should remove all of the console logging.
2014-02-16 20:40:33 -05:00
Tillmann Karras 404624bf0b Turn loops into range-based form
and some things suggested by cppcheck and compiler warnings.
2014-02-13 09:05:50 +01:00
Matthew Parlane 88526be3b5 Merge pull request #50 from Parlane/inifile_tidy
Fix IniFile to use string& instead of char*
2014-02-13 19:04:27 +13:00
Matthew Parlane 3fe05e0a9f Fix IniFile to use string& instead of char*
Also removes .c_str() usages where found.
2014-02-13 17:06:30 +13:00
lioncash d2038049f5 Replace all include guard ifdefs with "#pragma once" 2014-02-10 18:07:16 -05:00
Jasper St. Pierre 34692ab826 Remove unnecessary Src/ folders 2013-12-31 14:03:19 -05:00