Commit 6c08dcbb authored by Brenden Blanco's avatar Brenden Blanco

Merge pull request #456 from yadutaf/jt-endian

Minor endian and debug enhancement
parents 354ee0c0 7d37bf4d
......@@ -688,7 +688,7 @@ BFrontendAction::BFrontendAction(llvm::raw_ostream &os, unsigned flags)
}
void BFrontendAction::EndSourceFileAction() {
if (flags_ & 0x4)
if (flags_ & DEBUG_PREPROCESSOR)
rewriter_->getEditBuffer(rewriter_->getSourceMgr().getMainFileID()).write(llvm::errs());
rewriter_->getEditBuffer(rewriter_->getSourceMgr().getMainFileID()).write(os_);
os_.flush();
......
......@@ -26,6 +26,8 @@
#include "table_desc.h"
#define DEBUG_PREPROCESSOR 0x4
namespace clang {
class ASTConsumer;
class ASTContext;
......
......@@ -82,6 +82,9 @@ int KBuildHelper::get_flags(const char *uname_machine, vector<string> *cflags) {
cflags->push_back("-include");
cflags->push_back("./include/linux/kconfig.h");
cflags->push_back("-D__KERNEL__");
cflags->push_back("-D__HAVE_BUILTIN_BSWAP16__");
cflags->push_back("-D__HAVE_BUILTIN_BSWAP32__");
cflags->push_back("-D__HAVE_BUILTIN_BSWAP64__");
cflags->push_back("-Wno-unused-value");
cflags->push_back("-Wno-pointer-sign");
......
......@@ -155,7 +155,7 @@ int ClangLoader::parse(unique_ptr<llvm::Module> *mod, unique_ptr<vector<TableDes
// Initialize a compiler invocation object from the clang (-cc1) arguments.
const driver::ArgStringList &ccargs = cmd.getArguments();
if (flags_ & 0x4) {
if (flags_ & DEBUG_PREPROCESSOR) {
llvm::errs() << "clang";
for (auto arg : ccargs)
llvm::errs() << " " << arg;
......
......@@ -40,11 +40,10 @@ ksyms = []
ksym_names = {}
ksym_loaded = 0
_kprobe_limit = 1000
BASE_CFLAGS = [
'-D__HAVE_BUILTIN_BSWAP16__',
'-D__HAVE_BUILTIN_BSWAP32__',
'-D__HAVE_BUILTIN_BSWAP64__',
]
DEBUG_LLVM_IR = 0x1
DEBUG_BPF = 0x2
DEBUG_PREPROCESSOR = 0x4
@atexit.register
def cleanup_kprobes():
......@@ -137,8 +136,9 @@ class BPF(object):
hdr_file (Optional[str]): Path to a helper header file for the `src_file`
text (Optional[str]): Contents of a source file for the module
debug (Optional[int]): Flags used for debug prints, can be |'d together
0x1: print LLVM IR to stderr
0x2: print BPF bytecode to stderr
DEBUG_LLVM_IR: print LLVM IR to stderr
DEBUG_BPF: print BPF bytecode to stderr
DEBUG_PREPROCESSOR: print Preprocessed C file to stderr
"""
self._reader_cb_impl = _CB_TYPE(BPF._reader_cb)
......@@ -146,7 +146,6 @@ class BPF(object):
self.debug = debug
self.funcs = {}
self.tables = {}
cflags = BASE_CFLAGS + cflags
cflags_array = (ct.c_char_p * len(cflags))()
for i, s in enumerate(cflags): cflags_array[i] = s.encode("ascii")
if text:
......@@ -198,7 +197,7 @@ class BPF(object):
lib.bpf_module_kern_version(self.module),
log_buf, ct.sizeof(log_buf) if log_buf else 0)
if self.debug & 0x2:
if self.debug & DEBUG_BPF:
print(log_buf.value.decode(), file=sys.stderr)
if fd < 0:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment