summaryrefslogtreecommitdiff
path: root/src/debug.h
diff options
context:
space:
mode:
authorTor Aamodt <[email protected]>2020-07-15 14:42:42 -0700
committerTor Aamodt <[email protected]>2020-07-15 14:42:42 -0700
commit5e8e84976b63186ce4682e3dbb1bea84542558a9 (patch)
tree2610cd196eba67032ff664c3bae192eb0b434d79 /src/debug.h
parent089446c9898b050f36e854eebff5dbd33332dce8 (diff)
parent53e63b9b5684388ad102848275efe524d68aab01 (diff)
Merge branch 'dev'
Diffstat (limited to 'src/debug.h')
-rw-r--r--src/debug.h121
1 files changed, 57 insertions, 64 deletions
diff --git a/src/debug.h b/src/debug.h
index 7c79f1e..0c4dea7 100644
--- a/src/debug.h
+++ b/src/debug.h
@@ -7,23 +7,24 @@
//
// Redistributions of source code must retain the above copyright notice, this
// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of The University of British Columbia nor the names of its
-// contributors may be used to endorse or promote products derived from this
-// software without specific prior written permission.
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution. Neither the name of
+// The University of British Columbia nor the names of its contributors may be
+// used to endorse or promote products derived from this software without
+// specific prior written permission.
//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
#ifndef PTX_DEBUG_INCLUDED
#define PTX_DEBUG_INCLUDED
@@ -33,61 +34,53 @@
#include <string>
class brk_pt {
-public:
- brk_pt() { m_valid=false; }
- brk_pt( const char *fileline, unsigned uid )
- {
- m_valid = true;
- m_watch = false;
- m_fileline = std::string(fileline);
- m_thread_uid=uid;
- }
- brk_pt( unsigned addr, unsigned value )
- {
- m_valid = true;
- m_watch = true;
- m_addr = addr;
- m_value = value;
- }
+ public:
+ brk_pt() { m_valid = false; }
+ brk_pt(const char *fileline, unsigned uid) {
+ m_valid = true;
+ m_watch = false;
+ m_fileline = std::string(fileline);
+ m_thread_uid = uid;
+ }
+ brk_pt(unsigned addr, unsigned value) {
+ m_valid = true;
+ m_watch = true;
+ m_addr = addr;
+ m_value = value;
+ }
- unsigned get_value() const { return m_value; }
- addr_t get_addr() const { return m_addr; }
- bool is_valid() const { return m_valid; }
- bool is_watchpoint() const { return m_watch; }
- bool is_equal( const std::string &fileline, unsigned uid ) const
- {
- if( m_watch )
- return false;
- if( (m_thread_uid != (unsigned)-1) && (uid != m_thread_uid) )
- return false;
- return m_fileline == fileline;
- }
- std::string location() const
- {
- char buffer[1024];
- sprintf(buffer,"%s thread uid = %u", m_fileline.c_str(), m_thread_uid);
- return buffer;
- }
+ unsigned get_value() const { return m_value; }
+ addr_t get_addr() const { return m_addr; }
+ bool is_valid() const { return m_valid; }
+ bool is_watchpoint() const { return m_watch; }
+ bool is_equal(const std::string &fileline, unsigned uid) const {
+ if (m_watch) return false;
+ if ((m_thread_uid != (unsigned)-1) && (uid != m_thread_uid)) return false;
+ return m_fileline == fileline;
+ }
+ std::string location() const {
+ char buffer[1024];
+ sprintf(buffer, "%s thread uid = %u", m_fileline.c_str(), m_thread_uid);
+ return buffer;
+ }
- unsigned set_value( unsigned val ) { return m_value=val; }
-private:
- bool m_valid;
- bool m_watch;
+ unsigned set_value(unsigned val) { return m_value = val; }
- // break point
- std::string m_fileline;
- unsigned m_thread_uid;
+ private:
+ bool m_valid;
+ bool m_watch;
- // watch point
- unsigned m_addr;
- unsigned m_value;
-};
+ // break point
+ std::string m_fileline;
+ unsigned m_thread_uid;
-extern int gpgpu_ptx_instruction_classification ;
+ // watch point
+ unsigned m_addr;
+ unsigned m_value;
+};
class ptx_thread_info;
class ptx_instruction;
-bool thread_at_brkpt( ptx_thread_info *thd_info, const struct brk_pt &b );
-void hit_watchpoint( unsigned watchpoint_num, ptx_thread_info *thd, const ptx_instruction *pI );
+bool thread_at_brkpt(ptx_thread_info *thd_info, const class brk_pt &b);
#endif