summaryrefslogtreecommitdiff
path: root/libcuda/cuda_runtime_api.cc
diff options
context:
space:
mode:
authorMengchi Zhang <[email protected]>2019-05-28 13:14:40 -0400
committerGitHub <[email protected]>2019-05-28 13:14:40 -0400
commitfb0618bb6905e70ad4055c1a2f7b1012508efaac (patch)
treeb302badc1adeddb1e270cec2dbcf7c2f07ed980e /libcuda/cuda_runtime_api.cc
parent112e85e32c08e9fa0a34bb0ec262d8e95df61e6b (diff)
parent895f18504daf849071936b0f3b97e07dd3878fa3 (diff)
Merge pull request #5 from echoedit/dev
Dev
Diffstat (limited to 'libcuda/cuda_runtime_api.cc')
-rw-r--r--libcuda/cuda_runtime_api.cc27
1 files changed, 16 insertions, 11 deletions
diff --git a/libcuda/cuda_runtime_api.cc b/libcuda/cuda_runtime_api.cc
index fc152c2..168c80f 100644
--- a/libcuda/cuda_runtime_api.cc
+++ b/libcuda/cuda_runtime_api.cc
@@ -1972,9 +1972,10 @@ void setCuobjdumpsassfilename(const char* filename){
(dynamic_cast<cuobjdumpELFSection*>(cuobjdumpSectionList.front()))->setSASSfilename(filename);
}
typedef void * yyscan_t;
+#include "cuobjdump.h"
extern int cuobjdump_lex_init(yyscan_t* scanner);
extern void cuobjdump_set_in (FILE * _in_str ,yyscan_t yyscanner );
-extern int cuobjdump_parse(yyscan_t scanner);
+extern int cuobjdump_parse(yyscan_t scanner, struct cuobjdump_parser* parser);
extern int cuobjdump_lex_destroy(yyscan_t scanner);
//! Return the executable file of the process containing the PTX/SASS code
@@ -2187,11 +2188,13 @@ void extract_code_using_cuobjdump(){
FILE *cuobjdump_in;
cuobjdump_in = fopen(fname, "r");
- yyscan_t scanner;
- cuobjdump_lex_init(&scanner);
- cuobjdump_set_in(cuobjdump_in, scanner);
- cuobjdump_parse(scanner);
- cuobjdump_lex_destroy(scanner);
+ struct cuobjdump_parser parser;
+ parser.elfserial = 1;
+ parser.ptxserial = 1;
+ cuobjdump_lex_init(&(parser.scanner));
+ cuobjdump_set_in(cuobjdump_in, (parser.scanner));
+ cuobjdump_parse(parser.scanner, &parser);
+ cuobjdump_lex_destroy(parser.scanner);
fclose(cuobjdump_in);
printf("Done parsing!!!\n");
} else {
@@ -2241,11 +2244,13 @@ void extract_code_using_cuobjdump(){
std::cout << "Trying to parse " << libcodfn.str() << std::endl;
FILE *cuobjdump_in;
cuobjdump_in = fopen(libcodfn.str().c_str(), "r");
- yyscan_t scanner;
- cuobjdump_lex_init(&scanner);
- cuobjdump_set_in(cuobjdump_in, scanner);
- cuobjdump_parse(scanner);
- cuobjdump_lex_destroy(scanner);
+ struct cuobjdump_parser parser;
+ parser.elfserial = 1;
+ parser.ptxserial = 1;
+ cuobjdump_lex_init(&(parser.scanner));
+ cuobjdump_set_in(cuobjdump_in, (parser.scanner));
+ cuobjdump_parse(parser.scanner, &parser);
+ cuobjdump_lex_destroy(parser.scanner);
fclose(cuobjdump_in);
std::getline(libsf, line);
}