summaryrefslogtreecommitdiff
path: root/src/gpgpu-sim
diff options
context:
space:
mode:
authorTor Aamodt <[email protected]>2010-08-07 05:35:29 -0800
committerTor Aamodt <[email protected]>2010-08-07 05:35:29 -0800
commit4d441a9746616b2e45397097e6a7600a67aa973c (patch)
tree1e4fab27e7e089b72718fbb9814bac6e8c75f471 /src/gpgpu-sim
parent0ef446ceb7b5045030724f6906fc011296623d2d (diff)
watchpoint facility for ptx debugging
[git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 7160]
Diffstat (limited to 'src/gpgpu-sim')
-rw-r--r--src/gpgpu-sim/Makefile248
-rw-r--r--src/gpgpu-sim/gpu-sim.cc110
-rw-r--r--src/gpgpu-sim/gpu-sim.h1
-rw-r--r--src/gpgpu-sim/shader.h2
4 files changed, 252 insertions, 109 deletions
diff --git a/src/gpgpu-sim/Makefile b/src/gpgpu-sim/Makefile
index 2b1412a..96b1a5c 100644
--- a/src/gpgpu-sim/Makefile
+++ b/src/gpgpu-sim/Makefile
@@ -114,3 +114,251 @@ dram_sched.$(OEXT): ../cuda-sim/ptx.tab.h
# DO NOT DELETE
+addrdec.o: /usr/include/string.h /usr/include/features.h
+addrdec.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
+addrdec.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h addrdec.h
+addrdec.o: /usr/include/stdio.h /usr/include/bits/types.h
+addrdec.o: /usr/include/bits/typesizes.h /usr/include/libio.h
+addrdec.o: /usr/include/_G_config.h /usr/include/wchar.h
+addrdec.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
+addrdec.o: /usr/include/stdlib.h /usr/include/sys/types.h /usr/include/time.h
+addrdec.o: /usr/include/endian.h /usr/include/bits/endian.h
+addrdec.o: /usr/include/bits/byteswap.h /usr/include/sys/select.h
+addrdec.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
+addrdec.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
+addrdec.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
+addrdec.o: /usr/include/assert.h ../option_parser.h
+delayqueue.o: delayqueue.h /usr/include/stdio.h /usr/include/features.h
+delayqueue.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
+delayqueue.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
+delayqueue.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
+delayqueue.o: /usr/include/libio.h /usr/include/_G_config.h
+delayqueue.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h
+delayqueue.o: /usr/include/bits/sys_errlist.h /usr/include/assert.h
+delayqueue.o: /usr/include/stdlib.h /usr/include/sys/types.h
+delayqueue.o: /usr/include/time.h /usr/include/endian.h
+delayqueue.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
+delayqueue.o: /usr/include/sys/select.h /usr/include/bits/select.h
+delayqueue.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
+delayqueue.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
+delayqueue.o: /usr/include/alloca.h gpu-misc.h ../intersim/statwraper.h
+dram.o: gpu-misc.h dram.h /usr/include/stdio.h /usr/include/features.h
+dram.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
+dram.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
+dram.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
+dram.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h
+dram.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
+dram.o: /usr/include/stdlib.h /usr/include/sys/types.h /usr/include/time.h
+dram.o: /usr/include/endian.h /usr/include/bits/endian.h
+dram.o: /usr/include/bits/byteswap.h /usr/include/sys/select.h
+dram.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
+dram.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
+dram.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h delayqueue.h
+dram.o: /usr/include/assert.h ../cuda-sim/dram_callback.h
+dram_sched.o: dram_sched.h dram.h /usr/include/stdio.h
+dram_sched.o: /usr/include/features.h /usr/include/sys/cdefs.h
+dram_sched.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
+dram_sched.o: /usr/include/gnu/stubs-64.h /usr/include/bits/types.h
+dram_sched.o: /usr/include/bits/typesizes.h /usr/include/libio.h
+dram_sched.o: /usr/include/_G_config.h /usr/include/wchar.h
+dram_sched.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
+dram_sched.o: /usr/include/stdlib.h /usr/include/sys/types.h
+dram_sched.o: /usr/include/time.h /usr/include/endian.h
+dram_sched.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
+dram_sched.o: /usr/include/sys/select.h /usr/include/bits/select.h
+dram_sched.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
+dram_sched.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
+dram_sched.o: /usr/include/alloca.h delayqueue.h /usr/include/assert.h
+dram_sched.o: ../cuda-sim/dram_callback.h shader.h /usr/include/math.h
+dram_sched.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h
+dram_sched.o: /usr/include/bits/mathcalls.h /usr/include/limits.h
+dram_sched.o: /usr/include/bits/posix1_lim.h /usr/include/bits/local_lim.h
+dram_sched.o: /usr/include/linux/limits.h /usr/include/bits/posix2_lim.h
+dram_sched.o: ../cuda-sim/ptx.tab.h gpu-cache.h ../abstract_hardware_model.h
+dram_sched.o: stack.h gpu-sim.h /usr/include/zlib.h /usr/include/zconf.h
+dram_sched.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h
+dram_sched.o: /usr/include/bits/confname.h /usr/include/getopt.h
+dram_sched.o: ../option_parser.h mem_fetch.h addrdec.h gpu-misc.h
+dwf.o: dwf.h ../abstract_hardware_model.h histogram.h /usr/include/string.h
+dwf.o: /usr/include/features.h /usr/include/sys/cdefs.h
+dwf.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
+dwf.o: /usr/include/gnu/stubs-64.h
+gpu-cache.o: gpu-cache.h /usr/include/stdio.h /usr/include/features.h
+gpu-cache.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
+gpu-cache.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
+gpu-cache.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
+gpu-cache.o: /usr/include/libio.h /usr/include/_G_config.h
+gpu-cache.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h
+gpu-cache.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h
+gpu-cache.o: /usr/include/sys/types.h /usr/include/time.h
+gpu-cache.o: /usr/include/endian.h /usr/include/bits/endian.h
+gpu-cache.o: /usr/include/bits/byteswap.h /usr/include/sys/select.h
+gpu-cache.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
+gpu-cache.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
+gpu-cache.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
+gpu-cache.o: ../abstract_hardware_model.h gpu-misc.h addrdec.h
+gpu-cache.o: /usr/include/assert.h ../option_parser.h /usr/include/string.h
+gpu-misc.o: gpu-misc.h
+gpu-sim.o: gpu-sim.h /usr/include/stdio.h /usr/include/features.h
+gpu-sim.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
+gpu-sim.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
+gpu-sim.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
+gpu-sim.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h
+gpu-sim.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
+gpu-sim.o: /usr/include/stdlib.h /usr/include/sys/types.h /usr/include/time.h
+gpu-sim.o: /usr/include/endian.h /usr/include/bits/endian.h
+gpu-sim.o: /usr/include/bits/byteswap.h /usr/include/sys/select.h
+gpu-sim.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
+gpu-sim.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
+gpu-sim.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
+gpu-sim.o: /usr/include/math.h /usr/include/bits/huge_val.h
+gpu-sim.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h
+gpu-sim.o: /usr/include/zlib.h /usr/include/zconf.h /usr/include/unistd.h
+gpu-sim.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h
+gpu-sim.o: /usr/include/getopt.h ../option_parser.h shader.h
+gpu-sim.o: /usr/include/limits.h /usr/include/bits/posix1_lim.h
+gpu-sim.o: /usr/include/bits/local_lim.h /usr/include/linux/limits.h
+gpu-sim.o: /usr/include/bits/posix2_lim.h /usr/include/assert.h
+gpu-sim.o: ../cuda-sim/ptx.tab.h ../cuda-sim/dram_callback.h gpu-cache.h
+gpu-sim.o: ../abstract_hardware_model.h delayqueue.h stack.h dram.h
+gpu-sim.o: mem_fetch.h addrdec.h gpu-misc.h icnt_wrapper.h dwf.h
+gpu-sim.o: warp_tracker.h cflogger.h l2cache.h ../cuda-sim/ptx-stats.h
+gpu-sim.o: ../intersim/statwraper.h ../debug.h ../abstract_hardware_model.h
+gpu-sim.o: /usr/include/string.h mem_latency_stat.h
+icnt_wrapper.o: icnt_wrapper.h /usr/include/assert.h /usr/include/features.h
+icnt_wrapper.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
+icnt_wrapper.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
+icnt_wrapper.o: ../intersim/interconnect_interface.h ../intersim/flit.hpp
+icnt_wrapper.o: ../intersim/booksim.hpp ../intersim/trafficmanager.hpp
+icnt_wrapper.o: ../intersim/module.hpp ../intersim/config_utils.hpp
+icnt_wrapper.o: /usr/include/stdio.h /usr/include/bits/types.h
+icnt_wrapper.o: /usr/include/bits/typesizes.h /usr/include/libio.h
+icnt_wrapper.o: /usr/include/_G_config.h /usr/include/wchar.h
+icnt_wrapper.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
+icnt_wrapper.o: ../intersim/network.hpp ../intersim/credit.hpp
+icnt_wrapper.o: ../intersim/router.hpp ../intersim/buffer_state.hpp
+icnt_wrapper.o: ../intersim/stats.hpp ../intersim/traffic.hpp
+icnt_wrapper.o: ../intersim/routefunc.hpp ../intersim/outputset.hpp
+icnt_wrapper.o: ../intersim/injection.hpp
+l2cache.o: /usr/include/stdlib.h /usr/include/features.h
+l2cache.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
+l2cache.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
+l2cache.o: /usr/include/sys/types.h /usr/include/bits/types.h
+l2cache.o: /usr/include/bits/typesizes.h /usr/include/time.h
+l2cache.o: /usr/include/endian.h /usr/include/bits/endian.h
+l2cache.o: /usr/include/bits/byteswap.h /usr/include/sys/select.h
+l2cache.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
+l2cache.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
+l2cache.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
+l2cache.o: /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h
+l2cache.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h
+l2cache.o: /usr/include/bits/sys_errlist.h /usr/include/string.h
+l2cache.o: ../tr1_hash_map.h ../option_parser.h mem_fetch.h shader.h
+l2cache.o: /usr/include/math.h /usr/include/bits/huge_val.h
+l2cache.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h
+l2cache.o: /usr/include/limits.h /usr/include/bits/posix1_lim.h
+l2cache.o: /usr/include/bits/local_lim.h /usr/include/linux/limits.h
+l2cache.o: /usr/include/bits/posix2_lim.h /usr/include/assert.h
+l2cache.o: ../cuda-sim/ptx.tab.h ../cuda-sim/dram_callback.h gpu-cache.h
+l2cache.o: ../abstract_hardware_model.h delayqueue.h stack.h dram.h addrdec.h
+l2cache.o: histogram.h l2cache.h ../intersim/statwraper.h
+shader.o: shader.h /usr/include/stdio.h /usr/include/features.h
+shader.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
+shader.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
+shader.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
+shader.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h
+shader.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
+shader.o: /usr/include/stdlib.h /usr/include/sys/types.h /usr/include/time.h
+shader.o: /usr/include/endian.h /usr/include/bits/endian.h
+shader.o: /usr/include/bits/byteswap.h /usr/include/sys/select.h
+shader.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
+shader.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
+shader.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
+shader.o: /usr/include/math.h /usr/include/bits/huge_val.h
+shader.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h
+shader.o: /usr/include/limits.h /usr/include/bits/posix1_lim.h
+shader.o: /usr/include/bits/local_lim.h /usr/include/linux/limits.h
+shader.o: /usr/include/bits/posix2_lim.h /usr/include/assert.h
+shader.o: ../cuda-sim/ptx.tab.h ../cuda-sim/dram_callback.h gpu-cache.h
+shader.o: ../abstract_hardware_model.h delayqueue.h stack.h dram.h gpu-sim.h
+shader.o: /usr/include/zlib.h /usr/include/zconf.h /usr/include/unistd.h
+shader.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h
+shader.o: /usr/include/getopt.h ../option_parser.h mem_fetch.h addrdec.h
+shader.o: dwf.h warp_tracker.h cflogger.h gpu-misc.h ../cuda-sim/ptx_sim.h
+shader.o: ../cuda-sim/dram_callback.h ../cuda-sim/opcodes.h
+shader.o: ../cuda-sim/opcodes.def ../cuda-sim/ptx-stats.h
+shader.o: /usr/include/string.h
+stack.o: stack.h ../abstract_hardware_model.h /usr/include/stdlib.h
+stack.o: /usr/include/features.h /usr/include/sys/cdefs.h
+stack.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
+stack.o: /usr/include/gnu/stubs-64.h /usr/include/sys/types.h
+stack.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
+stack.o: /usr/include/time.h /usr/include/endian.h /usr/include/bits/endian.h
+stack.o: /usr/include/bits/byteswap.h /usr/include/sys/select.h
+stack.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
+stack.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
+stack.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
+stack.o: /usr/include/assert.h
+stat-tool.o: /usr/include/stdio.h /usr/include/features.h
+stat-tool.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
+stat-tool.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
+stat-tool.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
+stat-tool.o: /usr/include/libio.h /usr/include/_G_config.h
+stat-tool.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h
+stat-tool.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h
+stat-tool.o: /usr/include/sys/types.h /usr/include/time.h
+stat-tool.o: /usr/include/endian.h /usr/include/bits/endian.h
+stat-tool.o: /usr/include/bits/byteswap.h /usr/include/sys/select.h
+stat-tool.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
+stat-tool.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
+stat-tool.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
+stat-tool.o: /usr/include/assert.h /usr/include/zlib.h /usr/include/zconf.h
+stat-tool.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h
+stat-tool.o: /usr/include/bits/confname.h /usr/include/getopt.h histogram.h
+stat-tool.o: ../abstract_hardware_model.h cflogger.h
+visualizer.o: gpu-sim.h /usr/include/stdio.h /usr/include/features.h
+visualizer.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
+visualizer.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
+visualizer.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
+visualizer.o: /usr/include/libio.h /usr/include/_G_config.h
+visualizer.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h
+visualizer.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h
+visualizer.o: /usr/include/sys/types.h /usr/include/time.h
+visualizer.o: /usr/include/endian.h /usr/include/bits/endian.h
+visualizer.o: /usr/include/bits/byteswap.h /usr/include/sys/select.h
+visualizer.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
+visualizer.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
+visualizer.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
+visualizer.o: /usr/include/math.h /usr/include/bits/huge_val.h
+visualizer.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h
+visualizer.o: /usr/include/zlib.h /usr/include/zconf.h /usr/include/unistd.h
+visualizer.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h
+visualizer.o: /usr/include/getopt.h ../option_parser.h shader.h
+visualizer.o: /usr/include/limits.h /usr/include/bits/posix1_lim.h
+visualizer.o: /usr/include/bits/local_lim.h /usr/include/linux/limits.h
+visualizer.o: /usr/include/bits/posix2_lim.h /usr/include/assert.h
+visualizer.o: ../cuda-sim/ptx.tab.h ../cuda-sim/dram_callback.h gpu-cache.h
+visualizer.o: ../abstract_hardware_model.h delayqueue.h stack.h dram.h
+visualizer.o: mem_fetch.h addrdec.h /usr/include/string.h
+visualizer.o: ../gpgpu-sim/shader.h ../gpgpu-sim/mem_fetch.h
+warp_tracker.o: warp_tracker.h ../abstract_hardware_model.h shader.h
+warp_tracker.o: /usr/include/stdio.h /usr/include/features.h
+warp_tracker.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
+warp_tracker.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
+warp_tracker.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
+warp_tracker.o: /usr/include/libio.h /usr/include/_G_config.h
+warp_tracker.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h
+warp_tracker.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h
+warp_tracker.o: /usr/include/sys/types.h /usr/include/time.h
+warp_tracker.o: /usr/include/endian.h /usr/include/bits/endian.h
+warp_tracker.o: /usr/include/bits/byteswap.h /usr/include/sys/select.h
+warp_tracker.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
+warp_tracker.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
+warp_tracker.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
+warp_tracker.o: /usr/include/math.h /usr/include/bits/huge_val.h
+warp_tracker.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h
+warp_tracker.o: /usr/include/limits.h /usr/include/bits/posix1_lim.h
+warp_tracker.o: /usr/include/bits/local_lim.h /usr/include/linux/limits.h
+warp_tracker.o: /usr/include/bits/posix2_lim.h /usr/include/assert.h
+warp_tracker.o: ../cuda-sim/ptx.tab.h ../cuda-sim/dram_callback.h gpu-cache.h
+warp_tracker.o: delayqueue.h stack.h dram.h
diff --git a/src/gpgpu-sim/gpu-sim.cc b/src/gpgpu-sim/gpu-sim.cc
index 2b4ebe3..1bec72f 100644
--- a/src/gpgpu-sim/gpu-sim.cc
+++ b/src/gpgpu-sim/gpu-sim.cc
@@ -82,6 +82,7 @@
#include "../cuda-sim/ptx-stats.h"
#include "../intersim/statwraper.h"
#include "../abstract_hardware_model.h"
+#include "../debug.h"
#include <stdio.h>
#include <string.h>
@@ -206,7 +207,6 @@ void check_time_vector_update(unsigned int uid,int slot ,long int latency,int ty
void node_req_hist_clear(void *p);
void node_req_hist_dump(void *p);
void node_req_hist_update(void * p,int node, long long cycle);
-static void gpgpu_debug();
/* functionally simulated memory */
extern struct mem_t *mem;
@@ -1765,111 +1765,3 @@ void dump_pipeline()
dump_pipeline_impl(0,-1,-1);
}
-/// interactive debugger
-
-static void gpgpu_debug()
-{
- bool done=true;
-
- static bool single_step=true;
- static unsigned next_brkpt=1;
- static std::map<unsigned,brk_pt> breakpoints;
-
- /// if single stepping, go to interactive debugger
-
- if( single_step )
- done=false;
-
- /// check if we've reached a breakpoint
-
- for( std::map<unsigned,brk_pt>::iterator i=breakpoints.begin(); i!=breakpoints.end(); i++) {
- unsigned num=i->first;
- brk_pt &b=i->second;
- if( b.is_watchpoint() ) {
- unsigned addr = b.get_addr();
- unsigned new_value = read_location(addr);
- if( new_value != b.get_value() ) {
- printf( "GPGPU-Sim DBG: watch point %u triggered (old value=%x, new value=%x)\n",
- num,b.get_value(),new_value );
- b.set_value(new_value);
- done = false;
- }
- } else {
- for( unsigned sid=0; sid < gpu_n_shader; sid++ ) {
- inst_t *fvi = first_valid_thread(sc[sid]->pipeline_reg[IF_ID]);
- if( !fvi ) continue;
- if( thread_at_brkpt(fvi->ptx_thd_info, b) ) {
- done = false;
- printf("GPGPU-Sim DBG: reached breakpoint %u at %s (sm=%u, hwtid=%u)\n",
- num, b.location().c_str(), sid, fvi->hw_thread_id );
- }
- }
- }
- }
-
- /// enter interactive debugger loop
-
- while (!done) {
- printf("(gpgpu-sim dbg) ");
- fflush(stdout);
-
- char line[1024];
- fgets(line,1024,stdin);
-
- char *tok = strtok(line," \t\n");
- if( !strcmp(tok,"dp") ) {
- int shader_num = 0;
- tok = strtok(NULL," \t\n");
- sscanf(tok,"%d",&shader_num);
- dump_pipeline_impl((0x40|0x4|0x1),shader_num,0);
- printf("\n");
- fflush(stdout);
- } else if( !strcmp(tok,"q") || !strcmp(tok,"quit") ) {
- printf("\nreally quit GPGPU-Sim (y/n)?\n");
- fgets(line,1024,stdin);
- tok = strtok(NULL," \t\n");
- if( !strcmp(tok,"y") ) {
- exit(0);
- } else {
- printf("not quiting.\n");
- }
- } else if( !strcmp(tok,"b") ) {
- tok = strtok(NULL," \t\n");
- char brkpt[1024];
- sscanf(tok,"%s",brkpt);
- tok = strtok(NULL," \t\n");
- unsigned uid;
- sscanf(tok,"%u",&uid);
- breakpoints[next_brkpt++] = brk_pt(brkpt,uid);
- } else if( !strcmp(tok,"d") ) {
- tok = strtok(NULL," \t\n");
- unsigned uid;
- sscanf(tok,"%u",&uid);
- breakpoints.erase(uid);
- } else if( !strcmp(tok,"s") ) {
- done = true;
- } else if( !strcmp(tok,"c") ) {
- single_step=false;
- done = true;
- } else if( !strcmp(tok,"w") ) {
- tok = strtok(NULL," \t\n");
- unsigned addr;
- sscanf(tok,"%x",&addr);
- unsigned value = read_location(addr);
- breakpoints[next_brkpt++] = brk_pt(addr,value);
- } else if( !strcmp(tok,"h") ) {
- printf("commands:\n");
- printf(" q - quit GPGPU-Sim\n");
- printf(" b <file>:<line> <thead uid> - set breakpoint\n");
- printf(" w <global address> - set watchpoint\n");
- printf(" del <n> - delete breakpoint\n");
- printf(" s - single step one shader cycle (all cores)\n");
- printf(" c - continue simulation without single stepping\n");
- printf(" dp <n> - display pipeline contents on SM <n>\n");
- printf(" h - print this message\n");
- } else {
- printf("\ncommand not understood.\n");
- }
- fflush(stdout);
- }
-}
diff --git a/src/gpgpu-sim/gpu-sim.h b/src/gpgpu-sim/gpu-sim.h
index e30797e..27d83ad 100644
--- a/src/gpgpu-sim/gpu-sim.h
+++ b/src/gpgpu-sim/gpu-sim.h
@@ -112,5 +112,6 @@ void gpu_print_stat();
int mem_ctrl_full( int mc_id );
void dramqueue_latency_log_dump();
+void dump_pipeline_impl( int mask, int s, int m );
#endif
diff --git a/src/gpgpu-sim/shader.h b/src/gpgpu-sim/shader.h
index 9f64da5..9dd7dc8 100644
--- a/src/gpgpu-sim/shader.h
+++ b/src/gpgpu-sim/shader.h
@@ -896,5 +896,7 @@ unsigned int max_cta_per_shader( shader_core_ctx_t *shader);
#define WB_RT 6
#define ID_OC 7
+extern unsigned int gpu_n_shader;
+extern shader_core_ctx_t **sc;
#endif /* SHADER_H */