Commit Graph

178 Commits

Author SHA1 Message Date
Not6
62bc27fd73 add wiiu patch 2017-07-31 02:13:30 +02:00
Eero Tamminen
695914e285 improve midi/rs232 test script error handling 2014-08-29 20:36:52 +03:00
Eero Tamminen
8bd370bd6c raise atari-hd-image image size limit to 512MB 2014-06-25 00:31:07 +03:00
Nicolas Pomarede
4b1ec255e3 Merge 2014-06-24 00:33:00 +02:00
Nicolas Pomarede
60ffcf1c6f When using 'write sector' with STX images, save changes to an external file
Writes made to an STX image will be saved to a file whose extension is .wd1772
instead of .stx ; when a .stx file is loaded later, we look for a matching .wd1772
file to restore the changes made to the .stx file
For now, only 'write sector' commands are saved, not 'write track'
2014-06-24 00:26:25 +02:00
Thomas Huth
73c4f33a8e Typecast arguments of ctype functions to unsigned char.
The ctype functions need an unsigned char, or the behaviour is
"undefined" with certain compilers and C-libraries.
Thanks to Vincent Rivière for the hint.
2014-06-17 14:35:07 +02:00
Eero Tamminen
ee69d2423c generalize similarly to debugger symbols command
It seems that whether offsets are from section start
or from TEXT section start is not just VBCC vlink
issue, so try TEXT offset if section offset fails
regarless of compiler identification.
2014-06-13 23:20:43 +03:00
Eero Tamminen
ab6a733f9b improve hconsole re-usability
- hconsole.Main() constructor takes Hatari command line options as
  argument, and another (optional) option for whether Hatari
  disappearing will terminate the process
- run() method returns False if Hatari disappears
  (or given command was missing/unrecogized)
2014-06-01 22:37:22 +03:00
Eero Tamminen
62c6a2c979 make sure both GUI wrappers output newline 2014-05-29 14:16:25 +03:00
Nicolas Pomarede
77d56569c9 Merge with main tree 2014-05-21 12:08:03 +02:00
Eero Tamminen
4d5c99a6be gst2ascii: handle symbols both from fixed & buggy VBCC/vlink
Improve also advice on what to do when symbol loading
fails or when it succeeds.
2014-05-08 23:36:25 +03:00
Thomas Huth
0634636bfc Fixed compiler warning about ignored return value of fread 2014-05-03 13:35:21 +02:00
Eero Tamminen
f059cdc563 special-case VBCC symbols
it seems that VBCC may be an exception in giving
offsets for all symbol types relative to TEXT
section, so code now checks for VBCC compiled
binary identification and special-cases them
2014-04-30 00:27:13 +03:00
Eero Tamminen
c97057aa81 update gst2ascii similarly, and recommend using 'nm' on problems
(main purpose for gst2ascii is easier debugging of undocumented
symbol table features by being able to do it outside of Hatari
/ emulation.)
2014-04-25 00:14:41 +03:00
Nicolas Pomarede
3d74440fff Add an empty STX_FileNameIsSTX function to be able to build without linking all floppy related files 2014-01-20 20:42:16 +01:00
Nicolas Pomarede
49dffeb34f Merge IPF disk support from summer 2012 2013-12-11 00:07:08 +01:00
Eero Tamminen
874522131d initial spinloop information post-processor 2013-08-11 22:34:17 +03:00
Eero Tamminen
75c9bf8a40 rename "Calls" heading
The first column is really about how many times given
symbol is visited (e.g. by loop that starts from first
instruction in a routine), it's not about subroutine calls,
which can be confusing.

Hopefully renaming it to "Visits/calls" reminds about this.
2013-06-16 19:06:03 +03:00
Eero Tamminen
268a917370 profiler postprocessor: fix div by zero when call count = 0 2013-06-15 12:55:14 +03:00
Eero Tamminen
ca150a46a3 profile post-processor: error -> warning
this case (caller net being boundable to any symbol)
can be valid in the very beginning of a program run,
not necessarily an error
2013-06-02 18:21:25 +03:00
Eero Tamminen
f848b64a2e Windows doesn't support endian.h either
(left-over from BIG_ENDIAN tests)
2013-05-18 21:34:00 +03:00
Eero Tamminen
2436dc4bb0 Windows doesn't support POSIX headers, revert part of previous commit
Add dummy defines for MiNTlib builds instead
(all machines on which they run, should be big-endian).
2013-05-16 23:59:04 +03:00
Eero Tamminen
2b8c062f0e document callgrind generation + notes on profiler accuracy
Also:
- add some example images
- remove some duplicate info from post-processor usage output
2013-05-05 16:58:43 +03:00
Eero Tamminen
ec371d376d indicate costs with potentially missing symbols, reduce name lenght
- if inclusive cost is < in-between-symbols cost, there
  may be symbols missing
- don't give so much space for symbol names.  DRI/GST
  limits name len to 22, use something similar
2013-05-05 13:28:15 +03:00
Eero Tamminen
0321f31f7e fix couple of post-processing corner cases + better messages
- owncounts can be zero although totalcounts aren't
- it's easy to get error if symbols don't from some
  reason match (e.g. because you re-compiled binary
  without re-generating symbols), error message now
  comments about this.
