summaryrefslogtreecommitdiff
path: root/sim/ucsim/doc/cmd_bp.html
diff options
context:
space:
mode:
authorXavier ASUS <xavi92psx@gmail.com>2019-10-18 00:31:54 +0200
committerXavier ASUS <xavi92psx@gmail.com>2019-10-18 00:31:54 +0200
commit268a53de823a6750d6256ee1fb1e7707b4b45740 (patch)
tree42c1799a9a82b2f7d9790ee9fe181d72a7274751 /sim/ucsim/doc/cmd_bp.html
downloadsdcc-gas-268a53de823a6750d6256ee1fb1e7707b4b45740.tar.gz
sdcc-3.9.0 fork implementing GNU assembler syntax
This fork aims to provide better support for stm8-binutils
Diffstat (limited to 'sim/ucsim/doc/cmd_bp.html')
-rw-r--r--sim/ucsim/doc/cmd_bp.html112
1 files changed, 112 insertions, 0 deletions
diff --git a/sim/ucsim/doc/cmd_bp.html b/sim/ucsim/doc/cmd_bp.html
new file mode 100644
index 0000000..0429e30
--- /dev/null
+++ b/sim/ucsim/doc/cmd_bp.html
@@ -0,0 +1,112 @@
+<html>
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset=ISO-8859-2">
+ <title>Breakpoints commands of &mu;Csim</title>
+ </head>
+ <body style=" background-color: white;">
+ <!-- BREAKPOINTS -->
+ <h2>Commands of <i>&mu;Csim</i> to manage breakpoints</h2>
+ Two kind of breakpoint can be used: fetch and event breakpoint. <b>Fetch</b>
+ breakpoints are classical breakpoints. They can be placed at any instruction
+ in the code memory. Breakpoint will be hit if CPU fetches instruction code
+ from the memory location specified by the breakpoint. Only fetching of first
+ byte of the instruction hits the breakpoint. If the execution reaches a
+ breakpoint it stops <i>before</i> the instruction at location specified by
+ the breakpoint would be executed.
+ <p><b>Event</b> breakpoints are special onces. They cause stop of execution
+ if event specified by the breakpoint occurs. Event can be a read or a
+ write operation on any address space location. Event breakpoint stops
+ execution <i>after</i> specified event occurred. </p>
+ <p>Every breakpoint can be <b>fix</b> (permanent) or <b>dynamic</b>
+ (temporary). Dynamic breakpoints are automatically removed when they
+ reached. Some commands place dynamic fetch breakpoints into the code, for
+ example <a href="#g"><b>go</b></a> or <a href="#n"><b>next</b></a>. </p>
+ <p>A <b>hit number</b> can be associated to any breakpoint. This hit number
+ specifies how many times the breakpoint must be hit before it causes the
+ execution to stop. This hit number is 1 by default. </p>
+ <hr> <a name="break">
+ <h3>break <i>addr [hit] [if expression]</i> <br>
+ break <i>memory_type r|w addr [hit] [if expression]<br>
+ </i></h3>
+ </a> <a name="tbreak">
+ <h3>tbreak<i> addr [hit] [if expression]</i> <br>
+ tbreak <i>memory_type r|w addr [hit] [if expression]<br>
+ </i></h3>
+ </a> Set fetch or event breakpoint. The command specifies if the breakpoint
+ will be fix (<b>break</b>) or dynamic (temporary) (<b>tbreak</b>).
+ <p>Fetch or event breakpoint can be defined. First form defines fetch while
+ second form defines event breakpoint. </p>
+ <dl>
+ <dt>Fetch breakpoint </dt>
+ <dd>First parameter specifies address where the breakpoint must be placed
+ to. It should be address of an instruction. <br>
+ Second parameter is optional and it specifies the hit number. It is 1 by
+ default. </dd>
+ <dt>Event breakpoint </dt>
+ <dd>First parameter specifies class name of memory where we are going to
+ watch for en event. Class names of memories can be checked by <a href="cmd_general.html#info_memory">info
+ memory</a> command. <br>
+ Second parameter specifies the event. It can be <b>r</b> to specify <b>read</b>
+ operation or <b>w</b> which means <b>write</b> operation. <br>
+ Remaining parameters are address of watched memory location and an
+ optional hit number (1 by default). </dd>
+ </dl>
+ <pre>$ <font color="#118811">s51 remoansi.hex</font>
+ucsim 0.2.24, Copyright (C) 1997 Daniel Drotos, Talker Bt.
+ucsim comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+This is free software, and you are welcome to redistribute it
+under certain conditions; type `show c' for details.
+58659 bytes read from remoansi.hex
+&gt; <font color="#118811">dc 0 0x10</font>
+ 000000 02 01 60 LJMP 0160
+ * 000003 02 00 3c LJMP 003c
+ * 000006 ff MOV R7,A
+ * 000007 ff MOV R7,A
+ * 000008 ff MOV R7,A
+ * 000009 ff MOV R7,A
+ * 00000a ff MOV R7,A
+ * 00000b 02 3b e0 LJMP 3be0
+ * 00000e ff MOV R7,A
+ * 00000f ff MOV R7,A
+ * 000010 ff MOV R7,A
+&gt; <font color="#118811">break 0x160</font>
+Breakpoint 1 at 0x000160: CLR P1.0
+&gt; <font color="#118811">tbreak 8 2</font>
+Breakpoint 2 at 0x000008: MOV R7,A
+&gt; <font color="#118811">g</font>
+Simulation started, PC=0x000000
+Stop at 000160: (4) Breakpoint
+F 000160
+&gt; </pre>
+ <hr> <a name="clear">
+ <h3>clear <i>[addr...]</i></h3>
+ </a> Delete fetch breakpoint. Parameter specifies address of breakpoint. If
+ there is no breakpoint specified at given address this command prints out a
+ warning message.
+ <p>If parameter is not given then breakpoint at current PC will be deleted
+ if it exists. If more than one address is specified then all breakpoints
+ at specified addresses will be deleted. </p>
+ <pre>&gt; <font color="#118811">i b</font>
+Num Type Disp Hit Cnt Address What
+1 fetch keep 1 1 0x000160 CLR P1.0
+2 fetch del 1 1 0x000180 LJMP 022a
+1 event keep 1 1 0x000006 wi
+&gt; <font color="#118811">clear 160</font>
+No breakpoint at 0000a0
+&gt; <font color="#118811">clear 0x160</font>
+&gt; <font color="#118811">i b</font>
+Num Type Disp Hit Cnt Address What
+2 fetch del 1 1 0x000180 LJMP 022a
+1 event keep 1 1 0x000006 wi
+&gt; </pre>
+ <hr> <a name="delete">
+ <h3>delete <i>[number...]</i></h3>
+ </a> Delete breakpoint(s) by its number.
+ <p>If parameter is not used then all breakpoints are deleted. </p>
+ <hr> <a name="commands">
+ <h3>commands <i>script</i></h3>
+ </a>
+ <p> </p>
+ <hr>
+ </body>
+</html>