summaryrefslogtreecommitdiff
path: root/src/cuda-sim
diff options
context:
space:
mode:
Diffstat (limited to 'src/cuda-sim')
-rw-r--r--src/cuda-sim/ptx_ir.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/cuda-sim/ptx_ir.cc b/src/cuda-sim/ptx_ir.cc
index 6943b48..751b3f4 100644
--- a/src/cuda-sim/ptx_ir.cc
+++ b/src/cuda-sim/ptx_ir.cc
@@ -1256,10 +1256,15 @@ unsigned function_info::print_insn( unsigned pc, FILE * fp ) const
unsigned index = pc - m_start_PC;
char command[1024];
char buffer[1024];
+ memset(command, 0, 1024);
+ memset(buffer, 0, 1024);
snprintf(command,1024,"c++filt -p %s",m_name.c_str());
FILE *p = popen(command,"r");
buffer[0]=0;
- fscanf(p,"%1023s",buffer);
+ fgets(buffer, 1023, p);
+ // Remove trailing "\n" in buffer
+ char *c;
+ if ((c=strchr(buffer, '\n')) != NULL) *c = '\0';
fprintf(fp,"%s",buffer);
if ( index >= m_instr_mem_size ) {
fprintf(fp, "<past last instruction (max pc=%u)>", m_start_PC + m_instr_mem_size - 1 );