2013-05-04 22:38:39 +03:00
Eero Tamminen
2dbd53d8e2 update also gst2ascii message 2013-05-04 13:42:27 +03:00
Eero Tamminen
e6fb412f41 -o option ignores also useless GCC v2 symbols 2013-05-04 13:33:40 +03:00
Eero Tamminen
5b56e41aa5 use standard C headers & types instead of SDL ones
This way gst2ascii can be easily built also for Atari with MiNTlib.
2013-05-04 13:07:53 +03:00
Eero Tamminen
d04d932254 10 digits for larger counts 2013-04-22 12:47:42 +03:00
Eero Tamminen
80c0d77c07 more info on -i & -p profile post-processor options
-i: show also total time for cycles and per call instructions & time
-p: show both inclusive & exclusive costs, and both percentage & counts
    for them (only inclusive for calls, as for those exclusive values
    are always same as default counts)
2013-04-22 00:08:10 +03:00
Eero Tamminen
6c01a1849f ignore global equated define types on GST symbol import 2013-04-19 23:02:05 +03:00
Eero Tamminen
3fab490314 build & install gst2acii 2013-04-19 15:48:45 +03:00
Eero Tamminen
d7a9d71a64 add gst2ascii tool
This can output DRI/GST format symbol table from
Atari program in ASCII format which is understood
by the profile data post-processor (and Hatari
debugger 'symbols' command in case you want to
modify the symbol information before giving it
to the debugger).
2013-04-19 15:47:59 +03:00
Eero Tamminen
b69a79b1b7 CMake stuff to install profiler post-processor 2013-04-16 00:14:48 +03:00
Eero Tamminen
6d20d3125c add basic manual page for profiler post-processor 2013-04-16 00:14:23 +03:00
Eero Tamminen
ac626c8c5d move also ahcc script 2013-04-15 19:36:40 +03:00
Eero Tamminen
e256433ab2 move debugger scripts to their own directory under tools/
also rename hatari-profile.py to hatari_profile.py,
pylink complains about that (as files with dashes in
them cannot be imported).
2013-04-15 19:35:01 +03:00
Eero Tamminen
9c6729936a fix pylint warning for profile post-processor 2013-04-15 19:29:33 +03:00
Eero Tamminen
bd75e59f51 silence post-processor warning 2013-04-10 18:32:56 +03:00
Eero Tamminen
18333f7086 improve profiler data post-processor callgraph options
These make the graph options behave in more expected way:
* nodes connected to ones specified for --ignore option
  are relinked
* emphasis limit isn't affected by count option
* --only-subroutines option removes all nodes that aren't
  called as subroutines, regardless of their cost
* improve --compact option documentation
2013-04-10 17:04:35 +03:00
Eero Tamminen
285de08b8a profile post-processor: handle PC_UNDEFINED, add --only-subroutines option
* Use caller->callee call type to add some type identification
  for the called symbol/function.  Use that info to:

  - Handle PC_UNDEFINED introduced by previous patch, and mark such
    node(s) in callgraphs separately, as it implies it being the first
    symbol called during profiling.

  - Add preliminary --only-subroutines option that leaves to callgraph
    only symbols that either are called as subroutines, or which
    costs exceed the given limit.
2013-04-10 00:14:06 +03:00
Eero Tamminen
182f2c2f36 fix: devpac listing symbol lines have different format for GST binaries 2013-04-07 20:30:07 +03:00
Eero Tamminen
29faf138e2 change -p option to use Hatari provided total costs instead of estimating them
Unlike the new Hatari provided subroutine call costs, the estimated
costs were just estimates, and could be completely wrong, that's
why this is changed.

The patch is messier than I would like, besause besides:
- adding support for actually using the new Hatari information
  (that was parsed already by previous commit(s))
- removing code for estimated cost propagation
- removing kcachegrind call info for nodes that
  don't have (anymore) total costs
- documenting the new -p option
- updating comments

it also does some other changes:
- class method and member name changes:
  - propagate -> subcost
  - total -> subtotal
  - data/value -> cost
  - add "str" postfix to local variable names that are in
    other methods used for integers/tuples instead of strings
- add "bold" attribute to callgraph nodes & arrows
  for things that are over the given limit
- couple of minor, unrelated doc updates

(they were too intermixed with the other changes.)
2013-04-03 20:12:48 +03:00
Eero Tamminen
57694ea262 initial profiler support for getting full costs for subroutine calls
includes:
- common code for collecting, processing and outputting
  the data about the full costs
- full CPU side support
- related structure changes in DSP code
- some extra refactoring to improve code CPU/DSP profiling code
- post-processor support for parsing the new data
  and storing it internally

missing:
- DSP side code (opcode classification) needed for
  getting the full costs
- post-processor actually using the new data
- testing the new data correctness
2013-03-18 22:02:22 +02:00
Eero Tamminen
a823e194d8 show different call types with different arrows in callgraphs 2013-03-17 22:35:36 +02:00
Eero Tamminen
83977c4795 propagated call costs are estimated too, if they had multiple callees 2013-03-13 01:22:46 +02:00
Eero Tamminen
7c7ae1a025 initial callgrind/kcachegrind file format output support 2013-03-13 00:53:20 +02:00
Eero Tamminen
150ab4966f separate title line for --no-limited removed nodes 2013-03-12 17:45:00 +02:00
Eero Tamminen
0e4896af72 add --mark and --no-limited callgraph options
These are helpers for really large graphs
* With --mark one can specify substrings for node names
  which should be separately highhlighted in graph.
  This is useful when you're interested in something
  that's below normal highlight limit
* With --no-limited, all nodes below limit are removed
  from graph.  This is something one could try if using
  "--compact --no-leafs --no-intermediate" still leaves
  too many nodes to the graph for it to be readable
2013-03-10 12:50:18 +02:00
Eero Tamminen
f193ea8fd6 add some emulator info to profile data and show it by post-processor 2013-03-10 12:45:43 +02:00