summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/passes/DWARF.cpp8
-rw-r--r--src/passes/Print.cpp3
-rw-r--r--src/passes/RoundTrip.cpp2
-rw-r--r--src/passes/pass.cpp2
-rw-r--r--src/passes/passes.h1
-rw-r--r--src/wasm-binary.h13
-rw-r--r--src/wasm-debug.h2
-rw-r--r--src/wasm-stack.h18
-rw-r--r--src/wasm.h7
-rw-r--r--src/wasm/wasm-binary.cpp80
-rw-r--r--src/wasm/wasm-debug.cpp316
-rw-r--r--test/passes/dwarfdump_roundtrip_dwarfdump.bin.txt23
-rw-r--r--test/passes/dwarfupdate.bin.txt36
-rw-r--r--test/passes/dwarfupdate.wasmbin843 -> 0 bytes
-rw-r--r--test/passes/fannkuch3.bin.txt6100
-rw-r--r--test/passes/fannkuch3.passes1
-rw-r--r--test/passes/fannkuch3.wasmbin0 -> 5916 bytes
-rw-r--r--test/passes/fib2.bin.txt360
-rw-r--r--test/passes/fib2.passes1
-rw-r--r--test/passes/fib2.wasmbin0 -> 932 bytes
-rw-r--r--test/passes/print_g.bin.txt144
-rw-r--r--third_party/llvm-project/include/llvm/ObjectYAML/DWARFYAML.h2
22 files changed, 6946 insertions, 173 deletions
diff --git a/src/passes/DWARF.cpp b/src/passes/DWARF.cpp
index fe595adae..bc2af3292 100644
--- a/src/passes/DWARF.cpp
+++ b/src/passes/DWARF.cpp
@@ -35,14 +35,6 @@ struct DWARFDump : public Pass {
}
};
-struct DWARFUpdate : public Pass {
- void run(PassRunner* runner, Module* module) override {
- Debug::writeDWARFSections(*module);
- }
-};
-
Pass* createDWARFDumpPass() { return new DWARFDump(); }
-Pass* createDWARFUpdatePass() { return new DWARFUpdate(); }
-
} // namespace wasm
diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp
index cbf3c5a24..3bad8f960 100644
--- a/src/passes/Print.cpp
+++ b/src/passes/Print.cpp
@@ -1427,7 +1427,8 @@ struct PrintSExpression : public OverriddenVisitor<PrintSExpression> {
auto iter = currFunction->binaryLocations.find(curr);
if (iter != currFunction->binaryLocations.end()) {
Colors::grey(o);
- o << ";; code offset: 0x" << iter->second << '\n';
+ o << ";; code offset: 0x" << std::hex << iter->second << std::dec
+ << '\n';
restoreNormalColor(o);
doIndent(o, indent);
}
diff --git a/src/passes/RoundTrip.cpp b/src/passes/RoundTrip.cpp
index 0afabed9e..5410ad87b 100644
--- a/src/passes/RoundTrip.cpp
+++ b/src/passes/RoundTrip.cpp
@@ -57,7 +57,7 @@ struct RoundTrip : public Pass {
// Read
ModuleUtils::clearModule(*module);
ModuleReader reader;
- // TODO: enable debug info when relevant
+ reader.setDWARF(runner->options.debugInfo);
reader.read(tempName, *module);
// Clean up
std::remove(tempName.c_str());
diff --git a/src/passes/pass.cpp b/src/passes/pass.cpp
index cbc8e3be9..ac4f6b661 100644
--- a/src/passes/pass.cpp
+++ b/src/passes/pass.cpp
@@ -110,8 +110,6 @@ void PassRegistry::registerPasses() {
registerPass("dwarfdump",
"dump DWARF debug info sections from the read binary",
createDWARFDumpPass);
- registerPass(
- "dwarfupdate", "update DWARF debug info sections", createDWARFUpdatePass);
registerPass("duplicate-import-elimination",
"removes duplicate imports",
createDuplicateImportEliminationPass);
diff --git a/src/passes/passes.h b/src/passes/passes.h
index 2f30441db..df5601d2f 100644
--- a/src/passes/passes.h
+++ b/src/passes/passes.h
@@ -36,7 +36,6 @@ Pass* createDataFlowOptsPass();
Pass* createDeadCodeEliminationPass();
Pass* createDirectizePass();
Pass* createDWARFDumpPass();
-Pass* createDWARFUpdatePass();
Pass* createDuplicateImportEliminationPass();
Pass* createDuplicateFunctionEliminationPass();
Pass* createEmitTargetFeaturesPass();
diff --git a/src/wasm-binary.h b/src/wasm-binary.h
index 1c3a430fc..4206defdf 100644
--- a/src/wasm-binary.h
+++ b/src/wasm-binary.h
@@ -1044,6 +1044,19 @@ private:
std::unique_ptr<ImportInfo> importInfo;
+ // General debugging info: map every instruction to its original position in
+ // the binary, relative to the beginning of the code section. This is similar
+ // to binaryLocations on Function objects, which are filled as we load the
+ // functions from the binary. Here we track them as we write, and then
+ // the combination of the two can be used to update DWARF info for the new
+ // locations of things.
+ BinaryLocationsMap binaryLocations;
+ size_t binaryLocationsSizeAtSectionStart;
+ // Track the expressions that we added for the current function being
+ // written, so that we can update those specific binary locations when
+ // the function is written out.
+ std::vector<Expression*> binaryLocationTrackedExpressionsForFunc;
+
void prepare();
};
diff --git a/src/wasm-debug.h b/src/wasm-debug.h
index d2e4840f1..1020eee85 100644
--- a/src/wasm-debug.h
+++ b/src/wasm-debug.h
@@ -37,7 +37,7 @@ bool hasDWARFSections(const Module& wasm);
void dumpDWARF(const Module& wasm);
// Update the DWARF sections.
-void writeDWARFSections(Module& wasm);
+void writeDWARFSections(Module& wasm, const BinaryLocationsMap& newLocations);
} // namespace Debug
diff --git a/src/wasm-stack.h b/src/wasm-stack.h
index 7564fbcdb..fbd28b0d5 100644
--- a/src/wasm-stack.h
+++ b/src/wasm-stack.h
@@ -83,8 +83,16 @@ class BinaryInstWriter : public OverriddenVisitor<BinaryInstWriter> {
public:
BinaryInstWriter(WasmBinaryWriter& parent,
BufferWithRandomAccess& o,
- Function* func)
- : parent(parent), o(o), func(func) {}
+ Function* func,
+ bool sourceMap)
+ : parent(parent), o(o), func(func), sourceMap(sourceMap) {}
+
+ void visit(Expression* curr) {
+ if (func && !sourceMap) {
+ parent.writeDebugLocation(curr, func);
+ }
+ OverriddenVisitor<BinaryInstWriter>::visit(curr);
+ }
void visitBlock(Block* curr);
void visitIf(If* curr);
@@ -144,6 +152,8 @@ private:
WasmBinaryWriter& parent;
BufferWithRandomAccess& o;
Function* func = nullptr;
+ bool sourceMap;
+
std::vector<Name> breakStack;
// type => number of locals of that type in the compact form
@@ -758,7 +768,7 @@ public:
Function* func = nullptr,
bool sourceMap = false)
: BinaryenIRWriter<BinaryenIRToBinaryWriter>(func), parent(parent),
- writer(parent, o, func), sourceMap(sourceMap) {}
+ writer(parent, o, func, sourceMap), sourceMap(sourceMap) {}
void visit(Expression* curr) {
BinaryenIRWriter<BinaryenIRToBinaryWriter>::visit(curr);
@@ -833,7 +843,7 @@ public:
StackIRToBinaryWriter(WasmBinaryWriter& parent,
BufferWithRandomAccess& o,
Function* func)
- : writer(parent, o, func), func(func) {}
+ : writer(parent, o, func, false /* sourceMap */), func(func) {}
void write();
diff --git a/src/wasm.h b/src/wasm.h
index bfa0c8947..4c8c4d444 100644
--- a/src/wasm.h
+++ b/src/wasm.h
@@ -1129,7 +1129,10 @@ struct Importable {
// Stack IR is a secondary IR to the main IR defined in this file (Binaryen
// IR). See wasm-stack.h.
class StackInst;
-typedef std::vector<StackInst*> StackIR;
+
+using StackIR = std::vector<StackInst*>;
+
+using BinaryLocationsMap = std::unordered_map<Expression*, uint32_t>;
class Function : public Importable {
public:
@@ -1178,7 +1181,7 @@ public:
// General debugging info: map every instruction to its original position in
// the binary, relative to the beginning of the code section.
- std::unordered_map<Expression*, uint32_t> binaryLocations;
+ BinaryLocationsMap binaryLocations;
size_t getNumParams();
size_t getNumVars();
diff --git a/src/wasm/wasm-binary.cpp b/src/wasm/wasm-binary.cpp
index 71dd0fc21..fa90532d9 100644
--- a/src/wasm/wasm-binary.cpp
+++ b/src/wasm/wasm-binary.cpp
@@ -72,6 +72,14 @@ void WasmBinaryWriter::write() {
writeSourceMapEpilog();
}
+#ifdef BUILD_LLVM_DWARF
+ // Update DWARF user sections after writing the data referred to by them
+ // (function bodies), and before writing the user sections themselves.
+ if (Debug::hasDWARFSections(*wasm)) {
+ Debug::writeDWARFSections(*wasm, binaryLocations);
+ }
+#endif
+
writeLateUserSections();
writeFeaturesSection();
@@ -109,6 +117,7 @@ template<typename T> int32_t WasmBinaryWriter::startSection(T code) {
if (sourceMap) {
sourceMapLocationsSizeAtSectionStart = sourceMapLocations.size();
}
+ binaryLocationsSizeAtSectionStart = binaryLocations.size();
return writeU32LEBPlaceholder(); // section size to be filled in later
}
@@ -116,22 +125,44 @@ void WasmBinaryWriter::finishSection(int32_t start) {
// section size does not include the reserved bytes of the size field itself
int32_t size = o.size() - start - MaxLEB32Bytes;
auto sizeFieldSize = o.writeAt(start, U32LEB(size));
- if (sizeFieldSize != MaxLEB32Bytes) {
+ // We can move things back if the actual LEB for the size doesn't use the
+ // maximum 5 bytes. In that case we need to adjust offsets after we move
+ // things backwards.
+ auto adjustmentForLEBShrinking = MaxLEB32Bytes - sizeFieldSize;
+ if (adjustmentForLEBShrinking) {
// we can save some room, nice
assert(sizeFieldSize < MaxLEB32Bytes);
std::move(&o[start] + MaxLEB32Bytes,
&o[start] + MaxLEB32Bytes + size,
&o[start] + sizeFieldSize);
- auto adjustment = MaxLEB32Bytes - sizeFieldSize;
- o.resize(o.size() - adjustment);
+ o.resize(o.size() - adjustmentForLEBShrinking);
if (sourceMap) {
for (auto i = sourceMapLocationsSizeAtSectionStart;
i < sourceMapLocations.size();
++i) {
- sourceMapLocations[i].first -= adjustment;
+ sourceMapLocations[i].first -= adjustmentForLEBShrinking;
}
}
}
+
+ if (binaryLocationsSizeAtSectionStart != binaryLocations.size()) {
+ // We added the binary locations, adjust them: they must be relative
+ // to the code section.
+ assert(binaryLocationsSizeAtSectionStart == 0);
+ // The section type byte is right before the LEB for the size; we want
+ // offsets that are relative to the body, which is after that section type
+ // byte and the the size LEB.
+ auto body = start + sizeFieldSize;
+ for (auto& pair : binaryLocations) {
+ // Offsets are relative to the body of the code section: after the
+ // section type byte and the size.
+ // Everything was moved by the adjustment, track that. After this,
+ // we are at the right absolute address.
+ pair.second -= adjustmentForLEBShrinking;
+ // We are relative to the section start.
+ pair.second -= body;
+ }
+ }
}
int32_t
@@ -266,6 +297,7 @@ void WasmBinaryWriter::writeFunctions() {
auto start = startSection(BinaryConsts::Section::Code);
o << U32LEB(importInfo->getNumDefinedFunctions());
ModuleUtils::iterDefinedFunctions(*wasm, [&](Function* func) {
+ assert(binaryLocationTrackedExpressionsForFunc.empty());
size_t sourceMapLocationsSizeAtFunctionStart = sourceMapLocations.size();
BYN_TRACE("write one at" << o.size() << std::endl);
size_t sizePos = writeU32LEBPlaceholder();
@@ -284,22 +316,31 @@ void WasmBinaryWriter::writeFunctions() {
BYN_TRACE("body size: " << size << ", writing at " << sizePos
<< ", next starts at " << o.size() << "\n");
auto sizeFieldSize = o.writeAt(sizePos, U32LEB(size));
- if (sizeFieldSize != MaxLEB32Bytes) {
+ // We can move things back if the actual LEB for the size doesn't use the
+ // maximum 5 bytes. In that case we need to adjust offsets after we move
+ // things backwards.
+ auto adjustmentForLEBShrinking = MaxLEB32Bytes - sizeFieldSize;
+ if (adjustmentForLEBShrinking) {
// we can save some room, nice
assert(sizeFieldSize < MaxLEB32Bytes);
std::move(&o[start], &o[start] + size, &o[sizePos] + sizeFieldSize);
- auto adjustment = MaxLEB32Bytes - sizeFieldSize;
- o.resize(o.size() - adjustment);
+ o.resize(o.size() - adjustmentForLEBShrinking);
if (sourceMap) {
for (auto i = sourceMapLocationsSizeAtFunctionStart;
i < sourceMapLocations.size();
++i) {
- sourceMapLocations[i].first -= adjustment;
+ sourceMapLocations[i].first -= adjustmentForLEBShrinking;
}
}
+ for (auto* curr : binaryLocationTrackedExpressionsForFunc) {
+ // We added the binary locations, adjust them: they must be relative
+ // to the code section.
+ binaryLocations[curr] -= adjustmentForLEBShrinking;
+ }
}
tableOfContents.functionBodies.emplace_back(
func->name, sizePos + sizeFieldSize, size);
+ binaryLocationTrackedExpressionsForFunc.clear();
});
finishSection(start);
}
@@ -649,10 +690,19 @@ void WasmBinaryWriter::writeDebugLocation(const Function::DebugLocation& loc) {
}
void WasmBinaryWriter::writeDebugLocation(Expression* curr, Function* func) {
- auto& debugLocations = func->debugLocations;
- auto iter = debugLocations.find(curr);
- if (iter != debugLocations.end()) {
- writeDebugLocation(iter->second);
+ if (sourceMap) {
+ auto& debugLocations = func->debugLocations;
+ auto iter = debugLocations.find(curr);
+ if (iter != debugLocations.end()) {
+ writeDebugLocation(iter->second);
+ }
+ }
+ // TODO: remove source map debugging support and refactor this method
+ // to something that directly thinks about DWARF, instead of indirectly
+ // looking at func->binaryLocations as a proxy for that etc.
+ if (func && !func->binaryLocations.empty()) {
+ binaryLocations[curr] = o.size();
+ binaryLocationTrackedExpressionsForFunc.push_back(curr);
}
}
@@ -809,6 +859,9 @@ void WasmBinaryBuilder::read() {
readFunctionSignatures();
break;
case BinaryConsts::Section::Code:
+ if (DWARF) {
+ codeSectionLocation = pos;
+ }
readFunctions();
break;
case BinaryConsts::Section::Export:
@@ -1288,9 +1341,6 @@ void WasmBinaryBuilder::readFunctionSignatures() {
void WasmBinaryBuilder::readFunctions() {
BYN_TRACE("== readFunctions\n");
- if (DWARF) {
- codeSectionLocation = pos;
- }
size_t total = getU32LEB();
if (total != functionSignatures.size()) {
throwError("invalid function section size, must equal types");
diff --git a/src/wasm/wasm-debug.cpp b/src/wasm/wasm-debug.cpp
index 595c7f50b..04dd4e9d3 100644
--- a/src/wasm/wasm-debug.cpp
+++ b/src/wasm/wasm-debug.cpp
@@ -25,6 +25,10 @@
std::error_code dwarf2yaml(llvm::DWARFContext& DCtx, llvm::DWARFYAML::Data& Y);
#endif
+#include "wasm-binary.h"
+#include "wasm-debug.h"
+#include "wasm.h"
+
namespace wasm {
namespace Debug {
@@ -99,26 +103,315 @@ void dumpDWARF(const Module& wasm) {
// StringMap<std::unique_ptr<MemoryBuffer>>
// EmitDebugSections(llvm::DWARFYAML::Data &DI, bool ApplyFixups);
//
-// For modifying data, like line numberes, we can in theory do that either on
-// the DWARFContext or DWARFYAML::Data; unclear which is best, but modifying
-// the DWARFContext may save us doing fixups in EmitDebugSections.
-//
-void writeDWARFSections(Module& wasm) {
+// Represents the state when parsing a line table.
+struct LineState {
+ uint32_t addr = 0;
+ // TODO sectionIndex?
+ uint32_t line = 1;
+ uint32_t col = 0;
+ uint32_t file = 1;
+ // TODO uint32_t isa = 0;
+ // TODO Discriminator = 0;
+ bool isStmt;
+ bool basicBlock = false;
+ // XXX these two should be just prologue, epilogue?
+ bool prologueEnd = false;
+ bool epilogueBegin = false;
+
+ LineState(const LineState& other) = default;
+ LineState(const llvm::DWARFYAML::LineTable& table)
+ : isStmt(table.DefaultIsStmt) {}
+
+ LineState& operator=(const LineState& other) = default;
+
+ // Updates the state, and returns whether a new row is ready to be emitted.
+ bool update(llvm::DWARFYAML::LineTableOpcode& opcode,
+ const llvm::DWARFYAML::LineTable& table) {
+ switch (opcode.Opcode) {
+ case 0: {
+ // Extended opcodes
+ switch (opcode.SubOpcode) {
+ case llvm::dwarf::DW_LNE_set_address: {
+ addr = opcode.Data;
+ break;
+ }
+ case llvm::dwarf::DW_LNE_end_sequence: {
+ return true;
+ }
+ default: {
+ Fatal() << "unknown debug line sub-opcode: " << std::hex
+ << opcode.SubOpcode;
+ }
+ }
+ break;
+ }
+ case llvm::dwarf::DW_LNS_set_column: {
+ col = opcode.Data;
+ break;
+ }
+ case llvm::dwarf::DW_LNS_set_prologue_end: {
+ prologueEnd = true;
+ break;
+ }
+ case llvm::dwarf::DW_LNS_copy: {
+ return true;
+ }
+ case llvm::dwarf::DW_LNS_advance_pc: {
+ assert(table.MinInstLength == 1);
+ addr += opcode.Data;
+ break;
+ }
+ case llvm::dwarf::DW_LNS_advance_line: {
+ line += opcode.SData;
+ break;
+ }
+ case llvm::dwarf::DW_LNS_set_file: {
+ file = opcode.Data;
+ break;
+ }
+ case llvm::dwarf::DW_LNS_negate_stmt: {
+ isStmt = !isStmt;
+ break;
+ }
+ case llvm::dwarf::DW_LNS_const_add_pc: {
+ uint8_t AdjustOpcode = 255 - table.OpcodeBase;
+ uint64_t AddrOffset =
+ (AdjustOpcode / table.LineRange) * table.MinInstLength;
+ addr += AddrOffset;
+ break;
+ }
+ default: {
+ if (opcode.Opcode >= table.OpcodeBase) {
+ // Special opcode: adjust line and addr, using some math.
+ uint8_t AdjustOpcode =
+ opcode.Opcode - table.OpcodeBase; // 20 - 13 = 7
+ uint64_t AddrOffset = (AdjustOpcode / table.LineRange) *
+ table.MinInstLength; // (7 / 14) * 1 = 0
+ int32_t LineOffset =
+ table.LineBase +
+ (AdjustOpcode % table.LineRange); // -5 + (7 % 14) = 2
+ line += LineOffset;
+ addr += AddrOffset;
+ return true;
+ } else {
+ Fatal() << "unknown debug line opcode: " << std::hex << opcode.Opcode;
+ }
+ }
+ }
+ return false;
+ }
+
+ bool needToEmit() {
+ // If any value is 0, can ignore it
+ // https://github.com/WebAssembly/debugging/issues/9#issuecomment-567720872
+ return line != 0 && col != 0 && addr != 0;
+ }
+
+ // Given an old state, emit the diff from it to this state into a new line
+ // table entry (that will be emitted in the updated DWARF debug line section).
+ void emitDiff(const LineState& old,
+ std::vector<llvm::DWARFYAML::LineTableOpcode>& newOpcodes,
+ const llvm::DWARFYAML::LineTable& table) {
+ bool useSpecial = false;
+ if (addr != old.addr || line != old.line) {
+ // Try to use a special opcode TODO
+ }
+ if (addr != old.addr && !useSpecial) {
+ // len = 1 (subopcode) + 4 (wasm32 address)
+ // FIXME: look at AddrSize on the Unit.
+ auto item = makeItem(llvm::dwarf::DW_LNE_set_address, 5);
+ item.Data = addr;
+ newOpcodes.push_back(item);
+ }
+ if (line != old.line && !useSpecial) {
+ auto item = makeItem(llvm::dwarf::DW_LNS_advance_line);
+ item.SData = line - old.line;
+ newOpcodes.push_back(item);
+ }
+ if (col != old.col) {
+ auto item = makeItem(llvm::dwarf::DW_LNS_set_column);
+ item.Data = col;
+ newOpcodes.push_back(item);
+ }
+ if (file != old.file) {
+ auto item = makeItem(llvm::dwarf::DW_LNS_set_file);
+ item.Data = file;
+ newOpcodes.push_back(item);
+ }
+ if (isStmt != old.isStmt) {
+ newOpcodes.push_back(makeItem(llvm::dwarf::DW_LNS_negate_stmt));
+ }
+ if (basicBlock != old.basicBlock) {
+ Fatal() << "bb";
+ }
+ if (prologueEnd != old.prologueEnd) {
+ assert(prologueEnd);
+ newOpcodes.push_back(makeItem(llvm::dwarf::DW_LNS_set_prologue_end));
+ }
+ if (epilogueBegin != old.epilogueBegin) {
+ Fatal() << "eb";
+ }
+ if (useSpecial) {
+ // Emit a special, which ends a sequence automatically.
+ // TODO
+ } else {
+ // End the sequence manually.
+ // len = 1 (subopcode)
+ newOpcodes.push_back(makeItem(llvm::dwarf::DW_LNE_end_sequence, 1));
+ // Reset the state.
+ *this = LineState(table);
+ }
+ }
+
+private:
+ llvm::DWARFYAML::LineTableOpcode makeItem(llvm::dwarf::LineNumberOps opcode) {
+ llvm::DWARFYAML::LineTableOpcode item = {};
+ item.Opcode = opcode;
+ return item;
+ }
+
+ llvm::DWARFYAML::LineTableOpcode
+ makeItem(llvm::dwarf::LineNumberExtendedOps opcode, uint64_t len) {
+ auto item = makeItem(llvm::dwarf::LineNumberOps(0));
+ // All the length after the len field itself, including the subopcode
+ // (1 byte).
+ item.ExtLen = len;
+ item.SubOpcode = opcode;
+ return item;
+ }
+};
+
+// Represents a mapping of addresses to expressions.
+struct AddrExprMap {
+ std::unordered_map<uint32_t, Expression*> map;
+
+ // Construct the map from the binaryLocations loaded from the wasm.
+ AddrExprMap(const Module& wasm) {
+ for (auto& func : wasm.functions) {
+ for (auto pair : func->binaryLocations) {
+ assert(map.count(pair.second) == 0);
+ map[pair.second] = pair.first;
+ }
+ }
+ }
+
+ // Construct the map from new binaryLocations just written
+ AddrExprMap(const BinaryLocationsMap& newLocations) {
+ for (auto pair : newLocations) {
+ assert(map.count(pair.second) == 0);
+ map[pair.second] = pair.first;
+ }
+ }
+
+ Expression* get(uint32_t addr) {
+ auto iter = map.find(addr);
+ if (iter != map.end()) {
+ return iter->second;
+ }
+ return nullptr;
+ }
+
+ void dump() {
+ std::cout << " (size: " << map.size() << ")\n";
+ for (auto pair : map) {
+ std::cout << " " << pair.first << " => " << pair.second << '\n';
+ }
+ }
+};
+
+static void updateDebugLines(const Module& wasm,
+ llvm::DWARFYAML::Data& data,
+ const BinaryLocationsMap& newLocations) {
+ // TODO: for memory efficiency, we may want to do this in a streaming manner,
+ // binary to binary, without YAML IR.
+
+ // TODO: apparently DWARF offsets may be into the middle of instructions...
+ // we may need to track their spans too
+ // https://github.com/WebAssembly/debugging/issues/9#issuecomment-567720872
+
+ AddrExprMap oldAddrMap(wasm);
+ AddrExprMap newAddrMap(newLocations);
+
+ for (auto& table : data.DebugLines) {
+ // Parse the original opcodes and emit new ones.
+ LineState state(table);
+ // All the addresses we need to write out.
+ std::vector<uint32_t> newAddrs;
+ std::unordered_map<uint32_t, LineState> newAddrInfo;
+ for (auto& opcode : table.Opcodes) {
+ // Update the state, and check if we have a new row to emit.
+ if (state.update(opcode, table)) {
+ // An expression may not exist for this line table item, if we optimized
+ // it away.
+ if (auto* expr = oldAddrMap.get(state.addr)) {
+ auto iter = newLocations.find(expr);
+ if (iter != newLocations.end()) {
+ uint32_t newAddr = iter->second;
+ newAddrs.push_back(newAddr);
+ newAddrInfo.emplace(newAddr, state);
+ auto& updatedState = newAddrInfo.at(newAddr);
+ // The only difference is the address TODO other stuff?
+ updatedState.addr = newAddr;
+ }
+ }
+ if (opcode.Opcode == 0 &&
+ opcode.SubOpcode == llvm::dwarf::DW_LNE_end_sequence) {
+ state = LineState(table);
+ }
+ }
+ }
+ // Sort the new addresses (which may be substantially different from the
+ // original layout after optimization).
+ std::sort(newAddrs.begin(), newAddrs.end());
+ // Emit a new line table.
+ {
+ std::vector<llvm::DWARFYAML::LineTableOpcode> newOpcodes;
+ LineState state(table);
+ for (uint32_t addr : newAddrs) {
+ LineState oldState(state);
+ state = newAddrInfo.at(addr);
+ if (state.needToEmit()) {
+ state.emitDiff(oldState, newOpcodes, table);
+ } else {
+ state = oldState;
+ }
+ }
+ table.Opcodes.swap(newOpcodes);
+ }
+ }
+}
+
+static void fixEmittedSection(const std::string& name,
+ std::vector<char>& data) {
+ if (name == ".debug_line") {
+ // The YAML code does not update the line section size. However, it is
+ // trivial to do so after the fact, as the wasm section's additional size is
+ // easy to compute: it is the emitted size - the 4 bytes of the size itself.
+ uint32_t size = data.size() - 4;
+ BufferWithRandomAccess buf;
+ buf << size;
+ for (int i = 0; i < 4; i++) {
+ data[i] = buf[i];
+ }
+ }
+}
+
+void writeDWARFSections(Module& wasm, const BinaryLocationsMap& newLocations) {
BinaryenDWARFInfo info(wasm);
// Convert to Data representation, which YAML can use to write.
- llvm::DWARFYAML::Data Data;
- if (dwarf2yaml(*info.context, Data)) {
+ llvm::DWARFYAML::Data data;
+ if (dwarf2yaml(*info.context, data)) {
Fatal() << "Failed to parse DWARF to YAML";
}
+ updateDebugLines(wasm, data, newLocations);
+
// TODO: Actually update, and remove sections we don't know how to update yet?
// Convert to binary sections.
- auto newSections = EmitDebugSections(
- Data,
- false /* ApplyFixups, should be true if we modify Data, presumably? */);
+ auto newSections = EmitDebugSections(data, true);
// Update the custom sections in the wasm.
// TODO: efficiency
@@ -129,6 +422,7 @@ void writeDWARFSections(Module& wasm) {
auto llvmData = newSections[llvmName]->getBuffer();
section.data.resize(llvmData.size());
std::copy(llvmData.begin(), llvmData.end(), section.data.data());
+ fixEmittedSection(section.name, section.data);
}
}
}
@@ -140,7 +434,7 @@ void dumpDWARF(const Module& wasm) {
std::cerr << "warning: no DWARF dumping support present\n";
}
-void writeDWARFSections(Module& wasm) {
+void writeDWARFSections(Module& wasm, const BinaryLocationsMap& newLocations) {
std::cerr << "warning: no DWARF updating support present\n";
}
diff --git a/test/passes/dwarfdump_roundtrip_dwarfdump.bin.txt b/test/passes/dwarfdump_roundtrip_dwarfdump.bin.txt
index 62133dab5..694aae6ae 100644
--- a/test/passes/dwarfdump_roundtrip_dwarfdump.bin.txt
+++ b/test/passes/dwarfdump_roundtrip_dwarfdump.bin.txt
@@ -92,8 +92,8 @@ DWARF debug info
================
Contains section .debug_info (58 bytes)
-Contains section .debug_abbrev (39 bytes)
-Contains section .debug_line (56 bytes)
+Contains section .debug_abbrev (38 bytes)
+Contains section .debug_line (39 bytes)
Contains section .debug_str (212 bytes)
.debug_abbrev contents:
@@ -132,7 +132,7 @@ Abbrev table for offset: 0x00000000
.debug_line contents:
debug_line[0x00000000]
Line table prologue:
- total_length: 0x00000034
+ total_length: 0x00000023
version: 4
prologue_length: 0x0000001d
min_inst_length: 1
@@ -158,19 +158,6 @@ file_names[ 1]:
dir_index: 0
mod_time: 0x00000000
length: 0x00000000
-0x00000027: 00 DW_LNE_set_address (0x0000000000000005)
-0x0000002e: 14 address += 0, line += 2
- 0x0000000000000005 3 0 1 0 0 is_stmt
-
-0x0000002f: 05 DW_LNS_set_column (1)
-0x00000031: 0a DW_LNS_set_prologue_end
-0x00000032: 21 address += 1, line += 1
- 0x0000000000000006 4 1 1 0 0 is_stmt prologue_end
-
-0x00000033: 02 DW_LNS_advance_pc (1)
-0x00000035: 00 DW_LNE_end_sequence
- 0x0000000000000007 4 1 1 0 0 is_stmt end_sequence
-
.debug_str contents:
0x00000000: "clang version 10.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project f2e65447b3cb6340883957e033e77095a025ebdc)"
@@ -210,7 +197,7 @@ file_names[ 1]:
;; custom section "sourceMappingURL", size 15
;; custom section "sourceMappingURL", size 15
;; custom section ".debug_info", size 58
- ;; custom section ".debug_abbrev", size 39
- ;; custom section ".debug_line", size 56
+ ;; custom section ".debug_abbrev", size 38
+ ;; custom section ".debug_line", size 39
;; custom section ".debug_str", size 212
)
diff --git a/test/passes/dwarfupdate.bin.txt b/test/passes/dwarfupdate.bin.txt
deleted file mode 100644
index bb68d7f60..000000000
--- a/test/passes/dwarfupdate.bin.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-(module
- (type $i32_=>_i32 (func (param i32) (result i32)))
- (type $i32_=>_none (func (param i32)))
- (type $none_=>_i32 (func (result i32)))
- (type $none_=>_none (func))
- (type $i32_i32_=>_none (func (param i32 i32)))
- (import "env" "__wasm_call_ctors" (func $fimport$0))
- (import "env" "dlmalloc" (func $fimport$1 (param i32) (result i32)))
- (import "env" "dlfree" (func $fimport$2 (param i32)))
- (import "env" "setThrew" (func $fimport$3 (param i32 i32)))
- (import "env" "stackSave" (func $fimport$4 (result i32)))
- (import "env" "stackAlloc" (func $fimport$5 (param i32) (result i32)))
- (import "env" "stackRestore" (func $fimport$6 (param i32)))
- (import "env" "__growWasmMemory" (func $fimport$7 (param i32) (result i32)))
- (global $global$0 i32 (i32.const 1532))
- (export "__wasm_call_ctors" (func $fimport$0))
- (export "_Z3foov" (func $fimport$0))
- (export "__errno_location" (func $0))
- (export "setThrew" (func $fimport$3))
- (export "malloc" (func $fimport$1))
- (export "free" (func $fimport$2))
- (export "__data_end" (global $global$0))
- (export "stackSave" (func $fimport$4))
- (export "stackAlloc" (func $fimport$5))
- (export "stackRestore" (func $fimport$6))
- (export "__growWasmMemory" (func $fimport$7))
- (func $0 (; 8 ;) (result i32)
- (i32.const 1024)
- )
- ;; custom section "sourceMappingURL", size 15
- ;; custom section "sourceMappingURL", size 15
- ;; custom section ".debug_info", size 58
- ;; custom section ".debug_abbrev", size 38
- ;; custom section ".debug_line", size 56
- ;; custom section ".debug_str", size 212
-)
diff --git a/test/passes/dwarfupdate.wasm b/test/passes/dwarfupdate.wasm
deleted file mode 100644
index b9c7378e8..000000000
--- a/test/passes/dwarfupdate.wasm
+++ /dev/null
Binary files differ
diff --git a/test/passes/fannkuch3.bin.txt b/test/passes/fannkuch3.bin.txt
new file mode 100644
index 000000000..273237533
--- /dev/null
+++ b/test/passes/fannkuch3.bin.txt
@@ -0,0 +1,6100 @@
+DWARF debug info
+================
+
+Contains section .debug_info (812 bytes)
+Contains section .debug_loc (345 bytes)
+Contains section .debug_ranges (88 bytes)
+Contains section .debug_abbrev (353 bytes)
+Contains section .debug_line (1459 bytes)
+Contains section .debug_str (475 bytes)
+
+.debug_abbrev contents:
+Abbrev table for offset: 0x00000000
+[1] DW_TAG_compile_unit DW_CHILDREN_yes
+ DW_AT_producer DW_FORM_strp
+ DW_AT_language DW_FORM_data2
+ DW_AT_name DW_FORM_strp
+ DW_AT_stmt_list DW_FORM_sec_offset
+ DW_AT_comp_dir DW_FORM_strp
+ DW_AT_low_pc DW_FORM_addr
+ DW_AT_ranges DW_FORM_sec_offset
+
+[2] DW_TAG_subprogram DW_CHILDREN_yes
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_declaration DW_FORM_flag_present
+ DW_AT_external DW_FORM_flag_present
+
+[3] DW_TAG_formal_parameter DW_CHILDREN_no
+ DW_AT_type DW_FORM_ref4
+
+[4] DW_TAG_pointer_type DW_CHILDREN_no
+
+[5] DW_TAG_subprogram DW_CHILDREN_yes
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+ DW_AT_declaration DW_FORM_flag_present
+ DW_AT_external DW_FORM_flag_present
+
+[6] DW_TAG_base_type DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_encoding DW_FORM_data1
+ DW_AT_byte_size DW_FORM_data1
+
+[7] DW_TAG_pointer_type DW_CHILDREN_no
+ DW_AT_type DW_FORM_ref4
+
+[8] DW_TAG_const_type DW_CHILDREN_no
+ DW_AT_type DW_FORM_ref4
+
+[9] DW_TAG_structure_type DW_CHILDREN_yes
+ DW_AT_calling_convention DW_FORM_data1
+ DW_AT_name DW_FORM_strp
+ DW_AT_byte_size DW_FORM_data1
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+
+[10] DW_TAG_member DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_type DW_FORM_ref4
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_data_member_location DW_FORM_data1
+
+[11] DW_TAG_namespace DW_CHILDREN_yes
+ DW_AT_name DW_FORM_strp
+
+[12] DW_TAG_typedef DW_CHILDREN_no
+ DW_AT_type DW_FORM_ref4
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+
+[13] DW_TAG_unspecified_type DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+
+[14] DW_TAG_imported_declaration DW_CHILDREN_no
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_import DW_FORM_ref4
+
+[15] DW_TAG_subprogram DW_CHILDREN_yes
+ DW_AT_low_pc DW_FORM_addr
+ DW_AT_high_pc DW_FORM_data4
+ DW_AT_GNU_all_call_sites DW_FORM_flag_present
+ DW_AT_linkage_name DW_FORM_strp
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+ DW_AT_external DW_FORM_flag_present
+
+[16] DW_TAG_formal_parameter DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+
+[17] DW_TAG_variable DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+
+[18] DW_TAG_variable DW_CHILDREN_no
+ DW_AT_location DW_FORM_sec_offset
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+
+[19] DW_TAG_lexical_block DW_CHILDREN_yes
+ DW_AT_ranges DW_FORM_sec_offset
+
+[20] DW_TAG_GNU_call_site DW_CHILDREN_no
+ DW_AT_low_pc DW_FORM_addr
+
+[21] DW_TAG_GNU_call_site DW_CHILDREN_no
+ DW_AT_abstract_origin DW_FORM_ref4
+ DW_AT_low_pc DW_FORM_addr
+
+[22] DW_TAG_subprogram DW_CHILDREN_yes
+ DW_AT_linkage_name DW_FORM_strp
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+ DW_AT_inline DW_FORM_data1
+
+[23] DW_TAG_label DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+
+[24] DW_TAG_lexical_block DW_CHILDREN_yes
+
+[25] DW_TAG_subprogram DW_CHILDREN_yes
+ DW_AT_low_pc DW_FORM_addr
+ DW_AT_high_pc DW_FORM_data4
+ DW_AT_GNU_all_call_sites DW_FORM_flag_present
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+ DW_AT_external DW_FORM_flag_present
+
+[26] DW_TAG_inlined_subroutine DW_CHILDREN_yes
+ DW_AT_abstract_origin DW_FORM_ref4
+ DW_AT_low_pc DW_FORM_addr
+ DW_AT_high_pc DW_FORM_data4
+ DW_AT_call_file DW_FORM_data1
+ DW_AT_call_line DW_FORM_data1
+ DW_AT_call_column DW_FORM_data1
+
+[27] DW_TAG_formal_parameter DW_CHILDREN_no
+ DW_AT_abstract_origin DW_FORM_ref4
+
+[28] DW_TAG_variable DW_CHILDREN_no
+ DW_AT_location DW_FORM_sec_offset
+ DW_AT_abstract_origin DW_FORM_ref4
+
+[29] DW_TAG_variable DW_CHILDREN_no
+ DW_AT_abstract_origin DW_FORM_ref4
+
+[30] DW_TAG_label DW_CHILDREN_no
+ DW_AT_abstract_origin DW_FORM_ref4
+ DW_AT_low_pc DW_FORM_addr
+
+
+.debug_info contents:
+0x00000000: Compile Unit: length = 0x00000328 version = 0x0004 abbr_offset = 0x0000 addr_size = 0x04 (next unit at 0x0000032c)
+
+0x0000000b: DW_TAG_compile_unit [1] *
+ DW_AT_producer [DW_FORM_strp] ( .debug_str[0x00000000] = "clang version 10.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project 7fcd9e3f70830a9c4bf631a602c2764180b5c3a8)")
+ DW_AT_language [DW_FORM_data2] (DW_LANG_C_plus_plus)
+ DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000095] = "/usr/local/google/home/azakai/Dev/emscripten/fannkuch.cpp")
+ DW_AT_stmt_list [DW_FORM_sec_offset] (0x00000000)
+ DW_AT_comp_dir [DW_FORM_strp] ( .debug_str[0x000000cf] = "/usr/local/google/home/azakai/Dev/binaryen")
+ DW_AT_low_pc [DW_FORM_addr] (0x0000000000000000)
+ DW_AT_ranges [DW_FORM_sec_offset] (0x00000040
+ [0x00000003, 0x0000039a)
+ [0x0000039c, 0x000006e2))
+
+.debug_loc contents:
+0x00000000:
+ [0xffffffff, 0x00000003):
+ [0x00000000, 0x0000003c): DW_OP_consts +0, DW_OP_stack_value
+
+0x0000001d:
+ [0xffffffff, 0x00000003):
+ [0x00000007, 0x0000003c): DW_OP_consts +0, DW_OP_stack_value
+ [0x000000ec, 0x000000f5): DW_OP_consts +1, DW_OP_stack_value
+ [0x00000179, 0x00000186): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000264, 0x0000026f): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000275, 0x0000027e): DW_OP_consts +1, DW_OP_stack_value
+ [0x00000302, 0x0000030f): DW_OP_consts +0, DW_OP_stack_value
+
+0x0000007b:
+ [0xffffffff, 0x00000003):
+ [0x000000cf, 0x000000e6): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000264, 0x0000026f): DW_OP_consts +0, DW_OP_stack_value
+
+0x000000a5:
+ [0xffffffff, 0x0000039c):
+ [0x0000004c, 0x00000055): DW_OP_consts +30, DW_OP_stack_value
+
+0x000000c2:
+ [0xffffffff, 0x0000039c):
+ [0x0000004c, 0x00000055): DW_OP_lit0, DW_OP_stack_value
+
+0x000000de:
+ [0xffffffff, 0x0000039c):
+ [0x0000004c, 0x00000055): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000099, 0x000000c1): DW_OP_consts +0, DW_OP_stack_value
+ [0x000000f5, 0x000000f9): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000178, 0x00000188): DW_OP_consts +0, DW_OP_stack_value
+ [0x000001fa, 0x0000020c): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000241, 0x00000255): DW_OP_consts +0, DW_OP_stack_value
+
+0x0000013c:
+ [0xffffffff, 0x0000039c):
+ [0x000002d6, 0x000002e1): DW_OP_consts +0, DW_OP_stack_value
+
+.debug_line contents:
+debug_line[0x00000000]
+Line table prologue:
+ total_length: 0x000005af
+ version: 4
+ prologue_length: 0x000000d7
+ min_inst_length: 1
+max_ops_per_inst: 1
+ default_is_stmt: 1
+ line_base: -5
+ line_range: 14
+ opcode_base: 13
+standard_opcode_lengths[DW_LNS_copy] = 0
+standard_opcode_lengths[DW_LNS_advance_pc] = 1
+standard_opcode_lengths[DW_LNS_advance_line] = 1
+standard_opcode_lengths[DW_LNS_set_file] = 1
+standard_opcode_lengths[DW_LNS_set_column] = 1
+standard_opcode_lengths[DW_LNS_negate_stmt] = 0
+standard_opcode_lengths[DW_LNS_set_basic_block] = 0
+standard_opcode_lengths[DW_LNS_const_add_pc] = 0
+standard_opcode_lengths[DW_LNS_fixed_advance_pc] = 1
+standard_opcode_lengths[DW_LNS_set_prologue_end] = 0
+standard_opcode_lengths[DW_LNS_set_epilogue_begin] = 0
+standard_opcode_lengths[DW_LNS_set_isa] = 1
+include_directories[ 1] = "/usr/local/google/home/azakai/Dev"
+file_names[ 1]:
+ name: "emscripten/system/include/libc/stdlib.h"
+ dir_index: 1
+ mod_time: 0x00000000
+ length: 0x00000000
+file_names[ 2]:
+ name: "emscripten/fannkuch.cpp"
+ dir_index: 1
+ mod_time: 0x00000000
+ length: 0x00000000
+file_names[ 3]:
+ name: "emscripten/system/include/libcxx/__nullptr"
+ dir_index: 1
+ mod_time: 0x00000000
+ length: 0x00000000
+file_names[ 4]:
+ name: "emscripten/system/include/libcxx/stddef.h"
+ dir_index: 1
+ mod_time: 0x00000000
+ length: 0x00000000
+0x000000e1: 04 DW_LNS_set_file (2)
+0x000000e3: 00 DW_LNE_set_address (0x0000000000000003)
+0x000000ea: 03 DW_LNS_advance_line (27)
+0x000000ec: 01 DW_LNS_copy
+ 0x0000000000000003 27 0 2 0 0 is_stmt
+
+
+0x000000ed: 05 DW_LNS_set_column (14)
+0x000000ef: 0a DW_LNS_set_prologue_end
+0x000000f0: 7a address += 7, line += 6
+ 0x000000000000000a 33 14 2 0 0 is_stmt prologue_end
+
+0x000000f1: 06 DW_LNS_negate_stmt
+0x000000f2: 03 DW_LNS_advance_line (0)
+0x000000f4: 58 address += 5, line += 0
+ 0x000000000000000f 0 14 2 0 0
+
+0x000000f5: 05 DW_LNS_set_column (27)
+0x000000f7: 06 DW_LNS_negate_stmt
+0x000000f8: 03 DW_LNS_advance_line (34)
+0x000000fa: 4a address += 4, line += 0
+ 0x0000000000000013 34 27 2 0 0 is_stmt
+
+0x000000fb: 05 DW_LNS_set_column (18)
+0x000000fd: 06 DW_LNS_negate_stmt
+0x000000fe: 20 address += 1, line += 0
+ 0x0000000000000014 34 18 2 0 0
+
+0x000000ff: 05 DW_LNS_set_column (17)
+0x00000101: 06 DW_LNS_negate_stmt
+0x00000102: 9f address += 10, line += 1
+ 0x000000000000001e 35 17 2 0 0 is_stmt
+
+0x00000103: 05 DW_LNS_set_column (18)
+0x00000105: 9f address += 10, line += 1
+ 0x0000000000000028 36 18 2 0 0 is_stmt
+
+0x00000106: 06 DW_LNS_negate_stmt
+0x00000107: 03 DW_LNS_advance_line (0)
+0x00000109: 9e address += 10, line += 0
+ 0x0000000000000032 0 18 2 0 0
+
+0x0000010a: 06 DW_LNS_negate_stmt
+0x0000010b: 03 DW_LNS_advance_line (37)
+0x0000010d: 66 address += 6, line += 0
+ 0x0000000000000038 37 18 2 0 0 is_stmt
+
+0x0000010e: 05 DW_LNS_set_column (4)
+0x00000110: 06 DW_LNS_negate_stmt
+0x00000111: 58 address += 5, line += 0
+ 0x000000000000003d 37 4 2 0 0
+
+0x00000112: 03 DW_LNS_advance_line (0)
+0x00000114: 2e address += 2, line += 0
+ 0x000000000000003f 0 4 2 0 0
+
+0x00000115: 05 DW_LNS_set_column (7)
+0x00000117: 06 DW_LNS_negate_stmt
+0x00000118: 03 DW_LNS_advance_line (38)
+0x0000011a: 2e address += 2, line += 0
+ 0x0000000000000041 38 7 2 0 0 is_stmt
+
+0x0000011b: 05 DW_LNS_set_column (16)
+0x0000011d: 06 DW_LNS_negate_stmt
+0x0000011e: 82 address += 8, line += 0
+ 0x0000000000000049 38 16 2 0 0
+
+0x0000011f: 05 DW_LNS_set_column (24)
+0x00000121: 06 DW_LNS_negate_stmt
+0x00000122: 57 address += 5, line += -1
+ 0x000000000000004e 37 24 2 0 0 is_stmt
+
+0x00000123: 05 DW_LNS_set_column (18)
+0x00000125: 06 DW_LNS_negate_stmt
+0x00000126: 58 address += 5, line += 0
+ 0x0000000000000053 37 18 2 0 0
+
+0x00000127: 05 DW_LNS_set_column (4)
+0x00000129: 58 address += 5, line += 0
+ 0x0000000000000058 37 4 2 0 0
+
+0x0000012a: 06 DW_LNS_negate_stmt
+0x0000012b: 3e address += 3, line += 2
+ 0x000000000000005b 39 4 2 0 0 is_stmt
+
+0x0000012c: 05 DW_LNS_set_column (16)
+0x0000012e: 06 DW_LNS_negate_stmt
+0x0000012f: 2e address += 2, line += 0
+ 0x000000000000005d 39 16 2 0 0
+
+0x00000130: 05 DW_LNS_set_column (4)
+0x00000132: 90 address += 9, line += 0
+ 0x0000000000000066 39 4 2 0 0
+
+0x00000133: 05 DW_LNS_set_column (23)
+0x00000135: 2e address += 2, line += 0
+ 0x0000000000000068 39 23 2 0 0
+
+0x00000136: 05 DW_LNS_set_column (19)
+0x00000138: 58 address += 5, line += 0
+ 0x000000000000006d 39 19 2 0 0
+
+0x00000139: 05 DW_LNS_set_column (4)
+0x0000013b: 06 DW_LNS_negate_stmt
+0x0000013c: 59 address += 5, line += 1
+ 0x0000000000000072 40 4 2 0 0 is_stmt
+
+0x0000013d: 05 DW_LNS_set_column (17)
+0x0000013f: 06 DW_LNS_negate_stmt
+0x00000140: 82 address += 8, line += 0
+ 0x000000000000007a 40 17 2 0 0
+
+0x00000141: 05 DW_LNS_set_column (18)
+0x00000143: 06 DW_LNS_negate_stmt
+0x00000144: a9 address += 11, line += -3
+ 0x0000000000000085 37 18 2 0 0 is_stmt
+
+0x00000145: 05 DW_LNS_set_column (4)
+0x00000147: 5e address += 5, line += 6
+ 0x000000000000008a 43 4 2 0 0 is_stmt
+
+0x00000148: 06 DW_LNS_negate_stmt
+0x00000149: 03 DW_LNS_advance_line (0)
+0x0000014b: 2e address += 2, line += 0
+ 0x000000000000008c 0 4 2 0 0
+
+0x0000014c: 05 DW_LNS_set_column (16)
+0x0000014e: 06 DW_LNS_negate_stmt
+0x0000014f: 03 DW_LNS_advance_line (44)
+0x00000151: 4a address += 4, line += 0
+ 0x0000000000000090 44 16 2 0 0 is_stmt
+
+0x00000152: 06 DW_LNS_negate_stmt
+0x00000153: 03 DW_LNS_advance_line (0)
+0x00000155: 74 address += 7, line += 0
+ 0x0000000000000097 0 16 2 0 0
+
+0x00000156: 05 DW_LNS_set_column (10)
+0x00000158: 06 DW_LNS_negate_stmt
+0x00000159: 03 DW_LNS_advance_line (45)
+0x0000015b: 2e address += 2, line += 0
+ 0x0000000000000099 45 10 2 0 0 is_stmt
+
+0x0000015c: 05 DW_LNS_set_column (18)
+0x0000015e: 06 DW_LNS_negate_stmt
+0x0000015f: 2e address += 2, line += 0
+ 0x000000000000009b 45 18 2 0 0
+
+0x00000160: 05 DW_LNS_set_column (10)
+0x00000162: 90 address += 9, line += 0
+ 0x00000000000000a4 45 10 2 0 0
+
+0x00000163: 05 DW_LNS_set_column (23)
+0x00000165: 2e address += 2, line += 0
+ 0x00000000000000a6 45 23 2 0 0
+
+0x00000166: 05 DW_LNS_set_column (16)
+0x00000168: 06 DW_LNS_negate_stmt
+0x00000169: 57 address += 5, line += -1
+ 0x00000000000000ab 44 16 2 0 0 is_stmt
+
+0x0000016a: 05 DW_LNS_set_column (0)
+0x0000016c: 06 DW_LNS_negate_stmt
+0x0000016d: 03 DW_LNS_advance_line (0)
+0x0000016f: 74 address += 7, line += 0
+ 0x00000000000000b2 0 0 2 0 0
+
+0x00000170: 05 DW_LNS_set_column (7)
+0x00000172: 03 DW_LNS_advance_line (44)
+0x00000174: 4a address += 4, line += 0
+ 0x00000000000000b6 44 7 2 0 0
+
+0x00000175: 05 DW_LNS_set_column (11)
+0x00000177: 06 DW_LNS_negate_stmt
+0x00000178: 68 address += 6, line += 2
+ 0x00000000000000bc 46 11 2 0 0 is_stmt
+
+0x00000179: 05 DW_LNS_set_column (28)
+0x0000017b: 06 DW_LNS_negate_stmt
+0x0000017c: ba address += 12, line += 0
+ 0x00000000000000c8 46 28 2 0 0
+
+0x0000017d: 05 DW_LNS_set_column (41)
+0x0000017f: 58 address += 5, line += 0
+ 0x00000000000000cd 46 41 2 0 0
+
+0x00000180: 05 DW_LNS_set_column (21)
+0x00000182: 06 DW_LNS_negate_stmt
+0x00000183: 5a address += 5, line += 2
+ 0x00000000000000d2 48 21 2 0 0 is_stmt
+
+0x00000184: 05 DW_LNS_set_column (14)
+0x00000186: bc address += 12, line += 2
+ 0x00000000000000de 50 14 2 0 0 is_stmt
+
+0x00000187: 06 DW_LNS_negate_stmt
+0x00000188: 03 DW_LNS_advance_line (0)
+0x0000018a: 74 address += 7, line += 0
+ 0x00000000000000e5 0 14 2 0 0
+
+0x0000018b: 05 DW_LNS_set_column (38)
+0x0000018d: 06 DW_LNS_negate_stmt
+0x0000018e: 03 DW_LNS_advance_line (52)
+0x00000190: ba address += 12, line += 0
+ 0x00000000000000f1 52 38 2 0 0 is_stmt
+
+0x00000191: 05 DW_LNS_set_column (0)
+0x00000193: 06 DW_LNS_negate_stmt
+0x00000194: 03 DW_LNS_advance_line (0)
+0x00000196: 74 address += 7, line += 0
+ 0x00000000000000f8 0 0 2 0 0
+
+0x00000197: 05 DW_LNS_set_column (22)
+0x00000199: 06 DW_LNS_negate_stmt
+0x0000019a: 03 DW_LNS_advance_line (53)
+0x0000019c: c8 address += 13, line += 0
+ 0x0000000000000105 53 22 2 0 0 is_stmt
+
+0x0000019d: 05 DW_LNS_set_column (24)
+0x0000019f: e5 address += 15, line += 1
+ 0x0000000000000114 54 24 2 0 0 is_stmt
+
+0x000001a0: 05 DW_LNS_set_column (26)
+0x000001a2: 06 DW_LNS_negate_stmt
+0x000001a3: 2e address += 2, line += 0
+ 0x0000000000000116 54 26 2 0 0
+
+0x000001a4: 05 DW_LNS_set_column (24)
+0x000001a6: c8 address += 13, line += 0
+ 0x0000000000000123 54 24 2 0 0
+
+0x000001a7: 06 DW_LNS_negate_stmt
+0x000001a8: 3d address += 3, line += 1
+ 0x0000000000000126 55 24 2 0 0 is_stmt
+
+0x000001a9: 05 DW_LNS_set_column (44)
+0x000001ab: 71 address += 7, line += -3
+ 0x000000000000012d 52 44 2 0 0 is_stmt
+
+0x000001ac: 06 DW_LNS_negate_stmt
+0x000001ad: 03 DW_LNS_advance_line (0)
+0x000001af: 58 address += 5, line += 0
+ 0x0000000000000132 0 44 2 0 0
+
+0x000001b0: 05 DW_LNS_set_column (38)
+0x000001b2: 03 DW_LNS_advance_line (52)
+0x000001b4: 74 address += 7, line += 0
+ 0x0000000000000139 52 38 2 0 0
+
+0x000001b5: 05 DW_LNS_set_column (13)
+0x000001b7: 3c address += 3, line += 0
+ 0x000000000000013c 52 13 2 0 0
+
+0x000001b8: 05 DW_LNS_set_column (19)
+0x000001ba: 06 DW_LNS_negate_stmt
+0x000001bb: 50 address += 4, line += 6
+ 0x0000000000000140 58 19 2 0 0 is_stmt
+
+0x000001bc: 05 DW_LNS_set_column (21)
+0x000001be: e5 address += 15, line += 1
+ 0x000000000000014f 59 21 2 0 0 is_stmt
+
+0x000001bf: 05 DW_LNS_set_column (18)
+0x000001c1: 72 address += 7, line += -2
+ 0x0000000000000156 57 18 2 0 0 is_stmt
+
+0x000001c2: 05 DW_LNS_set_column (0)
+0x000001c4: 06 DW_LNS_negate_stmt
+0x000001c5: 03 DW_LNS_advance_line (0)
+0x000001c7: 74 address += 7, line += 0
+ 0x000000000000015d 0 0 2 0 0
+
+0x000001c8: 05 DW_LNS_set_column (14)
+0x000001ca: 06 DW_LNS_negate_stmt
+0x000001cb: 03 DW_LNS_advance_line (62)
+0x000001cd: 90 address += 9, line += 0
+ 0x0000000000000166 62 14 2 0 0 is_stmt
+
+0x000001ce: 05 DW_LNS_set_column (23)
+0x000001d0: 06 DW_LNS_negate_stmt
+0x000001d1: 4a address += 4, line += 0
+ 0x000000000000016a 62 23 2 0 0
+
+0x000001d2: 05 DW_LNS_set_column (14)
+0x000001d4: 58 address += 5, line += 0
+ 0x000000000000016f 62 14 2 0 0
+
+0x000001d5: 03 DW_LNS_advance_line (0)
+0x000001d7: 3c address += 3, line += 0
+ 0x0000000000000172 0 14 2 0 0
+
+0x000001d8: 05 DW_LNS_set_column (16)
+0x000001da: 06 DW_LNS_negate_stmt
+0x000001db: 03 DW_LNS_advance_line (66)
+0x000001de: 20 address += 1, line += 0
+ 0x0000000000000173 66 16 2 0 0 is_stmt
+
+0x000001df: 06 DW_LNS_negate_stmt
+0x000001e0: 03 DW_LNS_advance_line (0)
+0x000001e3: 74 address += 7, line += 0
+ 0x000000000000017a 0 16 2 0 0
+
+0x000001e4: 05 DW_LNS_set_column (27)
+0x000001e6: 06 DW_LNS_negate_stmt
+0x000001e7: 03 DW_LNS_advance_line (75)
+0x000001ea: 82 address += 8, line += 0
+ 0x0000000000000182 75 27 2 0 0 is_stmt
+
+0x000001eb: 06 DW_LNS_negate_stmt
+0x000001ec: 03 DW_LNS_advance_line (0)
+0x000001ef: 74 address += 7, line += 0
+ 0x0000000000000189 0 27 2 0 0
+
+0x000001f0: 05 DW_LNS_set_column (16)
+0x000001f2: 06 DW_LNS_negate_stmt
+0x000001f3: 03 DW_LNS_advance_line (76)
+0x000001f6: 2e address += 2, line += 0
+ 0x000000000000018b 76 16 2 0 0 is_stmt
+
+0x000001f7: 05 DW_LNS_set_column (27)
+0x000001f9: 06 DW_LNS_negate_stmt
+0x000001fa: 82 address += 8, line += 0
+ 0x0000000000000193 76 27 2 0 0
+
+0x000001fb: 05 DW_LNS_set_column (35)
+0x000001fd: 2e address += 2, line += 0
+ 0x0000000000000195 76 35 2 0 0
+
+0x000001fe: 05 DW_LNS_set_column (27)
+0x00000200: 90 address += 9, line += 0
+ 0x000000000000019e 76 27 2 0 0
+
+0x00000201: 05 DW_LNS_set_column (25)
+0x00000203: 58 address += 5, line += 0
+ 0x00000000000001a3 76 25 2 0 0
+
+0x00000204: 05 DW_LNS_set_column (27)
+0x00000206: 06 DW_LNS_negate_stmt
+0x00000207: 3b address += 3, line += -1
+ 0x00000000000001a6 75 27 2 0 0 is_stmt
+
+0x00000208: 05 DW_LNS_set_column (13)
+0x0000020a: 06 DW_LNS_negate_stmt
+0x0000020b: 58 address += 5, line += 0
+ 0x00000000000001ab 75 13 2 0 0
+
+0x0000020c: 05 DW_LNS_set_column (0)
+0x0000020e: 03 DW_LNS_advance_line (0)
+0x00000211: 3c address += 3, line += 0
+ 0x00000000000001ae 0 0 2 0 0
+
+0x00000212: 05 DW_LNS_set_column (13)
+0x00000214: 06 DW_LNS_negate_stmt
+0x00000215: 03 DW_LNS_advance_line (77)
+0x00000218: 58 address += 5, line += 0
+ 0x00000000000001b3 77 13 2 0 0 is_stmt
+
+0x00000219: 05 DW_LNS_set_column (22)
+0x0000021b: 06 DW_LNS_negate_stmt
+0x0000021c: 82 address += 8, line += 0
+ 0x00000000000001bb 77 22 2 0 0
+
+0x0000021d: 05 DW_LNS_set_column (16)
+0x0000021f: 06 DW_LNS_negate_stmt
+0x00000220: 5a address += 5, line += 2
+ 0x00000000000001c0 79 16 2 0 0 is_stmt
+
+0x00000221: 05 DW_LNS_set_column (14)
+0x00000223: 06 DW_LNS_negate_stmt
+0x00000224: 82 address += 8, line += 0
+ 0x00000000000001c8 79 14 2 0 0
+
+0x00000225: 05 DW_LNS_set_column (25)
+0x00000227: e4 address += 15, line += 0
+ 0x00000000000001d7 79 25 2 0 0
+
+0x00000228: 05 DW_LNS_set_column (11)
+0x0000022a: 06 DW_LNS_negate_stmt
+0x0000022b: 76 address += 7, line += 2
+ 0x00000000000001de 81 11 2 0 0 is_stmt
+
+0x0000022c: 05 DW_LNS_set_column (16)
+0x0000022e: 03 DW_LNS_advance_line (66)
+0x00000230: 58 address += 5, line += 0
+ 0x00000000000001e3 66 16 2 0 0 is_stmt
+
+0x00000231: 05 DW_LNS_set_column (22)
+0x00000233: 7c address += 7, line += 8
+ 0x00000000000001ea 74 22 2 0 0 is_stmt
+
+0x00000234: 05 DW_LNS_set_column (4)
+0x00000236: 03 DW_LNS_advance_line (37)
+0x00000238: 90 address += 9, line += 0
+ 0x00000000000001f3 37 4 2 0 0 is_stmt
+
+0x00000239: 3e address += 3, line += 2
+ 0x00000000000001f6 39 4 2 0 0 is_stmt
+
+0x0000023a: 05 DW_LNS_set_column (16)
+0x0000023c: 06 DW_LNS_negate_stmt
+0x0000023d: 2e address += 2, line += 0
+ 0x00000000000001f8 39 16 2 0 0
+
+0x0000023e: 05 DW_LNS_set_column (4)
+0x00000240: 90 address += 9, line += 0
+ 0x0000000000000201 39 4 2 0 0
+
+0x00000241: 05 DW_LNS_set_column (23)
+0x00000243: 2e address += 2, line += 0
+ 0x0000000000000203 39 23 2 0 0
+
+0x00000244: 05 DW_LNS_set_column (19)
+0x00000246: 58 address += 5, line += 0
+ 0x0000000000000208 39 19 2 0 0
+
+0x00000247: 05 DW_LNS_set_column (4)
+0x00000249: 06 DW_LNS_negate_stmt
+0x0000024a: 59 address += 5, line += 1
+ 0x000000000000020d 40 4 2 0 0 is_stmt
+
+0x0000024b: 05 DW_LNS_set_column (17)
+0x0000024d: 06 DW_LNS_negate_stmt
+0x0000024e: 82 address += 8, line += 0
+ 0x0000000000000215 40 17 2 0 0
+
+0x0000024f: 03 DW_LNS_advance_line (0)
+0x00000251: 74 address += 7, line += 0
+ 0x000000000000021c 0 17 2 0 0
+
+0x00000252: 05 DW_LNS_set_column (16)
+0x00000254: 06 DW_LNS_negate_stmt
+0x00000255: 03 DW_LNS_advance_line (44)
+0x00000257: 90 address += 9, line += 0
+ 0x0000000000000225 44 16 2 0 0 is_stmt
+
+0x00000258: 06 DW_LNS_negate_stmt
+0x00000259: 03 DW_LNS_advance_line (0)
+0x0000025b: 74 address += 7, line += 0
+ 0x000000000000022c 0 16 2 0 0
+
+0x0000025c: 05 DW_LNS_set_column (10)
+0x0000025e: 06 DW_LNS_negate_stmt
+0x0000025f: 03 DW_LNS_advance_line (45)
+0x00000261: 2e address += 2, line += 0
+ 0x000000000000022e 45 10 2 0 0 is_stmt
+
+0x00000262: 05 DW_LNS_set_column (18)
+0x00000264: 06 DW_LNS_negate_stmt
+0x00000265: 2e address += 2, line += 0
+ 0x0000000000000230 45 18 2 0 0
+
+0x00000266: 05 DW_LNS_set_column (10)
+0x00000268: 90 address += 9, line += 0
+ 0x0000000000000239 45 10 2 0 0
+
+0x00000269: 05 DW_LNS_set_column (23)
+0x0000026b: 2e address += 2, line += 0
+ 0x000000000000023b 45 23 2 0 0
+
+0x0000026c: 05 DW_LNS_set_column (16)
+0x0000026e: 06 DW_LNS_negate_stmt
+0x0000026f: 57 address += 5, line += -1
+ 0x0000000000000240 44 16 2 0 0 is_stmt
+
+0x00000270: 06 DW_LNS_negate_stmt
+0x00000271: 03 DW_LNS_advance_line (0)
+0x00000273: e4 address += 15, line += 0
+ 0x000000000000024f 0 16 2 0 0
+
+0x00000274: 05 DW_LNS_set_column (11)
+0x00000276: 06 DW_LNS_negate_stmt
+0x00000277: 03 DW_LNS_advance_line (46)
+0x00000279: 2e address += 2, line += 0
+ 0x0000000000000251 46 11 2 0 0 is_stmt
+
+0x0000027a: 05 DW_LNS_set_column (28)
+0x0000027c: 06 DW_LNS_negate_stmt
+0x0000027d: ba address += 12, line += 0
+ 0x000000000000025d 46 28 2 0 0
+
+0x0000027e: 05 DW_LNS_set_column (41)
+0x00000280: 58 address += 5, line += 0
+ 0x0000000000000262 46 41 2 0 0
+
+0x00000281: 05 DW_LNS_set_column (14)
+0x00000283: 06 DW_LNS_negate_stmt
+0x00000284: 5c address += 5, line += 4
+ 0x0000000000000267 50 14 2 0 0 is_stmt
+
+0x00000285: 06 DW_LNS_negate_stmt
+0x00000286: 03 DW_LNS_advance_line (0)
+0x00000288: 74 address += 7, line += 0
+ 0x000000000000026e 0 14 2 0 0
+
+0x00000289: 05 DW_LNS_set_column (38)
+0x0000028b: 06 DW_LNS_negate_stmt
+0x0000028c: 03 DW_LNS_advance_line (52)
+0x0000028e: ba address += 12, line += 0
+ 0x000000000000027a 52 38 2 0 0 is_stmt
+
+0x0000028f: 05 DW_LNS_set_column (0)
+0x00000291: 06 DW_LNS_negate_stmt
+0x00000292: 03 DW_LNS_advance_line (0)
+0x00000294: 74 address += 7, line += 0
+ 0x0000000000000281 0 0 2 0 0
+
+0x00000295: 05 DW_LNS_set_column (22)
+0x00000297: 06 DW_LNS_negate_stmt
+0x00000298: 03 DW_LNS_advance_line (53)
+0x0000029a: c8 address += 13, line += 0
+ 0x000000000000028e 53 22 2 0 0 is_stmt
+
+0x0000029b: 05 DW_LNS_set_column (24)
+0x0000029d: e5 address += 15, line += 1
+ 0x000000000000029d 54 24 2 0 0 is_stmt
+
+0x0000029e: 05 DW_LNS_set_column (26)
+0x000002a0: 06 DW_LNS_negate_stmt
+0x000002a1: 2e address += 2, line += 0
+ 0x000000000000029f 54 26 2 0 0
+
+0x000002a2: 05 DW_LNS_set_column (24)
+0x000002a4: c8 address += 13, line += 0
+ 0x00000000000002ac 54 24 2 0 0
+
+0x000002a5: 06 DW_LNS_negate_stmt
+0x000002a6: 3d address += 3, line += 1
+ 0x00000000000002af 55 24 2 0 0 is_stmt
+
+0x000002a7: 05 DW_LNS_set_column (44)
+0x000002a9: 71 address += 7, line += -3
+ 0x00000000000002b6 52 44 2 0 0 is_stmt
+
+0x000002aa: 06 DW_LNS_negate_stmt
+0x000002ab: 03 DW_LNS_advance_line (0)
+0x000002ad: 58 address += 5, line += 0
+ 0x00000000000002bb 0 44 2 0 0
+
+0x000002ae: 05 DW_LNS_set_column (38)
+0x000002b0: 03 DW_LNS_advance_line (52)
+0x000002b2: 74 address += 7, line += 0
+ 0x00000000000002c2 52 38 2 0 0
+
+0x000002b3: 03 DW_LNS_advance_line (0)
+0x000002b5: 58 address += 5, line += 0
+ 0x00000000000002c7 0 38 2 0 0
+
+0x000002b6: 05 DW_LNS_set_column (19)
+0x000002b8: 06 DW_LNS_negate_stmt
+0x000002b9: 03 DW_LNS_advance_line (58)
+0x000002bb: 2e address += 2, line += 0
+ 0x00000000000002c9 58 19 2 0 0 is_stmt
+
+0x000002bc: 05 DW_LNS_set_column (21)
+0x000002be: e5 address += 15, line += 1
+ 0x00000000000002d8 59 21 2 0 0 is_stmt
+
+0x000002bf: 05 DW_LNS_set_column (18)
+0x000002c1: 72 address += 7, line += -2
+ 0x00000000000002df 57 18 2 0 0 is_stmt
+
+0x000002c2: 05 DW_LNS_set_column (0)
+0x000002c4: 06 DW_LNS_negate_stmt
+0x000002c5: 03 DW_LNS_advance_line (0)
+0x000002c7: 74 address += 7, line += 0
+ 0x00000000000002e6 0 0 2 0 0
+
+0x000002c8: 05 DW_LNS_set_column (14)
+0x000002ca: 06 DW_LNS_negate_stmt
+0x000002cb: 03 DW_LNS_advance_line (62)
+0x000002cd: 90 address += 9, line += 0
+ 0x00000000000002ef 62 14 2 0 0 is_stmt
+
+0x000002ce: 05 DW_LNS_set_column (23)
+0x000002d0: 06 DW_LNS_negate_stmt
+0x000002d1: 4a address += 4, line += 0
+ 0x00000000000002f3 62 23 2 0 0
+
+0x000002d2: 05 DW_LNS_set_column (14)
+0x000002d4: 58 address += 5, line += 0
+ 0x00000000000002f8 62 14 2 0 0
+
+0x000002d5: 03 DW_LNS_advance_line (0)
+0x000002d7: 3c address += 3, line += 0
+ 0x00000000000002fb 0 14 2 0 0
+
+0x000002d8: 05 DW_LNS_set_column (16)
+0x000002da: 06 DW_LNS_negate_stmt
+0x000002db: 03 DW_LNS_advance_line (66)
+0x000002de: 20 address += 1, line += 0
+ 0x00000000000002fc 66 16 2 0 0 is_stmt
+
+0x000002df: 06 DW_LNS_negate_stmt
+0x000002e0: 03 DW_LNS_advance_line (0)
+0x000002e3: 74 address += 7, line += 0
+ 0x0000000000000303 0 16 2 0 0
+
+0x000002e4: 05 DW_LNS_set_column (27)
+0x000002e6: 06 DW_LNS_negate_stmt
+0x000002e7: 03 DW_LNS_advance_line (75)
+0x000002ea: 82 address += 8, line += 0
+ 0x000000000000030b 75 27 2 0 0 is_stmt
+
+0x000002eb: 06 DW_LNS_negate_stmt
+0x000002ec: 03 DW_LNS_advance_line (0)
+0x000002ef: 74 address += 7, line += 0
+ 0x0000000000000312 0 27 2 0 0
+
+0x000002f0: 05 DW_LNS_set_column (16)
+0x000002f2: 06 DW_LNS_negate_stmt
+0x000002f3: 03 DW_LNS_advance_line (76)
+0x000002f6: 2e address += 2, line += 0
+ 0x0000000000000314 76 16 2 0 0 is_stmt
+
+0x000002f7: 05 DW_LNS_set_column (27)
+0x000002f9: 06 DW_LNS_negate_stmt
+0x000002fa: 82 address += 8, line += 0
+ 0x000000000000031c 76 27 2 0 0
+
+0x000002fb: 05 DW_LNS_set_column (35)
+0x000002fd: 2e address += 2, line += 0
+ 0x000000000000031e 76 35 2 0 0
+
+0x000002fe: 05 DW_LNS_set_column (27)
+0x00000300: 90 address += 9, line += 0
+ 0x0000000000000327 76 27 2 0 0
+
+0x00000301: 05 DW_LNS_set_column (25)
+0x00000303: 58 address += 5, line += 0
+ 0x000000000000032c 76 25 2 0 0
+
+0x00000304: 05 DW_LNS_set_column (27)
+0x00000306: 06 DW_LNS_negate_stmt
+0x00000307: 3b address += 3, line += -1
+ 0x000000000000032f 75 27 2 0 0 is_stmt
+
+0x00000308: 06 DW_LNS_negate_stmt
+0x00000309: 03 DW_LNS_advance_line (0)
+0x0000030c: 74 address += 7, line += 0
+ 0x0000000000000336 0 27 2 0 0
+
+0x0000030d: 05 DW_LNS_set_column (13)
+0x0000030f: 06 DW_LNS_negate_stmt
+0x00000310: 03 DW_LNS_advance_line (77)
+0x00000313: 66 address += 6, line += 0
+ 0x000000000000033c 77 13 2 0 0 is_stmt
+
+0x00000314: 05 DW_LNS_set_column (22)
+0x00000316: 06 DW_LNS_negate_stmt
+0x00000317: 82 address += 8, line += 0
+ 0x0000000000000344 77 22 2 0 0
+
+0x00000318: 05 DW_LNS_set_column (16)
+0x0000031a: 06 DW_LNS_negate_stmt
+0x0000031b: 5a address += 5, line += 2
+ 0x0000000000000349 79 16 2 0 0 is_stmt
+
+0x0000031c: 05 DW_LNS_set_column (14)
+0x0000031e: 06 DW_LNS_negate_stmt
+0x0000031f: 82 address += 8, line += 0
+ 0x0000000000000351 79 14 2 0 0
+
+0x00000320: 05 DW_LNS_set_column (25)
+0x00000322: e4 address += 15, line += 0
+ 0x0000000000000360 79 25 2 0 0
+
+0x00000323: 05 DW_LNS_set_column (11)
+0x00000325: 06 DW_LNS_negate_stmt
+0x00000326: 76 address += 7, line += 2
+ 0x0000000000000367 81 11 2 0 0 is_stmt
+
+0x00000327: 05 DW_LNS_set_column (16)
+0x00000329: 03 DW_LNS_advance_line (66)
+0x0000032b: 58 address += 5, line += 0
+ 0x000000000000036c 66 16 2 0 0 is_stmt
+
+0x0000032c: 05 DW_LNS_set_column (22)
+0x0000032e: 7c address += 7, line += 8
+ 0x0000000000000373 74 22 2 0 0 is_stmt
+
+0x0000032f: 06 DW_LNS_negate_stmt
+0x00000330: 03 DW_LNS_advance_line (0)
+0x00000333: 90 address += 9, line += 0
+ 0x000000000000037c 0 22 2 0 0
+
+0x00000334: 05 DW_LNS_set_column (13)
+0x00000336: 06 DW_LNS_negate_stmt
+0x00000337: 03 DW_LNS_advance_line (67)
+0x0000033a: 3c address += 3, line += 0
+ 0x000000000000037f 67 13 2 0 0 is_stmt
+
+0x0000033b: 83 address += 8, line += 1
+ 0x0000000000000387 68 13 2 0 0 is_stmt
+
+0x0000033c: 83 address += 8, line += 1
+ 0x000000000000038f 69 13 2 0 0 is_stmt
+
+0x0000033d: 83 address += 8, line += 1
+ 0x0000000000000397 70 13 2 0 0 is_stmt
+
+0x0000033e: 02 DW_LNS_advance_pc (3)
+0x00000340: 00 DW_LNE_end_sequence
+ 0x000000000000039a 70 13 2 0 0 is_stmt end_sequence
+
+0x00000343: 04 DW_LNS_set_file (2)
+0x00000345: 00 DW_LNE_set_address (0x000000000000039c)
+0x0000034c: 03 DW_LNS_advance_line (152)
+0x0000034f: 01 DW_LNS_copy
+ 0x000000000000039c 152 0 2 0 0 is_stmt
+
+
+0x00000350: 05 DW_LNS_set_column (17)
+0x00000352: 0a DW_LNS_set_prologue_end
+0x00000353: 08 DW_LNS_const_add_pc (0x0000000000000011)
+0x00000354: 91 address += 9, line += 1
+ 0x00000000000003b6 153 17 2 0 0 is_stmt prologue_end
+
+0x00000355: 05 DW_LNS_set_column (12)
+0x00000357: 06 DW_LNS_negate_stmt
+0x00000358: 58 address += 5, line += 0
+ 0x00000000000003bb 153 12 2 0 0
+
+0x00000359: 03 DW_LNS_advance_line (0)
+0x0000035c: 2e address += 2, line += 0
+ 0x00000000000003bd 0 12 2 0 0
+
+0x0000035d: 05 DW_LNS_set_column (28)
+0x0000035f: 03 DW_LNS_advance_line (153)
+0x00000362: 4a address += 4, line += 0
+ 0x00000000000003c1 153 28 2 0 0
+
+0x00000363: 05 DW_LNS_set_column (23)
+0x00000365: 58 address += 5, line += 0
+ 0x00000000000003c6 153 23 2 0 0
+
+0x00000366: 03 DW_LNS_advance_line (0)
+0x00000369: 66 address += 6, line += 0
+ 0x00000000000003cc 0 23 2 0 0
+
+0x0000036a: 05 DW_LNS_set_column (10)
+0x0000036c: 06 DW_LNS_negate_stmt
+0x0000036d: 03 DW_LNS_advance_line (155)
+0x00000370: 4a address += 4, line += 0
+ 0x00000000000003d0 155 10 2 0 0 is_stmt
+
+0x00000371: 05 DW_LNS_set_column (8)
+0x00000373: 06 DW_LNS_negate_stmt
+0x00000374: 20 address += 1, line += 0
+ 0x00000000000003d1 155 8 2 0 0
+
+0x00000375: 03 DW_LNS_advance_line (0)
+0x00000378: 2e address += 2, line += 0
+ 0x00000000000003d3 0 8 2 0 0
+
+0x00000379: 05 DW_LNS_set_column (7)
+0x0000037b: 06 DW_LNS_negate_stmt
+0x0000037c: 03 DW_LNS_advance_line (156)
+0x0000037f: 20 address += 1, line += 0
+ 0x00000000000003d4 156 7 2 0 0 is_stmt
+
+0x00000380: 06 DW_LNS_negate_stmt
+0x00000381: 03 DW_LNS_advance_line (0)
+0x00000384: 08 DW_LNS_const_add_pc (0x0000000000000011)
+0x00000385: 2e address += 2, line += 0
+ 0x00000000000003e7 0 7 2 0 0
+
+0x00000386: 05 DW_LNS_set_column (18)
+0x00000388: 06 DW_LNS_negate_stmt
+0x00000389: 03 DW_LNS_advance_line (94)
+0x0000038c: 3c address += 3, line += 0
+ 0x00000000000003ea 94 18 2 0 0 is_stmt
+
+0x0000038d: 05 DW_LNS_set_column (4)
+0x0000038f: 06 DW_LNS_negate_stmt
+0x00000390: 58 address += 5, line += 0
+ 0x00000000000003ef 94 4 2 0 0
+
+0x00000391: 03 DW_LNS_advance_line (0)
+0x00000394: 08 DW_LNS_const_add_pc (0x0000000000000011)
+0x00000395: 12 address += 0, line += 0
+ 0x0000000000000400 0 4 2 0 0
+
+0x00000396: 05 DW_LNS_set_column (29)
+0x00000398: 06 DW_LNS_negate_stmt
+0x00000399: 03 DW_LNS_advance_line (95)
+0x0000039c: 4a address += 4, line += 0
+ 0x0000000000000404 95 29 2 0 0 is_stmt
+
+0x0000039d: 05 DW_LNS_set_column (19)
+0x0000039f: 69 address += 6, line += 3
+ 0x000000000000040a 98 19 2 0 0 is_stmt
+
+0x000003a0: 05 DW_LNS_set_column (16)
+0x000003a2: 73 address += 7, line += -1
+ 0x0000000000000411 97 16 2 0 0 is_stmt
+
+0x000003a3: 73 address += 7, line += -1
+ 0x0000000000000418 96 16 2 0 0 is_stmt
+
+0x000003a4: 05 DW_LNS_set_column (28)
+0x000003a6: aa address += 11, line += -2
+ 0x0000000000000423 94 28 2 0 0 is_stmt
+
+0x000003a7: 05 DW_LNS_set_column (18)
+0x000003a9: 06 DW_LNS_negate_stmt
+0x000003aa: 58 address += 5, line += 0
+ 0x0000000000000428 94 18 2 0 0
+
+0x000003ab: 05 DW_LNS_set_column (4)
+0x000003ad: 58 address += 5, line += 0
+ 0x000000000000042d 94 4 2 0 0
+
+0x000003ae: 03 DW_LNS_advance_line (0)
+0x000003b1: 4a address += 4, line += 0
+ 0x0000000000000431 0 4 2 0 0
+
+0x000003b2: 05 DW_LNS_set_column (27)
+0x000003b4: 06 DW_LNS_negate_stmt
+0x000003b5: 03 DW_LNS_advance_line (102)
+0x000003b8: 4a address += 4, line += 0
+ 0x0000000000000435 102 27 2 0 0 is_stmt
+
+0x000003b9: 05 DW_LNS_set_column (18)
+0x000003bb: 06 DW_LNS_negate_stmt
+0x000003bc: 58 address += 5, line += 0
+ 0x000000000000043a 102 18 2 0 0
+
+0x000003bd: 06 DW_LNS_negate_stmt
+0x000003be: 9f address += 10, line += 1
+ 0x0000000000000444 103 18 2 0 0 is_stmt
+
+0x000003bf: 06 DW_LNS_negate_stmt
+0x000003c0: 03 DW_LNS_advance_line (0)
+0x000003c3: 9e address += 10, line += 0
+ 0x000000000000044e 0 18 2 0 0
+
+0x000003c4: 06 DW_LNS_negate_stmt
+0x000003c5: 03 DW_LNS_advance_line (105)
+0x000003c8: 82 address += 8, line += 0
+ 0x0000000000000456 105 18 2 0 0 is_stmt
+
+0x000003c9: 05 DW_LNS_set_column (4)
+0x000003cb: 06 DW_LNS_negate_stmt
+0x000003cc: 58 address += 5, line += 0
+ 0x000000000000045b 105 4 2 0 0
+
+0x000003cd: 03 DW_LNS_advance_line (0)
+0x000003d0: 2e address += 2, line += 0
+ 0x000000000000045d 0 4 2 0 0
+
+0x000003d1: 05 DW_LNS_set_column (7)
+0x000003d3: 06 DW_LNS_negate_stmt
+0x000003d4: 03 DW_LNS_advance_line (106)
+0x000003d7: 2e address += 2, line += 0
+ 0x000000000000045f 106 7 2 0 0 is_stmt
+
+0x000003d8: 05 DW_LNS_set_column (16)
+0x000003da: 06 DW_LNS_negate_stmt
+0x000003db: 82 address += 8, line += 0
+ 0x0000000000000467 106 16 2 0 0
+
+0x000003dc: 05 DW_LNS_set_column (24)
+0x000003de: 06 DW_LNS_negate_stmt
+0x000003df: 57 address += 5, line += -1
+ 0x000000000000046c 105 24 2 0 0 is_stmt
+
+0x000003e0: 05 DW_LNS_set_column (18)
+0x000003e2: 06 DW_LNS_negate_stmt
+0x000003e3: 58 address += 5, line += 0
+ 0x0000000000000471 105 18 2 0 0
+
+0x000003e4: 03 DW_LNS_advance_line (0)
+0x000003e7: 74 address += 7, line += 0
+ 0x0000000000000478 0 18 2 0 0
+
+0x000003e8: 05 DW_LNS_set_column (13)
+0x000003ea: 06 DW_LNS_negate_stmt
+0x000003eb: 03 DW_LNS_advance_line (112)
+0x000003ee: 08 DW_LNS_const_add_pc (0x0000000000000011)
+0x000003ef: d6 address += 14, line += 0
+ 0x0000000000000497 112 13 2 0 0 is_stmt
+
+0x000003f0: 05 DW_LNS_set_column (26)
+0x000003f2: 06 DW_LNS_negate_stmt
+0x000003f3: 2e address += 2, line += 0
+ 0x0000000000000499 112 26 2 0 0
+
+0x000003f4: 05 DW_LNS_set_column (35)
+0x000003f6: c8 address += 13, line += 0
+ 0x00000000000004a6 112 35 2 0 0
+
+0x000003f7: 05 DW_LNS_set_column (13)
+0x000003f9: 20 address += 1, line += 0
+ 0x00000000000004a7 112 13 2 0 0
+
+0x000003fa: 05 DW_LNS_set_column (30)
+0x000003fc: 06 DW_LNS_negate_stmt
+0x000003fd: 08 DW_LNS_const_add_pc (0x0000000000000011)
+0x000003fe: 49 address += 4, line += -1
+ 0x00000000000004bc 111 30 2 0 0 is_stmt
+
+0x000003ff: 05 DW_LNS_set_column (24)
+0x00000401: 06 DW_LNS_negate_stmt
+0x00000402: 58 address += 5, line += 0
+ 0x00000000000004c1 111 24 2 0 0
+
+0x00000403: 05 DW_LNS_set_column (10)
+0x00000405: 58 address += 5, line += 0
+ 0x00000000000004c6 111 10 2 0 0
+
+0x00000406: 06 DW_LNS_negate_stmt
+0x00000407: 5a address += 5, line += 2
+ 0x00000000000004cb 113 10 2 0 0 is_stmt
+
+0x00000408: 06 DW_LNS_negate_stmt
+0x00000409: 03 DW_LNS_advance_line (0)
+0x0000040c: 74 address += 7, line += 0
+ 0x00000000000004d2 0 10 2 0 0
+
+0x0000040d: 05 DW_LNS_set_column (16)
+0x0000040f: 06 DW_LNS_negate_stmt
+0x00000410: 03 DW_LNS_advance_line (118)
+0x00000413: 2e address += 2, line += 0
+ 0x00000000000004d4 118 16 2 0 0 is_stmt
+
+0x00000414: 05 DW_LNS_set_column (7)
+0x00000416: 06 DW_LNS_negate_stmt
+0x00000417: 58 address += 5, line += 0
+ 0x00000000000004d9 118 7 2 0 0
+
+0x00000418: 03 DW_LNS_advance_line (0)
+0x0000041b: 2e address += 2, line += 0
+ 0x00000000000004db 0 7 2 0 0
+
+0x0000041c: 05 DW_LNS_set_column (10)
+0x0000041e: 06 DW_LNS_negate_stmt
+0x0000041f: 03 DW_LNS_advance_line (119)
+0x00000422: 2e address += 2, line += 0
+ 0x00000000000004dd 119 10 2 0 0 is_stmt
+
+0x00000423: 05 DW_LNS_set_column (18)
+0x00000425: 06 DW_LNS_negate_stmt
+0x00000426: 2e address += 2, line += 0
+ 0x00000000000004df 119 18 2 0 0
+
+0x00000427: 05 DW_LNS_set_column (10)
+0x00000429: 90 address += 9, line += 0
+ 0x00000000000004e8 119 10 2 0 0
+
+0x0000042a: 05 DW_LNS_set_column (23)
+0x0000042c: 2e address += 2, line += 0
+ 0x00000000000004ea 119 23 2 0 0
+
+0x0000042d: 05 DW_LNS_set_column (16)
+0x0000042f: 06 DW_LNS_negate_stmt
+0x00000430: 57 address += 5, line += -1
+ 0x00000000000004ef 118 16 2 0 0 is_stmt
+
+0x00000431: 05 DW_LNS_set_column (7)
+0x00000433: 06 DW_LNS_negate_stmt
+0x00000434: ac address += 11, line += 0
+ 0x00000000000004fa 118 7 2 0 0
+
+0x00000435: 05 DW_LNS_set_column (16)
+0x00000437: 06 DW_LNS_negate_stmt
+0x00000438: 6a address += 6, line += 4
+ 0x0000000000000500 122 16 2 0 0 is_stmt
+
+0x00000439: 06 DW_LNS_negate_stmt
+0x0000043a: 03 DW_LNS_advance_line (0)
+0x0000043d: 74 address += 7, line += 0
+ 0x0000000000000507 0 16 2 0 0
+
+0x0000043e: 05 DW_LNS_set_column (22)
+0x00000440: 06 DW_LNS_negate_stmt
+0x00000441: 03 DW_LNS_advance_line (125)
+0x00000444: c8 address += 13, line += 0
+ 0x0000000000000514 125 22 2 0 0 is_stmt
+
+0x00000445: 06 DW_LNS_negate_stmt
+0x00000446: 03 DW_LNS_advance_line (0)
+0x00000449: 74 address += 7, line += 0
+ 0x000000000000051b 0 22 2 0 0
+
+0x0000044a: 05 DW_LNS_set_column (27)
+0x0000044c: 06 DW_LNS_negate_stmt
+0x0000044d: 03 DW_LNS_advance_line (126)
+0x00000450: 2e address += 2, line += 0
+ 0x000000000000051d 126 27 2 0 0 is_stmt
+
+0x00000451: 05 DW_LNS_set_column (13)
+0x00000453: 06 DW_LNS_negate_stmt
+0x00000454: 58 address += 5, line += 0
+ 0x0000000000000522 126 13 2 0 0
+
+0x00000455: 03 DW_LNS_advance_line (0)
+0x00000458: 2e address += 2, line += 0
+ 0x0000000000000524 0 13 2 0 0
+
+0x00000459: 05 DW_LNS_set_column (16)
+0x0000045b: 06 DW_LNS_negate_stmt
+0x0000045c: 03 DW_LNS_advance_line (127)
+0x0000045f: 2e address += 2, line += 0
+ 0x0000000000000526 127 16 2 0 0 is_stmt
+
+0x00000460: 05 DW_LNS_set_column (27)
+0x00000462: 06 DW_LNS_negate_stmt
+0x00000463: 82 address += 8, line += 0
+ 0x000000000000052e 127 27 2 0 0
+
+0x00000464: 05 DW_LNS_set_column (35)
+0x00000466: 2e address += 2, line += 0
+ 0x0000000000000530 127 35 2 0 0
+
+0x00000467: 05 DW_LNS_set_column (27)
+0x00000469: 90 address += 9, line += 0
+ 0x0000000000000539 127 27 2 0 0
+
+0x0000046a: 05 DW_LNS_set_column (25)
+0x0000046c: 58 address += 5, line += 0
+ 0x000000000000053e 127 25 2 0 0
+
+0x0000046d: 05 DW_LNS_set_column (27)
+0x0000046f: 06 DW_LNS_negate_stmt
+0x00000470: 3b address += 3, line += -1
+ 0x0000000000000541 126 27 2 0 0 is_stmt
+
+0x00000471: 05 DW_LNS_set_column (13)
+0x00000473: 06 DW_LNS_negate_stmt
+0x00000474: 58 address += 5, line += 0
+ 0x0000000000000546 126 13 2 0 0
+
+0x00000475: 05 DW_LNS_set_column (0)
+0x00000477: 03 DW_LNS_advance_line (0)
+0x0000047a: 3c address += 3, line += 0
+ 0x0000000000000549 0 0 2 0 0
+
+0x0000047b: 05 DW_LNS_set_column (13)
+0x0000047d: 06 DW_LNS_negate_stmt
+0x0000047e: 03 DW_LNS_advance_line (128)
+0x00000481: 58 address += 5, line += 0
+ 0x000000000000054e 128 13 2 0 0 is_stmt
+
+0x00000482: 05 DW_LNS_set_column (22)
+0x00000484: 06 DW_LNS_negate_stmt
+0x00000485: 82 address += 8, line += 0
+ 0x0000000000000556 128 22 2 0 0
+
+0x00000486: 05 DW_LNS_set_column (16)
+0x00000488: 06 DW_LNS_negate_stmt
+0x00000489: 5a address += 5, line += 2
+ 0x000000000000055b 130 16 2 0 0 is_stmt
+
+0x0000048a: 05 DW_LNS_set_column (14)
+0x0000048c: 06 DW_LNS_negate_stmt
+0x0000048d: 82 address += 8, line += 0
+ 0x0000000000000563 130 14 2 0 0
+
+0x0000048e: 05 DW_LNS_set_column (25)
+0x00000490: 08 DW_LNS_const_add_pc (0x0000000000000011)
+0x00000491: 12 address += 0, line += 0
+ 0x0000000000000574 130 25 2 0 0
+
+0x00000492: 05 DW_LNS_set_column (14)
+0x00000494: 58 address += 5, line += 0
+ 0x0000000000000579 130 14 2 0 0
+
+0x00000495: 05 DW_LNS_set_column (11)
+0x00000497: 06 DW_LNS_negate_stmt
+0x00000498: 31 address += 2, line += 3
+ 0x000000000000057b 133 11 2 0 0 is_stmt
+
+0x00000499: 05 DW_LNS_set_column (16)
+0x0000049b: 03 DW_LNS_advance_line (122)
+0x0000049d: 58 address += 5, line += 0
+ 0x0000000000000580 122 16 2 0 0 is_stmt
+
+0x0000049e: 05 DW_LNS_set_column (14)
+0x000004a0: 06 DW_LNS_negate_stmt
+0x000004a1: 58 address += 5, line += 0
+ 0x0000000000000585 122 14 2 0 0
+
+0x000004a2: 03 DW_LNS_advance_line (0)
+0x000004a5: 4a address += 4, line += 0
+ 0x0000000000000589 0 14 2 0 0
+
+0x000004a6: 06 DW_LNS_negate_stmt
+0x000004a7: 03 DW_LNS_advance_line (130)
+0x000004aa: 20 address += 1, line += 0
+ 0x000000000000058a 130 14 2 0 0 is_stmt
+
+0x000004ab: 05 DW_LNS_set_column (11)
+0x000004ad: 03 DW_LNS_advance_line (110)
+0x000004af: 20 address += 1, line += 0
+ 0x000000000000058b 110 11 2 0 0 is_stmt
+
+0x000004b0: 06 DW_LNS_negate_stmt
+0x000004b1: 03 DW_LNS_advance_line (0)
+0x000004b4: 74 address += 7, line += 0
+ 0x0000000000000592 0 11 2 0 0
+
+0x000004b5: 05 DW_LNS_set_column (10)
+0x000004b7: 06 DW_LNS_negate_stmt
+0x000004b8: 03 DW_LNS_advance_line (113)
+0x000004bb: 66 address += 6, line += 0
+ 0x0000000000000598 113 10 2 0 0 is_stmt
+
+0x000004bc: 06 DW_LNS_negate_stmt
+0x000004bd: 03 DW_LNS_advance_line (0)
+0x000004c0: 74 address += 7, line += 0
+ 0x000000000000059f 0 10 2 0 0
+
+0x000004c1: 05 DW_LNS_set_column (16)
+0x000004c3: 06 DW_LNS_negate_stmt
+0x000004c4: 03 DW_LNS_advance_line (118)
+0x000004c7: 2e address += 2, line += 0
+ 0x00000000000005a1 118 16 2 0 0 is_stmt
+
+0x000004c8: 05 DW_LNS_set_column (7)
+0x000004ca: 06 DW_LNS_negate_stmt
+0x000004cb: 58 address += 5, line += 0
+ 0x00000000000005a6 118 7 2 0 0
+
+0x000004cc: 03 DW_LNS_advance_line (0)
+0x000004cf: 2e address += 2, line += 0
+ 0x00000000000005a8 0 7 2 0 0
+
+0x000004d0: 05 DW_LNS_set_column (10)
+0x000004d2: 06 DW_LNS_negate_stmt
+0x000004d3: 03 DW_LNS_advance_line (119)
+0x000004d6: 2e address += 2, line += 0
+ 0x00000000000005aa 119 10 2 0 0 is_stmt
+
+0x000004d7: 05 DW_LNS_set_column (18)
+0x000004d9: 06 DW_LNS_negate_stmt
+0x000004da: 2e address += 2, line += 0
+ 0x00000000000005ac 119 18 2 0 0
+
+0x000004db: 05 DW_LNS_set_column (10)
+0x000004dd: 90 address += 9, line += 0
+ 0x00000000000005b5 119 10 2 0 0
+
+0x000004de: 05 DW_LNS_set_column (23)
+0x000004e0: 2e address += 2, line += 0
+ 0x00000000000005b7 119 23 2 0 0
+
+0x000004e1: 05 DW_LNS_set_column (16)
+0x000004e3: 06 DW_LNS_negate_stmt
+0x000004e4: 57 address += 5, line += -1
+ 0x00000000000005bc 118 16 2 0 0 is_stmt
+
+0x000004e5: 05 DW_LNS_set_column (0)
+0x000004e7: 06 DW_LNS_negate_stmt
+0x000004e8: 03 DW_LNS_advance_line (0)
+0x000004eb: 74 address += 7, line += 0
+ 0x00000000000005c3 0 0 2 0 0
+
+0x000004ec: 05 DW_LNS_set_column (7)
+0x000004ee: 03 DW_LNS_advance_line (118)
+0x000004f1: 4a address += 4, line += 0
+ 0x00000000000005c7 118 7 2 0 0
+
+0x000004f2: 05 DW_LNS_set_column (16)
+0x000004f4: 06 DW_LNS_negate_stmt
+0x000004f5: 6a address += 6, line += 4
+ 0x00000000000005cd 122 16 2 0 0 is_stmt
+
+0x000004f6: 05 DW_LNS_set_column (14)
+0x000004f8: 06 DW_LNS_negate_stmt
+0x000004f9: 58 address += 5, line += 0
+ 0x00000000000005d2 122 14 2 0 0
+
+0x000004fa: 03 DW_LNS_advance_line (0)
+0x000004fd: 2e address += 2, line += 0
+ 0x00000000000005d4 0 14 2 0 0
+
+0x000004fe: 05 DW_LNS_set_column (22)
+0x00000500: 06 DW_LNS_negate_stmt
+0x00000501: 03 DW_LNS_advance_line (125)
+0x00000504: 74 address += 7, line += 0
+ 0x00000000000005db 125 22 2 0 0 is_stmt
+
+0x00000505: 06 DW_LNS_negate_stmt
+0x00000506: 03 DW_LNS_advance_line (0)
+0x00000509: 90 address += 9, line += 0
+ 0x00000000000005e4 0 22 2 0 0
+
+0x0000050a: 05 DW_LNS_set_column (27)
+0x0000050c: 06 DW_LNS_negate_stmt
+0x0000050d: 03 DW_LNS_advance_line (126)
+0x00000510: 66 address += 6, line += 0
+ 0x00000000000005ea 126 27 2 0 0 is_stmt
+
+0x00000511: 05 DW_LNS_set_column (13)
+0x00000513: 06 DW_LNS_negate_stmt
+0x00000514: 58 address += 5, line += 0
+ 0x00000000000005ef 126 13 2 0 0
+
+0x00000515: 03 DW_LNS_advance_line (0)
+0x00000518: 2e address += 2, line += 0
+ 0x00000000000005f1 0 13 2 0 0
+
+0x00000519: 05 DW_LNS_set_column (16)
+0x0000051b: 06 DW_LNS_negate_stmt
+0x0000051c: 03 DW_LNS_advance_line (127)
+0x0000051f: 2e address += 2, line += 0
+ 0x00000000000005f3 127 16 2 0 0 is_stmt
+
+0x00000520: 05 DW_LNS_set_column (27)
+0x00000522: 06 DW_LNS_negate_stmt
+0x00000523: 82 address += 8, line += 0
+ 0x00000000000005fb 127 27 2 0 0
+
+0x00000524: 05 DW_LNS_set_column (35)
+0x00000526: 2e address += 2, line += 0
+ 0x00000000000005fd 127 35 2 0 0
+
+0x00000527: 05 DW_LNS_set_column (27)
+0x00000529: 90 address += 9, line += 0
+ 0x0000000000000606 127 27 2 0 0
+
+0x0000052a: 05 DW_LNS_set_column (25)
+0x0000052c: 58 address += 5, line += 0
+ 0x000000000000060b 127 25 2 0 0
+
+0x0000052d: 05 DW_LNS_set_column (27)
+0x0000052f: 06 DW_LNS_negate_stmt
+0x00000530: 3b address += 3, line += -1
+ 0x000000000000060e 126 27 2 0 0 is_stmt
+
+0x00000531: 05 DW_LNS_set_column (13)
+0x00000533: 06 DW_LNS_negate_stmt
+0x00000534: 58 address += 5, line += 0
+ 0x0000000000000613 126 13 2 0 0
+
+0x00000535: 05 DW_LNS_set_column (0)
+0x00000537: 03 DW_LNS_advance_line (0)
+0x0000053a: 3c address += 3, line += 0
+ 0x0000000000000616 0 0 2 0 0
+
+0x0000053b: 05 DW_LNS_set_column (13)
+0x0000053d: 06 DW_LNS_negate_stmt
+0x0000053e: 03 DW_LNS_advance_line (128)
+0x00000541: 58 address += 5, line += 0
+ 0x000000000000061b 128 13 2 0 0 is_stmt
+
+0x00000542: 05 DW_LNS_set_column (22)
+0x00000544: 06 DW_LNS_negate_stmt
+0x00000545: 82 address += 8, line += 0
+ 0x0000000000000623 128 22 2 0 0
+
+0x00000546: 05 DW_LNS_set_column (16)
+0x00000548: 06 DW_LNS_negate_stmt
+0x00000549: 5a address += 5, line += 2
+ 0x0000000000000628 130 16 2 0 0 is_stmt
+
+0x0000054a: 05 DW_LNS_set_column (14)
+0x0000054c: 06 DW_LNS_negate_stmt
+0x0000054d: 82 address += 8, line += 0
+ 0x0000000000000630 130 14 2 0 0
+
+0x0000054e: 05 DW_LNS_set_column (25)
+0x00000550: 08 DW_LNS_const_add_pc (0x0000000000000011)
+0x00000551: 12 address += 0, line += 0
+ 0x0000000000000641 130 25 2 0 0
+
+0x00000552: 05 DW_LNS_set_column (14)
+0x00000554: 58 address += 5, line += 0
+ 0x0000000000000646 130 14 2 0 0
+
+0x00000555: 05 DW_LNS_set_column (11)
+0x00000557: 06 DW_LNS_negate_stmt
+0x00000558: 31 address += 2, line += 3
+ 0x0000000000000648 133 11 2 0 0 is_stmt
+
+0x00000559: 05 DW_LNS_set_column (16)
+0x0000055b: 03 DW_LNS_advance_line (122)
+0x0000055d: 58 address += 5, line += 0
+ 0x000000000000064d 122 16 2 0 0 is_stmt
+
+0x0000055e: 05 DW_LNS_set_column (14)
+0x00000560: 06 DW_LNS_negate_stmt
+0x00000561: 58 address += 5, line += 0
+ 0x0000000000000652 122 14 2 0 0
+
+0x00000562: 03 DW_LNS_advance_line (0)
+0x00000565: 4a address += 4, line += 0
+ 0x0000000000000656 0 14 2 0 0
+
+0x00000566: 06 DW_LNS_negate_stmt
+0x00000567: 03 DW_LNS_advance_line (130)
+0x0000056a: 20 address += 1, line += 0
+ 0x0000000000000657 130 14 2 0 0 is_stmt
+
+0x0000056b: 05 DW_LNS_set_column (11)
+0x0000056d: 03 DW_LNS_advance_line (110)
+0x0000056f: 20 address += 1, line += 0
+ 0x0000000000000658 110 11 2 0 0 is_stmt
+
+0x00000570: 05 DW_LNS_set_column (4)
+0x00000572: 03 DW_LNS_advance_line (138)
+0x00000574: 66 address += 6, line += 0
+ 0x000000000000065e 138 4 2 0 0 is_stmt
+
+0x00000575: 83 address += 8, line += 1
+ 0x0000000000000666 139 4 2 0 0 is_stmt
+
+0x00000576: 06 DW_LNS_negate_stmt
+0x00000577: 03 DW_LNS_advance_line (0)
+0x0000057a: 82 address += 8, line += 0
+ 0x000000000000066e 0 4 2 0 0
+
+0x0000057b: 06 DW_LNS_negate_stmt
+0x0000057c: 03 DW_LNS_advance_line (141)
+0x0000057f: 82 address += 8, line += 0
+ 0x0000000000000676 141 4 2 0 0 is_stmt
+
+0x00000580: 06 DW_LNS_negate_stmt
+0x00000581: 03 DW_LNS_advance_line (0)
+0x00000584: 74 address += 7, line += 0
+ 0x000000000000067d 0 4 2 0 0
+
+0x00000585: 05 DW_LNS_set_column (20)
+0x00000587: 06 DW_LNS_negate_stmt
+0x00000588: 03 DW_LNS_advance_line (142)
+0x0000058b: 82 address += 8, line += 0
+ 0x0000000000000685 142 20 2 0 0 is_stmt
+
+0x0000058c: be address += 12, line += 4
+ 0x0000000000000691 146 20 2 0 0 is_stmt
+
+0x0000058d: 05 DW_LNS_set_column (7)
+0x0000058f: 75 address += 7, line += 1
+ 0x0000000000000698 147 7 2 0 0 is_stmt
+
+0x00000590: 05 DW_LNS_set_column (11)
+0x00000592: 7e address += 8, line += -4
+ 0x00000000000006a0 143 11 2 0 0 is_stmt
+
+0x00000593: 05 DW_LNS_set_column (20)
+0x00000595: 06 DW_LNS_negate_stmt
+0x00000596: 4a address += 4, line += 0
+ 0x00000000000006a4 143 20 2 0 0
+
+0x00000597: 05 DW_LNS_set_column (11)
+0x00000599: 58 address += 5, line += 0
+ 0x00000000000006a9 143 11 2 0 0
+
+0x0000059a: 05 DW_LNS_set_column (4)
+0x0000059c: 06 DW_LNS_negate_stmt
+0x0000059d: 72 address += 7, line += -2
+ 0x00000000000006b0 141 4 2 0 0 is_stmt
+
+0x0000059e: 03 DW_LNS_advance_line (159)
+0x000005a0: 66 address += 6, line += 0
+ 0x00000000000006b6 159 4 2 0 0 is_stmt
+
+0x000005a1: 06 DW_LNS_negate_stmt
+0x000005a2: 03 DW_LNS_advance_line (0)
+0x000005a5: 08 DW_LNS_const_add_pc (0x0000000000000011)
+0x000005a6: ba address += 12, line += 0
+ 0x00000000000006d3 0 4 2 0 0
+
+0x000005a7: 05 DW_LNS_set_column (1)
+0x000005a9: 06 DW_LNS_negate_stmt
+0x000005aa: 03 DW_LNS_advance_line (161)
+0x000005ad: 20 address += 1, line += 0
+ 0x00000000000006d4 161 1 2 0 0 is_stmt
+
+0x000005ae: 02 DW_LNS_advance_pc (14)
+0x000005b0: 00 DW_LNE_end_sequence
+ 0x00000000000006e2 161 1 2 0 0 is_stmt end_sequence
+
+
+.debug_str contents:
+0x00000000: "clang version 10.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project 7fcd9e3f70830a9c4bf631a602c2764180b5c3a8)"
+0x00000095: "/usr/local/google/home/azakai/Dev/emscripten/fannkuch.cpp"
+0x000000cf: "/usr/local/google/home/azakai/Dev/binaryen"
+0x000000fa: "free"
+0x000000ff: "atoi"
+0x00000104: "int"
+0x00000108: "char"
+0x0000010d: "i"
+0x0000010f: "n"
+0x00000111: "next"
+0x00000116: "worker_args"
+0x00000122: "std"
+0x00000126: "decltype(nullptr)"
+0x00000138: "nullptr_t"
+0x00000142: "_ZL8fannkuchi"
+0x00000150: "fannkuch"
+0x00000159: "showmax"
+0x00000161: "args"
+0x00000166: "perm1"
+0x0000016c: "count"
+0x00000172: "r"
+0x00000174: "maxflips"
+0x0000017d: "flips"
+0x00000183: "targs"
+0x00000189: "cleanup"
+0x00000191: "p0"
+0x00000194: "_Z15fannkuch_workerPv"
+0x000001aa: "fannkuch_worker"
+0x000001ba: "main"
+0x000001bf: "_arg"
+0x000001c4: "perm"
+0x000001c9: "k"
+0x000001cb: "j"
+0x000001cd: "tmp"
+0x000001d1: "argc"
+0x000001d6: "argv"
+
+.debug_ranges contents:
+00000000 00000182 000001c0
+00000000 000001ea 000001f3
+00000000 0000030b 00000349
+00000000 00000373 0000037c
+00000000 <End of list>
+00000028 00000514 0000055b
+00000028 000005db 00000628
+00000028 <End of list>
+00000040 00000003 0000039a
+00000040 0000039c 000006e2
+00000040 <End of list>
+DWARF debug info
+================
+
+Contains section .debug_info (812 bytes)
+Contains section .debug_loc (345 bytes)
+Contains section .debug_ranges (88 bytes)
+Contains section .debug_abbrev (352 bytes)
+Contains section .debug_line (4227 bytes)
+Contains section .debug_str (475 bytes)
+
+.debug_abbrev contents:
+Abbrev table for offset: 0x00000000
+[1] DW_TAG_compile_unit DW_CHILDREN_yes
+ DW_AT_producer DW_FORM_strp
+ DW_AT_language DW_FORM_data2
+ DW_AT_name DW_FORM_strp
+ DW_AT_stmt_list DW_FORM_sec_offset
+ DW_AT_comp_dir DW_FORM_strp
+ DW_AT_low_pc DW_FORM_addr
+ DW_AT_ranges DW_FORM_sec_offset
+
+[2] DW_TAG_subprogram DW_CHILDREN_yes
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_declaration DW_FORM_flag_present
+ DW_AT_external DW_FORM_flag_present
+
+[3] DW_TAG_formal_parameter DW_CHILDREN_no
+ DW_AT_type DW_FORM_ref4
+
+[4] DW_TAG_pointer_type DW_CHILDREN_no
+
+[5] DW_TAG_subprogram DW_CHILDREN_yes
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+ DW_AT_declaration DW_FORM_flag_present
+ DW_AT_external DW_FORM_flag_present
+
+[6] DW_TAG_base_type DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_encoding DW_FORM_data1
+ DW_AT_byte_size DW_FORM_data1
+
+[7] DW_TAG_pointer_type DW_CHILDREN_no
+ DW_AT_type DW_FORM_ref4
+
+[8] DW_TAG_const_type DW_CHILDREN_no
+ DW_AT_type DW_FORM_ref4
+
+[9] DW_TAG_structure_type DW_CHILDREN_yes
+ DW_AT_calling_convention DW_FORM_data1
+ DW_AT_name DW_FORM_strp
+ DW_AT_byte_size DW_FORM_data1
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+
+[10] DW_TAG_member DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_type DW_FORM_ref4
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_data_member_location DW_FORM_data1
+
+[11] DW_TAG_namespace DW_CHILDREN_yes
+ DW_AT_name DW_FORM_strp
+
+[12] DW_TAG_typedef DW_CHILDREN_no
+ DW_AT_type DW_FORM_ref4
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+
+[13] DW_TAG_unspecified_type DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+
+[14] DW_TAG_imported_declaration DW_CHILDREN_no
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_import DW_FORM_ref4
+
+[15] DW_TAG_subprogram DW_CHILDREN_yes
+ DW_AT_low_pc DW_FORM_addr
+ DW_AT_high_pc DW_FORM_data4
+ DW_AT_GNU_all_call_sites DW_FORM_flag_present
+ DW_AT_linkage_name DW_FORM_strp
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+ DW_AT_external DW_FORM_flag_present
+
+[16] DW_TAG_formal_parameter DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+
+[17] DW_TAG_variable DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+
+[18] DW_TAG_variable DW_CHILDREN_no
+ DW_AT_location DW_FORM_sec_offset
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+
+[19] DW_TAG_lexical_block DW_CHILDREN_yes
+ DW_AT_ranges DW_FORM_sec_offset
+
+[20] DW_TAG_GNU_call_site DW_CHILDREN_no
+ DW_AT_low_pc DW_FORM_addr
+
+[21] DW_TAG_GNU_call_site DW_CHILDREN_no
+ DW_AT_abstract_origin DW_FORM_ref4
+ DW_AT_low_pc DW_FORM_addr
+
+[22] DW_TAG_subprogram DW_CHILDREN_yes
+ DW_AT_linkage_name DW_FORM_strp
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+ DW_AT_inline DW_FORM_data1
+
+[23] DW_TAG_label DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+
+[24] DW_TAG_lexical_block DW_CHILDREN_yes
+
+[25] DW_TAG_subprogram DW_CHILDREN_yes
+ DW_AT_low_pc DW_FORM_addr
+ DW_AT_high_pc DW_FORM_data4
+ DW_AT_GNU_all_call_sites DW_FORM_flag_present
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+ DW_AT_external DW_FORM_flag_present
+
+[26] DW_TAG_inlined_subroutine DW_CHILDREN_yes
+ DW_AT_abstract_origin DW_FORM_ref4
+ DW_AT_low_pc DW_FORM_addr
+ DW_AT_high_pc DW_FORM_data4
+ DW_AT_call_file DW_FORM_data1
+ DW_AT_call_line DW_FORM_data1
+ DW_AT_call_column DW_FORM_data1
+
+[27] DW_TAG_formal_parameter DW_CHILDREN_no
+ DW_AT_abstract_origin DW_FORM_ref4
+
+[28] DW_TAG_variable DW_CHILDREN_no
+ DW_AT_location DW_FORM_sec_offset
+ DW_AT_abstract_origin DW_FORM_ref4
+
+[29] DW_TAG_variable DW_CHILDREN_no
+ DW_AT_abstract_origin DW_FORM_ref4
+
+[30] DW_TAG_label DW_CHILDREN_no
+ DW_AT_abstract_origin DW_FORM_ref4
+ DW_AT_low_pc DW_FORM_addr
+
+
+.debug_info contents:
+0x00000000: Compile Unit: length = 0x00000328 version = 0x0004 abbr_offset = 0x0000 addr_size = 0x04 (next unit at 0x0000032c)
+
+0x0000000b: DW_TAG_compile_unit [1] *
+ DW_AT_producer [DW_FORM_strp] ( .debug_str[0x00000000] = "clang version 10.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project 7fcd9e3f70830a9c4bf631a602c2764180b5c3a8)")
+ DW_AT_language [DW_FORM_data2] (DW_LANG_C_plus_plus)
+ DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000095] = "/usr/local/google/home/azakai/Dev/emscripten/fannkuch.cpp")
+ DW_AT_stmt_list [DW_FORM_sec_offset] (0x00000000)
+ DW_AT_comp_dir [DW_FORM_strp] ( .debug_str[0x000000cf] = "/usr/local/google/home/azakai/Dev/binaryen")
+ DW_AT_low_pc [DW_FORM_addr] (0x0000000000000000)
+ DW_AT_ranges [DW_FORM_sec_offset] (0x00000040
+ [0x00000003, 0x0000039a)
+ [0x0000039c, 0x000006e2))
+
+.debug_loc contents:
+0x00000000:
+ [0xffffffff, 0x00000003):
+ [0x00000000, 0x0000003c): DW_OP_consts +0, DW_OP_stack_value
+
+0x0000001d:
+ [0xffffffff, 0x00000003):
+ [0x00000007, 0x0000003c): DW_OP_consts +0, DW_OP_stack_value
+ [0x000000ec, 0x000000f5): DW_OP_consts +1, DW_OP_stack_value
+ [0x00000179, 0x00000186): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000264, 0x0000026f): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000275, 0x0000027e): DW_OP_consts +1, DW_OP_stack_value
+ [0x00000302, 0x0000030f): DW_OP_consts +0, DW_OP_stack_value
+
+0x0000007b:
+ [0xffffffff, 0x00000003):
+ [0x000000cf, 0x000000e6): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000264, 0x0000026f): DW_OP_consts +0, DW_OP_stack_value
+
+0x000000a5:
+ [0xffffffff, 0x0000039c):
+ [0x0000004c, 0x00000055): DW_OP_consts +30, DW_OP_stack_value
+
+0x000000c2:
+ [0xffffffff, 0x0000039c):
+ [0x0000004c, 0x00000055): DW_OP_lit0, DW_OP_stack_value
+
+0x000000de:
+ [0xffffffff, 0x0000039c):
+ [0x0000004c, 0x00000055): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000099, 0x000000c1): DW_OP_consts +0, DW_OP_stack_value
+ [0x000000f5, 0x000000f9): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000178, 0x00000188): DW_OP_consts +0, DW_OP_stack_value
+ [0x000001fa, 0x0000020c): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000241, 0x00000255): DW_OP_consts +0, DW_OP_stack_value
+
+0x0000013c:
+ [0xffffffff, 0x0000039c):
+ [0x000002d6, 0x000002e1): DW_OP_consts +0, DW_OP_stack_value
+
+.debug_line contents:
+debug_line[0x00000000]
+Line table prologue:
+ total_length: 0x0000107f
+ version: 4
+ prologue_length: 0x000000d7
+ min_inst_length: 1
+max_ops_per_inst: 1
+ default_is_stmt: 1
+ line_base: -5
+ line_range: 14
+ opcode_base: 13
+standard_opcode_lengths[DW_LNS_copy] = 0
+standard_opcode_lengths[DW_LNS_advance_pc] = 1
+standard_opcode_lengths[DW_LNS_advance_line] = 1
+standard_opcode_lengths[DW_LNS_set_file] = 1
+standard_opcode_lengths[DW_LNS_set_column] = 1
+standard_opcode_lengths[DW_LNS_negate_stmt] = 0
+standard_opcode_lengths[DW_LNS_set_basic_block] = 0
+standard_opcode_lengths[DW_LNS_const_add_pc] = 0
+standard_opcode_lengths[DW_LNS_fixed_advance_pc] = 1
+standard_opcode_lengths[DW_LNS_set_prologue_end] = 0
+standard_opcode_lengths[DW_LNS_set_epilogue_begin] = 0
+standard_opcode_lengths[DW_LNS_set_isa] = 1
+include_directories[ 1] = "/usr/local/google/home/azakai/Dev"
+file_names[ 1]:
+ name: "emscripten/system/include/libc/stdlib.h"
+ dir_index: 1
+ mod_time: 0x00000000
+ length: 0x00000000
+file_names[ 2]:
+ name: "emscripten/fannkuch.cpp"
+ dir_index: 1
+ mod_time: 0x00000000
+ length: 0x00000000
+file_names[ 3]:
+ name: "emscripten/system/include/libcxx/__nullptr"
+ dir_index: 1
+ mod_time: 0x00000000
+ length: 0x00000000
+file_names[ 4]:
+ name: "emscripten/system/include/libcxx/stddef.h"
+ dir_index: 1
+ mod_time: 0x00000000
+ length: 0x00000000
+0x000000e1: 00 DW_LNE_set_address (0x000000000000000a)
+0x000000e8: 03 DW_LNS_advance_line (33)
+0x000000ea: 05 DW_LNS_set_column (14)
+0x000000ec: 04 DW_LNS_set_file (2)
+0x000000ee: 0a DW_LNS_set_prologue_end
+0x000000ef: 00 DW_LNE_end_sequence
+ 0x000000000000000a 33 14 2 0 0 is_stmt end_sequence
+
+0x000000f2: 00 DW_LNE_set_address (0x0000000000000013)
+0x000000f9: 03 DW_LNS_advance_line (34)
+0x000000fb: 05 DW_LNS_set_column (27)
+0x000000fd: 04 DW_LNS_set_file (2)
+0x000000ff: 0a DW_LNS_set_prologue_end
+0x00000100: 00 DW_LNE_end_sequence
+ 0x0000000000000013 34 27 2 0 0 is_stmt end_sequence
+
+0x00000103: 00 DW_LNE_set_address (0x0000000000000014)
+0x0000010a: 03 DW_LNS_advance_line (34)
+0x0000010c: 05 DW_LNS_set_column (18)
+0x0000010e: 04 DW_LNS_set_file (2)
+0x00000110: 06 DW_LNS_negate_stmt
+0x00000111: 0a DW_LNS_set_prologue_end
+0x00000112: 00 DW_LNE_end_sequence
+ 0x0000000000000014 34 18 2 0 0 end_sequence
+
+0x00000115: 00 DW_LNE_set_address (0x000000000000001a)
+0x0000011c: 03 DW_LNS_advance_line (35)
+0x0000011e: 05 DW_LNS_set_column (17)
+0x00000120: 04 DW_LNS_set_file (2)
+0x00000122: 0a DW_LNS_set_prologue_end
+0x00000123: 00 DW_LNE_end_sequence
+ 0x000000000000001a 35 17 2 0 0 is_stmt end_sequence
+
+0x00000126: 00 DW_LNE_set_address (0x0000000000000020)
+0x0000012d: 03 DW_LNS_advance_line (36)
+0x0000012f: 05 DW_LNS_set_column (18)
+0x00000131: 04 DW_LNS_set_file (2)
+0x00000133: 0a DW_LNS_set_prologue_end
+0x00000134: 00 DW_LNE_end_sequence
+ 0x0000000000000020 36 18 2 0 0 is_stmt end_sequence
+
+0x00000137: 00 DW_LNE_set_address (0x000000000000002c)
+0x0000013e: 03 DW_LNS_advance_line (37)
+0x00000140: 05 DW_LNS_set_column (18)
+0x00000142: 04 DW_LNS_set_file (2)
+0x00000144: 0a DW_LNS_set_prologue_end
+0x00000145: 00 DW_LNE_end_sequence
+ 0x000000000000002c 37 18 2 0 0 is_stmt end_sequence
+
+0x00000148: 00 DW_LNE_set_address (0x0000000000000031)
+0x0000014f: 03 DW_LNS_advance_line (37)
+0x00000151: 05 DW_LNS_set_column (4)
+0x00000153: 04 DW_LNS_set_file (2)
+0x00000155: 06 DW_LNS_negate_stmt
+0x00000156: 0a DW_LNS_set_prologue_end
+0x00000157: 00 DW_LNE_end_sequence
+ 0x0000000000000031 37 4 2 0 0 end_sequence
+
+0x0000015a: 00 DW_LNE_set_address (0x0000000000000035)
+0x00000161: 03 DW_LNS_advance_line (38)
+0x00000163: 05 DW_LNS_set_column (7)
+0x00000165: 04 DW_LNS_set_file (2)
+0x00000167: 0a DW_LNS_set_prologue_end
+0x00000168: 00 DW_LNE_end_sequence
+ 0x0000000000000035 38 7 2 0 0 is_stmt end_sequence
+
+0x0000016b: 00 DW_LNE_set_address (0x000000000000003d)
+0x00000172: 03 DW_LNS_advance_line (38)
+0x00000174: 05 DW_LNS_set_column (16)
+0x00000176: 04 DW_LNS_set_file (2)
+0x00000178: 06 DW_LNS_negate_stmt
+0x00000179: 0a DW_LNS_set_prologue_end
+0x0000017a: 00 DW_LNE_end_sequence
+ 0x000000000000003d 38 16 2 0 0 end_sequence
+
+0x0000017d: 00 DW_LNE_set_address (0x0000000000000042)
+0x00000184: 03 DW_LNS_advance_line (37)
+0x00000186: 05 DW_LNS_set_column (24)
+0x00000188: 04 DW_LNS_set_file (2)
+0x0000018a: 0a DW_LNS_set_prologue_end
+0x0000018b: 00 DW_LNE_end_sequence
+ 0x0000000000000042 37 24 2 0 0 is_stmt end_sequence
+
+0x0000018e: 00 DW_LNE_set_address (0x0000000000000047)
+0x00000195: 03 DW_LNS_advance_line (37)
+0x00000197: 05 DW_LNS_set_column (18)
+0x00000199: 04 DW_LNS_set_file (2)
+0x0000019b: 06 DW_LNS_negate_stmt
+0x0000019c: 0a DW_LNS_set_prologue_end
+0x0000019d: 00 DW_LNE_end_sequence
+ 0x0000000000000047 37 18 2 0 0 end_sequence
+
+0x000001a0: 00 DW_LNE_set_address (0x000000000000004c)
+0x000001a7: 03 DW_LNS_advance_line (37)
+0x000001a9: 05 DW_LNS_set_column (4)
+0x000001ab: 04 DW_LNS_set_file (2)
+0x000001ad: 06 DW_LNS_negate_stmt
+0x000001ae: 0a DW_LNS_set_prologue_end
+0x000001af: 00 DW_LNE_end_sequence
+ 0x000000000000004c 37 4 2 0 0 end_sequence
+
+0x000001b2: 00 DW_LNE_set_address (0x000000000000004f)
+0x000001b9: 03 DW_LNS_advance_line (39)
+0x000001bb: 05 DW_LNS_set_column (4)
+0x000001bd: 04 DW_LNS_set_file (2)
+0x000001bf: 0a DW_LNS_set_prologue_end
+0x000001c0: 00 DW_LNE_end_sequence
+ 0x000000000000004f 39 4 2 0 0 is_stmt end_sequence
+
+0x000001c3: 00 DW_LNE_set_address (0x0000000000000051)
+0x000001ca: 03 DW_LNS_advance_line (39)
+0x000001cc: 05 DW_LNS_set_column (16)
+0x000001ce: 04 DW_LNS_set_file (2)
+0x000001d0: 06 DW_LNS_negate_stmt
+0x000001d1: 0a DW_LNS_set_prologue_end
+0x000001d2: 00 DW_LNE_end_sequence
+ 0x0000000000000051 39 16 2 0 0 end_sequence
+
+0x000001d5: 00 DW_LNE_set_address (0x000000000000005a)
+0x000001dc: 03 DW_LNS_advance_line (39)
+0x000001de: 05 DW_LNS_set_column (4)
+0x000001e0: 04 DW_LNS_set_file (2)
+0x000001e2: 06 DW_LNS_negate_stmt
+0x000001e3: 0a DW_LNS_set_prologue_end
+0x000001e4: 00 DW_LNE_end_sequence
+ 0x000000000000005a 39 4 2 0 0 end_sequence
+
+0x000001e7: 00 DW_LNE_set_address (0x000000000000005c)
+0x000001ee: 03 DW_LNS_advance_line (39)
+0x000001f0: 05 DW_LNS_set_column (23)
+0x000001f2: 04 DW_LNS_set_file (2)
+0x000001f4: 06 DW_LNS_negate_stmt
+0x000001f5: 0a DW_LNS_set_prologue_end
+0x000001f6: 00 DW_LNE_end_sequence
+ 0x000000000000005c 39 23 2 0 0 end_sequence
+
+0x000001f9: 00 DW_LNE_set_address (0x0000000000000061)
+0x00000200: 03 DW_LNS_advance_line (39)
+0x00000202: 05 DW_LNS_set_column (19)
+0x00000204: 04 DW_LNS_set_file (2)
+0x00000206: 06 DW_LNS_negate_stmt
+0x00000207: 0a DW_LNS_set_prologue_end
+0x00000208: 00 DW_LNE_end_sequence
+ 0x0000000000000061 39 19 2 0 0 end_sequence
+
+0x0000020b: 00 DW_LNE_set_address (0x0000000000000066)
+0x00000212: 03 DW_LNS_advance_line (40)
+0x00000214: 05 DW_LNS_set_column (4)
+0x00000216: 04 DW_LNS_set_file (2)
+0x00000218: 0a DW_LNS_set_prologue_end
+0x00000219: 00 DW_LNE_end_sequence
+ 0x0000000000000066 40 4 2 0 0 is_stmt end_sequence
+
+0x0000021c: 00 DW_LNE_set_address (0x000000000000006e)
+0x00000223: 03 DW_LNS_advance_line (40)
+0x00000225: 05 DW_LNS_set_column (17)
+0x00000227: 04 DW_LNS_set_file (2)
+0x00000229: 06 DW_LNS_negate_stmt
+0x0000022a: 0a DW_LNS_set_prologue_end
+0x0000022b: 00 DW_LNE_end_sequence
+ 0x000000000000006e 40 17 2 0 0 end_sequence
+
+0x0000022e: 00 DW_LNE_set_address (0x0000000000000079)
+0x00000235: 03 DW_LNS_advance_line (37)
+0x00000237: 05 DW_LNS_set_column (18)
+0x00000239: 04 DW_LNS_set_file (2)
+0x0000023b: 0a DW_LNS_set_prologue_end
+0x0000023c: 00 DW_LNE_end_sequence
+ 0x0000000000000079 37 18 2 0 0 is_stmt end_sequence
+
+0x0000023f: 00 DW_LNE_set_address (0x000000000000007e)
+0x00000246: 03 DW_LNS_advance_line (43)
+0x00000248: 05 DW_LNS_set_column (4)
+0x0000024a: 04 DW_LNS_set_file (2)
+0x0000024c: 0a DW_LNS_set_prologue_end
+0x0000024d: 00 DW_LNE_end_sequence
+ 0x000000000000007e 43 4 2 0 0 is_stmt end_sequence
+
+0x00000250: 00 DW_LNE_set_address (0x0000000000000084)
+0x00000257: 03 DW_LNS_advance_line (44)
+0x00000259: 05 DW_LNS_set_column (16)
+0x0000025b: 04 DW_LNS_set_file (2)
+0x0000025d: 0a DW_LNS_set_prologue_end
+0x0000025e: 00 DW_LNE_end_sequence
+ 0x0000000000000084 44 16 2 0 0 is_stmt end_sequence
+
+0x00000261: 00 DW_LNE_set_address (0x000000000000008d)
+0x00000268: 03 DW_LNS_advance_line (45)
+0x0000026a: 05 DW_LNS_set_column (10)
+0x0000026c: 04 DW_LNS_set_file (2)
+0x0000026e: 0a DW_LNS_set_prologue_end
+0x0000026f: 00 DW_LNE_end_sequence
+ 0x000000000000008d 45 10 2 0 0 is_stmt end_sequence
+
+0x00000272: 00 DW_LNE_set_address (0x000000000000008f)
+0x00000279: 03 DW_LNS_advance_line (45)
+0x0000027b: 05 DW_LNS_set_column (18)
+0x0000027d: 04 DW_LNS_set_file (2)
+0x0000027f: 06 DW_LNS_negate_stmt
+0x00000280: 0a DW_LNS_set_prologue_end
+0x00000281: 00 DW_LNE_end_sequence
+ 0x000000000000008f 45 18 2 0 0 end_sequence
+
+0x00000284: 00 DW_LNE_set_address (0x0000000000000098)
+0x0000028b: 03 DW_LNS_advance_line (45)
+0x0000028d: 05 DW_LNS_set_column (10)
+0x0000028f: 04 DW_LNS_set_file (2)
+0x00000291: 06 DW_LNS_negate_stmt
+0x00000292: 0a DW_LNS_set_prologue_end
+0x00000293: 00 DW_LNE_end_sequence
+ 0x0000000000000098 45 10 2 0 0 end_sequence
+
+0x00000296: 00 DW_LNE_set_address (0x000000000000009a)
+0x0000029d: 03 DW_LNS_advance_line (45)
+0x0000029f: 05 DW_LNS_set_column (23)
+0x000002a1: 04 DW_LNS_set_file (2)
+0x000002a3: 06 DW_LNS_negate_stmt
+0x000002a4: 0a DW_LNS_set_prologue_end
+0x000002a5: 00 DW_LNE_end_sequence
+ 0x000000000000009a 45 23 2 0 0 end_sequence
+
+0x000002a8: 00 DW_LNE_set_address (0x000000000000009f)
+0x000002af: 03 DW_LNS_advance_line (44)
+0x000002b1: 05 DW_LNS_set_column (16)
+0x000002b3: 04 DW_LNS_set_file (2)
+0x000002b5: 0a DW_LNS_set_prologue_end
+0x000002b6: 00 DW_LNE_end_sequence
+ 0x000000000000009f 44 16 2 0 0 is_stmt end_sequence
+
+0x000002b9: 00 DW_LNE_set_address (0x00000000000000aa)
+0x000002c0: 03 DW_LNS_advance_line (44)
+0x000002c2: 05 DW_LNS_set_column (7)
+0x000002c4: 04 DW_LNS_set_file (2)
+0x000002c6: 06 DW_LNS_negate_stmt
+0x000002c7: 0a DW_LNS_set_prologue_end
+0x000002c8: 00 DW_LNE_end_sequence
+ 0x00000000000000aa 44 7 2 0 0 end_sequence
+
+0x000002cb: 00 DW_LNE_set_address (0x00000000000000b0)
+0x000002d2: 03 DW_LNS_advance_line (46)
+0x000002d4: 05 DW_LNS_set_column (11)
+0x000002d6: 04 DW_LNS_set_file (2)
+0x000002d8: 0a DW_LNS_set_prologue_end
+0x000002d9: 00 DW_LNE_end_sequence
+ 0x00000000000000b0 46 11 2 0 0 is_stmt end_sequence
+
+0x000002dc: 00 DW_LNE_set_address (0x00000000000000bc)
+0x000002e3: 03 DW_LNS_advance_line (46)
+0x000002e5: 05 DW_LNS_set_column (28)
+0x000002e7: 04 DW_LNS_set_file (2)
+0x000002e9: 06 DW_LNS_negate_stmt
+0x000002ea: 0a DW_LNS_set_prologue_end
+0x000002eb: 00 DW_LNE_end_sequence
+ 0x00000000000000bc 46 28 2 0 0 end_sequence
+
+0x000002ee: 00 DW_LNE_set_address (0x00000000000000c1)
+0x000002f5: 03 DW_LNS_advance_line (46)
+0x000002f7: 05 DW_LNS_set_column (41)
+0x000002f9: 04 DW_LNS_set_file (2)
+0x000002fb: 06 DW_LNS_negate_stmt
+0x000002fc: 0a DW_LNS_set_prologue_end
+0x000002fd: 00 DW_LNE_end_sequence
+ 0x00000000000000c1 46 41 2 0 0 end_sequence
+
+0x00000300: 00 DW_LNE_set_address (0x00000000000000c6)
+0x00000307: 03 DW_LNS_advance_line (48)
+0x00000309: 05 DW_LNS_set_column (21)
+0x0000030b: 04 DW_LNS_set_file (2)
+0x0000030d: 0a DW_LNS_set_prologue_end
+0x0000030e: 00 DW_LNE_end_sequence
+ 0x00000000000000c6 48 21 2 0 0 is_stmt end_sequence
+
+0x00000311: 00 DW_LNE_set_address (0x00000000000000ce)
+0x00000318: 03 DW_LNS_advance_line (50)
+0x0000031a: 05 DW_LNS_set_column (14)
+0x0000031c: 04 DW_LNS_set_file (2)
+0x0000031e: 0a DW_LNS_set_prologue_end
+0x0000031f: 00 DW_LNE_end_sequence
+ 0x00000000000000ce 50 14 2 0 0 is_stmt end_sequence
+
+0x00000322: 00 DW_LNE_set_address (0x00000000000000e1)
+0x00000329: 03 DW_LNS_advance_line (52)
+0x0000032b: 05 DW_LNS_set_column (38)
+0x0000032d: 04 DW_LNS_set_file (2)
+0x0000032f: 0a DW_LNS_set_prologue_end
+0x00000330: 00 DW_LNE_end_sequence
+ 0x00000000000000e1 52 38 2 0 0 is_stmt end_sequence
+
+0x00000333: 00 DW_LNE_set_address (0x00000000000000f5)
+0x0000033a: 03 DW_LNS_advance_line (53)
+0x0000033c: 05 DW_LNS_set_column (22)
+0x0000033e: 04 DW_LNS_set_file (2)
+0x00000340: 0a DW_LNS_set_prologue_end
+0x00000341: 00 DW_LNE_end_sequence
+ 0x00000000000000f5 53 22 2 0 0 is_stmt end_sequence
+
+0x00000344: 00 DW_LNE_set_address (0x0000000000000104)
+0x0000034b: 03 DW_LNS_advance_line (54)
+0x0000034d: 05 DW_LNS_set_column (24)
+0x0000034f: 04 DW_LNS_set_file (2)
+0x00000351: 0a DW_LNS_set_prologue_end
+0x00000352: 00 DW_LNE_end_sequence
+ 0x0000000000000104 54 24 2 0 0 is_stmt end_sequence
+
+0x00000355: 00 DW_LNE_set_address (0x0000000000000106)
+0x0000035c: 03 DW_LNS_advance_line (54)
+0x0000035e: 05 DW_LNS_set_column (26)
+0x00000360: 04 DW_LNS_set_file (2)
+0x00000362: 06 DW_LNS_negate_stmt
+0x00000363: 0a DW_LNS_set_prologue_end
+0x00000364: 00 DW_LNE_end_sequence
+ 0x0000000000000106 54 26 2 0 0 end_sequence
+
+0x00000367: 00 DW_LNE_set_address (0x0000000000000113)
+0x0000036e: 03 DW_LNS_advance_line (54)
+0x00000370: 05 DW_LNS_set_column (24)
+0x00000372: 04 DW_LNS_set_file (2)
+0x00000374: 06 DW_LNS_negate_stmt
+0x00000375: 0a DW_LNS_set_prologue_end
+0x00000376: 00 DW_LNE_end_sequence
+ 0x0000000000000113 54 24 2 0 0 end_sequence
+
+0x00000379: 00 DW_LNE_set_address (0x0000000000000116)
+0x00000380: 03 DW_LNS_advance_line (55)
+0x00000382: 05 DW_LNS_set_column (24)
+0x00000384: 04 DW_LNS_set_file (2)
+0x00000386: 0a DW_LNS_set_prologue_end
+0x00000387: 00 DW_LNE_end_sequence
+ 0x0000000000000116 55 24 2 0 0 is_stmt end_sequence
+
+0x0000038a: 00 DW_LNE_set_address (0x000000000000011d)
+0x00000391: 03 DW_LNS_advance_line (52)
+0x00000393: 05 DW_LNS_set_column (44)
+0x00000395: 04 DW_LNS_set_file (2)
+0x00000397: 0a DW_LNS_set_prologue_end
+0x00000398: 00 DW_LNE_end_sequence
+ 0x000000000000011d 52 44 2 0 0 is_stmt end_sequence
+
+0x0000039b: 00 DW_LNE_set_address (0x0000000000000129)
+0x000003a2: 03 DW_LNS_advance_line (52)
+0x000003a4: 05 DW_LNS_set_column (38)
+0x000003a6: 04 DW_LNS_set_file (2)
+0x000003a8: 06 DW_LNS_negate_stmt
+0x000003a9: 0a DW_LNS_set_prologue_end
+0x000003aa: 00 DW_LNE_end_sequence
+ 0x0000000000000129 52 38 2 0 0 end_sequence
+
+0x000003ad: 00 DW_LNE_set_address (0x000000000000012c)
+0x000003b4: 03 DW_LNS_advance_line (52)
+0x000003b6: 05 DW_LNS_set_column (13)
+0x000003b8: 04 DW_LNS_set_file (2)
+0x000003ba: 06 DW_LNS_negate_stmt
+0x000003bb: 0a DW_LNS_set_prologue_end
+0x000003bc: 00 DW_LNE_end_sequence
+ 0x000000000000012c 52 13 2 0 0 end_sequence
+
+0x000003bf: 00 DW_LNE_set_address (0x0000000000000130)
+0x000003c6: 03 DW_LNS_advance_line (58)
+0x000003c8: 05 DW_LNS_set_column (19)
+0x000003ca: 04 DW_LNS_set_file (2)
+0x000003cc: 0a DW_LNS_set_prologue_end
+0x000003cd: 00 DW_LNE_end_sequence
+ 0x0000000000000130 58 19 2 0 0 is_stmt end_sequence
+
+0x000003d0: 00 DW_LNE_set_address (0x000000000000013f)
+0x000003d7: 03 DW_LNS_advance_line (59)
+0x000003d9: 05 DW_LNS_set_column (21)
+0x000003db: 04 DW_LNS_set_file (2)
+0x000003dd: 0a DW_LNS_set_prologue_end
+0x000003de: 00 DW_LNE_end_sequence
+ 0x000000000000013f 59 21 2 0 0 is_stmt end_sequence
+
+0x000003e1: 00 DW_LNE_set_address (0x0000000000000146)
+0x000003e8: 03 DW_LNS_advance_line (57)
+0x000003ea: 05 DW_LNS_set_column (18)
+0x000003ec: 04 DW_LNS_set_file (2)
+0x000003ee: 0a DW_LNS_set_prologue_end
+0x000003ef: 00 DW_LNE_end_sequence
+ 0x0000000000000146 57 18 2 0 0 is_stmt end_sequence
+
+0x000003f2: 00 DW_LNE_set_address (0x0000000000000156)
+0x000003f9: 03 DW_LNS_advance_line (62)
+0x000003fb: 05 DW_LNS_set_column (14)
+0x000003fd: 04 DW_LNS_set_file (2)
+0x000003ff: 0a DW_LNS_set_prologue_end
+0x00000400: 00 DW_LNE_end_sequence
+ 0x0000000000000156 62 14 2 0 0 is_stmt end_sequence
+
+0x00000403: 00 DW_LNE_set_address (0x000000000000015a)
+0x0000040a: 03 DW_LNS_advance_line (62)
+0x0000040c: 05 DW_LNS_set_column (23)
+0x0000040e: 04 DW_LNS_set_file (2)
+0x00000410: 06 DW_LNS_negate_stmt
+0x00000411: 0a DW_LNS_set_prologue_end
+0x00000412: 00 DW_LNE_end_sequence
+ 0x000000000000015a 62 23 2 0 0 end_sequence
+
+0x00000415: 00 DW_LNE_set_address (0x000000000000015f)
+0x0000041c: 03 DW_LNS_advance_line (62)
+0x0000041e: 05 DW_LNS_set_column (14)
+0x00000420: 04 DW_LNS_set_file (2)
+0x00000422: 06 DW_LNS_negate_stmt
+0x00000423: 0a DW_LNS_set_prologue_end
+0x00000424: 00 DW_LNE_end_sequence
+ 0x000000000000015f 62 14 2 0 0 end_sequence
+
+0x00000427: 00 DW_LNE_set_address (0x0000000000000163)
+0x0000042e: 03 DW_LNS_advance_line (66)
+0x00000431: 05 DW_LNS_set_column (16)
+0x00000433: 04 DW_LNS_set_file (2)
+0x00000435: 0a DW_LNS_set_prologue_end
+0x00000436: 00 DW_LNE_end_sequence
+ 0x0000000000000163 66 16 2 0 0 is_stmt end_sequence
+
+0x00000439: 00 DW_LNE_set_address (0x0000000000000172)
+0x00000440: 03 DW_LNS_advance_line (75)
+0x00000443: 05 DW_LNS_set_column (27)
+0x00000445: 04 DW_LNS_set_file (2)
+0x00000447: 0a DW_LNS_set_prologue_end
+0x00000448: 00 DW_LNE_end_sequence
+ 0x0000000000000172 75 27 2 0 0 is_stmt end_sequence
+
+0x0000044b: 00 DW_LNE_set_address (0x000000000000017b)
+0x00000452: 03 DW_LNS_advance_line (76)
+0x00000455: 05 DW_LNS_set_column (16)
+0x00000457: 04 DW_LNS_set_file (2)
+0x00000459: 0a DW_LNS_set_prologue_end
+0x0000045a: 00 DW_LNE_end_sequence
+ 0x000000000000017b 76 16 2 0 0 is_stmt end_sequence
+
+0x0000045d: 00 DW_LNE_set_address (0x0000000000000183)
+0x00000464: 03 DW_LNS_advance_line (76)
+0x00000467: 05 DW_LNS_set_column (27)
+0x00000469: 04 DW_LNS_set_file (2)
+0x0000046b: 06 DW_LNS_negate_stmt
+0x0000046c: 0a DW_LNS_set_prologue_end
+0x0000046d: 00 DW_LNE_end_sequence
+ 0x0000000000000183 76 27 2 0 0 end_sequence
+
+0x00000470: 00 DW_LNE_set_address (0x0000000000000185)
+0x00000477: 03 DW_LNS_advance_line (76)
+0x0000047a: 05 DW_LNS_set_column (35)
+0x0000047c: 04 DW_LNS_set_file (2)
+0x0000047e: 06 DW_LNS_negate_stmt
+0x0000047f: 0a DW_LNS_set_prologue_end
+0x00000480: 00 DW_LNE_end_sequence
+ 0x0000000000000185 76 35 2 0 0 end_sequence
+
+0x00000483: 00 DW_LNE_set_address (0x000000000000018e)
+0x0000048a: 03 DW_LNS_advance_line (76)
+0x0000048d: 05 DW_LNS_set_column (27)
+0x0000048f: 04 DW_LNS_set_file (2)
+0x00000491: 06 DW_LNS_negate_stmt
+0x00000492: 0a DW_LNS_set_prologue_end
+0x00000493: 00 DW_LNE_end_sequence
+ 0x000000000000018e 76 27 2 0 0 end_sequence
+
+0x00000496: 00 DW_LNE_set_address (0x0000000000000193)
+0x0000049d: 03 DW_LNS_advance_line (76)
+0x000004a0: 05 DW_LNS_set_column (25)
+0x000004a2: 04 DW_LNS_set_file (2)
+0x000004a4: 06 DW_LNS_negate_stmt
+0x000004a5: 0a DW_LNS_set_prologue_end
+0x000004a6: 00 DW_LNE_end_sequence
+ 0x0000000000000193 76 25 2 0 0 end_sequence
+
+0x000004a9: 00 DW_LNE_set_address (0x0000000000000196)
+0x000004b0: 03 DW_LNS_advance_line (75)
+0x000004b3: 05 DW_LNS_set_column (27)
+0x000004b5: 04 DW_LNS_set_file (2)
+0x000004b7: 0a DW_LNS_set_prologue_end
+0x000004b8: 00 DW_LNE_end_sequence
+ 0x0000000000000196 75 27 2 0 0 is_stmt end_sequence
+
+0x000004bb: 00 DW_LNE_set_address (0x000000000000019b)
+0x000004c2: 03 DW_LNS_advance_line (75)
+0x000004c5: 05 DW_LNS_set_column (13)
+0x000004c7: 04 DW_LNS_set_file (2)
+0x000004c9: 06 DW_LNS_negate_stmt
+0x000004ca: 0a DW_LNS_set_prologue_end
+0x000004cb: 00 DW_LNE_end_sequence
+ 0x000000000000019b 75 13 2 0 0 end_sequence
+
+0x000004ce: 00 DW_LNE_set_address (0x00000000000001a3)
+0x000004d5: 03 DW_LNS_advance_line (77)
+0x000004d8: 05 DW_LNS_set_column (13)
+0x000004da: 04 DW_LNS_set_file (2)
+0x000004dc: 0a DW_LNS_set_prologue_end
+0x000004dd: 00 DW_LNE_end_sequence
+ 0x00000000000001a3 77 13 2 0 0 is_stmt end_sequence
+
+0x000004e0: 00 DW_LNE_set_address (0x00000000000001ab)
+0x000004e7: 03 DW_LNS_advance_line (77)
+0x000004ea: 05 DW_LNS_set_column (22)
+0x000004ec: 04 DW_LNS_set_file (2)
+0x000004ee: 06 DW_LNS_negate_stmt
+0x000004ef: 0a DW_LNS_set_prologue_end
+0x000004f0: 00 DW_LNE_end_sequence
+ 0x00000000000001ab 77 22 2 0 0 end_sequence
+
+0x000004f3: 00 DW_LNE_set_address (0x00000000000001b0)
+0x000004fa: 03 DW_LNS_advance_line (79)
+0x000004fd: 05 DW_LNS_set_column (16)
+0x000004ff: 04 DW_LNS_set_file (2)
+0x00000501: 0a DW_LNS_set_prologue_end
+0x00000502: 00 DW_LNE_end_sequence
+ 0x00000000000001b0 79 16 2 0 0 is_stmt end_sequence
+
+0x00000505: 00 DW_LNE_set_address (0x00000000000001b8)
+0x0000050c: 03 DW_LNS_advance_line (79)
+0x0000050f: 05 DW_LNS_set_column (14)
+0x00000511: 04 DW_LNS_set_file (2)
+0x00000513: 06 DW_LNS_negate_stmt
+0x00000514: 0a DW_LNS_set_prologue_end
+0x00000515: 00 DW_LNE_end_sequence
+ 0x00000000000001b8 79 14 2 0 0 end_sequence
+
+0x00000518: 00 DW_LNE_set_address (0x00000000000001c7)
+0x0000051f: 03 DW_LNS_advance_line (79)
+0x00000522: 05 DW_LNS_set_column (25)
+0x00000524: 04 DW_LNS_set_file (2)
+0x00000526: 06 DW_LNS_negate_stmt
+0x00000527: 0a DW_LNS_set_prologue_end
+0x00000528: 00 DW_LNE_end_sequence
+ 0x00000000000001c7 79 25 2 0 0 end_sequence
+
+0x0000052b: 00 DW_LNE_set_address (0x00000000000001ce)
+0x00000532: 03 DW_LNS_advance_line (81)
+0x00000535: 05 DW_LNS_set_column (11)
+0x00000537: 04 DW_LNS_set_file (2)
+0x00000539: 0a DW_LNS_set_prologue_end
+0x0000053a: 00 DW_LNE_end_sequence
+ 0x00000000000001ce 81 11 2 0 0 is_stmt end_sequence
+
+0x0000053d: 00 DW_LNE_set_address (0x00000000000001d3)
+0x00000544: 03 DW_LNS_advance_line (66)
+0x00000547: 05 DW_LNS_set_column (16)
+0x00000549: 04 DW_LNS_set_file (2)
+0x0000054b: 0a DW_LNS_set_prologue_end
+0x0000054c: 00 DW_LNE_end_sequence
+ 0x00000000000001d3 66 16 2 0 0 is_stmt end_sequence
+
+0x0000054f: 00 DW_LNE_set_address (0x00000000000001da)
+0x00000556: 03 DW_LNS_advance_line (74)
+0x00000559: 05 DW_LNS_set_column (22)
+0x0000055b: 04 DW_LNS_set_file (2)
+0x0000055d: 0a DW_LNS_set_prologue_end
+0x0000055e: 00 DW_LNE_end_sequence
+ 0x00000000000001da 74 22 2 0 0 is_stmt end_sequence
+
+0x00000561: 00 DW_LNE_set_address (0x00000000000001ea)
+0x00000568: 03 DW_LNS_advance_line (39)
+0x0000056a: 05 DW_LNS_set_column (4)
+0x0000056c: 04 DW_LNS_set_file (2)
+0x0000056e: 0a DW_LNS_set_prologue_end
+0x0000056f: 00 DW_LNE_end_sequence
+ 0x00000000000001ea 39 4 2 0 0 is_stmt end_sequence
+
+0x00000572: 00 DW_LNE_set_address (0x00000000000001ec)
+0x00000579: 03 DW_LNS_advance_line (39)
+0x0000057b: 05 DW_LNS_set_column (16)
+0x0000057d: 04 DW_LNS_set_file (2)
+0x0000057f: 06 DW_LNS_negate_stmt
+0x00000580: 0a DW_LNS_set_prologue_end
+0x00000581: 00 DW_LNE_end_sequence
+ 0x00000000000001ec 39 16 2 0 0 end_sequence
+
+0x00000584: 00 DW_LNE_set_address (0x00000000000001f5)
+0x0000058b: 03 DW_LNS_advance_line (39)
+0x0000058d: 05 DW_LNS_set_column (4)
+0x0000058f: 04 DW_LNS_set_file (2)
+0x00000591: 06 DW_LNS_negate_stmt
+0x00000592: 0a DW_LNS_set_prologue_end
+0x00000593: 00 DW_LNE_end_sequence
+ 0x00000000000001f5 39 4 2 0 0 end_sequence
+
+0x00000596: 00 DW_LNE_set_address (0x00000000000001f7)
+0x0000059d: 03 DW_LNS_advance_line (39)
+0x0000059f: 05 DW_LNS_set_column (23)
+0x000005a1: 04 DW_LNS_set_file (2)
+0x000005a3: 06 DW_LNS_negate_stmt
+0x000005a4: 0a DW_LNS_set_prologue_end
+0x000005a5: 00 DW_LNE_end_sequence
+ 0x00000000000001f7 39 23 2 0 0 end_sequence
+
+0x000005a8: 00 DW_LNE_set_address (0x00000000000001fc)
+0x000005af: 03 DW_LNS_advance_line (39)
+0x000005b1: 05 DW_LNS_set_column (19)
+0x000005b3: 04 DW_LNS_set_file (2)
+0x000005b5: 06 DW_LNS_negate_stmt
+0x000005b6: 0a DW_LNS_set_prologue_end
+0x000005b7: 00 DW_LNE_end_sequence
+ 0x00000000000001fc 39 19 2 0 0 end_sequence
+
+0x000005ba: 00 DW_LNE_set_address (0x0000000000000201)
+0x000005c1: 03 DW_LNS_advance_line (40)
+0x000005c3: 05 DW_LNS_set_column (4)
+0x000005c5: 04 DW_LNS_set_file (2)
+0x000005c7: 0a DW_LNS_set_prologue_end
+0x000005c8: 00 DW_LNE_end_sequence
+ 0x0000000000000201 40 4 2 0 0 is_stmt end_sequence
+
+0x000005cb: 00 DW_LNE_set_address (0x0000000000000209)
+0x000005d2: 03 DW_LNS_advance_line (40)
+0x000005d4: 05 DW_LNS_set_column (17)
+0x000005d6: 04 DW_LNS_set_file (2)
+0x000005d8: 06 DW_LNS_negate_stmt
+0x000005d9: 0a DW_LNS_set_prologue_end
+0x000005da: 00 DW_LNE_end_sequence
+ 0x0000000000000209 40 17 2 0 0 end_sequence
+
+0x000005dd: 00 DW_LNE_set_address (0x0000000000000219)
+0x000005e4: 03 DW_LNS_advance_line (44)
+0x000005e6: 05 DW_LNS_set_column (16)
+0x000005e8: 04 DW_LNS_set_file (2)
+0x000005ea: 0a DW_LNS_set_prologue_end
+0x000005eb: 00 DW_LNE_end_sequence
+ 0x0000000000000219 44 16 2 0 0 is_stmt end_sequence
+
+0x000005ee: 00 DW_LNE_set_address (0x0000000000000222)
+0x000005f5: 03 DW_LNS_advance_line (45)
+0x000005f7: 05 DW_LNS_set_column (10)
+0x000005f9: 04 DW_LNS_set_file (2)
+0x000005fb: 0a DW_LNS_set_prologue_end
+0x000005fc: 00 DW_LNE_end_sequence
+ 0x0000000000000222 45 10 2 0 0 is_stmt end_sequence
+
+0x000005ff: 00 DW_LNE_set_address (0x0000000000000224)
+0x00000606: 03 DW_LNS_advance_line (45)
+0x00000608: 05 DW_LNS_set_column (18)
+0x0000060a: 04 DW_LNS_set_file (2)
+0x0000060c: 06 DW_LNS_negate_stmt
+0x0000060d: 0a DW_LNS_set_prologue_end
+0x0000060e: 00 DW_LNE_end_sequence
+ 0x0000000000000224 45 18 2 0 0 end_sequence
+
+0x00000611: 00 DW_LNE_set_address (0x000000000000022d)
+0x00000618: 03 DW_LNS_advance_line (45)
+0x0000061a: 05 DW_LNS_set_column (10)
+0x0000061c: 04 DW_LNS_set_file (2)
+0x0000061e: 06 DW_LNS_negate_stmt
+0x0000061f: 0a DW_LNS_set_prologue_end
+0x00000620: 00 DW_LNE_end_sequence
+ 0x000000000000022d 45 10 2 0 0 end_sequence
+
+0x00000623: 00 DW_LNE_set_address (0x000000000000022f)
+0x0000062a: 03 DW_LNS_advance_line (45)
+0x0000062c: 05 DW_LNS_set_column (23)
+0x0000062e: 04 DW_LNS_set_file (2)
+0x00000630: 06 DW_LNS_negate_stmt
+0x00000631: 0a DW_LNS_set_prologue_end
+0x00000632: 00 DW_LNE_end_sequence
+ 0x000000000000022f 45 23 2 0 0 end_sequence
+
+0x00000635: 00 DW_LNE_set_address (0x0000000000000234)
+0x0000063c: 03 DW_LNS_advance_line (44)
+0x0000063e: 05 DW_LNS_set_column (16)
+0x00000640: 04 DW_LNS_set_file (2)
+0x00000642: 0a DW_LNS_set_prologue_end
+0x00000643: 00 DW_LNE_end_sequence
+ 0x0000000000000234 44 16 2 0 0 is_stmt end_sequence
+
+0x00000646: 00 DW_LNE_set_address (0x0000000000000245)
+0x0000064d: 03 DW_LNS_advance_line (46)
+0x0000064f: 05 DW_LNS_set_column (11)
+0x00000651: 04 DW_LNS_set_file (2)
+0x00000653: 0a DW_LNS_set_prologue_end
+0x00000654: 00 DW_LNE_end_sequence
+ 0x0000000000000245 46 11 2 0 0 is_stmt end_sequence
+
+0x00000657: 00 DW_LNE_set_address (0x0000000000000251)
+0x0000065e: 03 DW_LNS_advance_line (46)
+0x00000660: 05 DW_LNS_set_column (28)
+0x00000662: 04 DW_LNS_set_file (2)
+0x00000664: 06 DW_LNS_negate_stmt
+0x00000665: 0a DW_LNS_set_prologue_end
+0x00000666: 00 DW_LNE_end_sequence
+ 0x0000000000000251 46 28 2 0 0 end_sequence
+
+0x00000669: 00 DW_LNE_set_address (0x0000000000000256)
+0x00000670: 03 DW_LNS_advance_line (46)
+0x00000672: 05 DW_LNS_set_column (41)
+0x00000674: 04 DW_LNS_set_file (2)
+0x00000676: 06 DW_LNS_negate_stmt
+0x00000677: 0a DW_LNS_set_prologue_end
+0x00000678: 00 DW_LNE_end_sequence
+ 0x0000000000000256 46 41 2 0 0 end_sequence
+
+0x0000067b: 00 DW_LNE_set_address (0x000000000000025b)
+0x00000682: 03 DW_LNS_advance_line (50)
+0x00000684: 05 DW_LNS_set_column (14)
+0x00000686: 04 DW_LNS_set_file (2)
+0x00000688: 0a DW_LNS_set_prologue_end
+0x00000689: 00 DW_LNE_end_sequence
+ 0x000000000000025b 50 14 2 0 0 is_stmt end_sequence
+
+0x0000068c: 00 DW_LNE_set_address (0x000000000000026e)
+0x00000693: 03 DW_LNS_advance_line (52)
+0x00000695: 05 DW_LNS_set_column (38)
+0x00000697: 04 DW_LNS_set_file (2)
+0x00000699: 0a DW_LNS_set_prologue_end
+0x0000069a: 00 DW_LNE_end_sequence
+ 0x000000000000026e 52 38 2 0 0 is_stmt end_sequence
+
+0x0000069d: 00 DW_LNE_set_address (0x0000000000000282)
+0x000006a4: 03 DW_LNS_advance_line (53)
+0x000006a6: 05 DW_LNS_set_column (22)
+0x000006a8: 04 DW_LNS_set_file (2)
+0x000006aa: 0a DW_LNS_set_prologue_end
+0x000006ab: 00 DW_LNE_end_sequence
+ 0x0000000000000282 53 22 2 0 0 is_stmt end_sequence
+
+0x000006ae: 00 DW_LNE_set_address (0x0000000000000291)
+0x000006b5: 03 DW_LNS_advance_line (54)
+0x000006b7: 05 DW_LNS_set_column (24)
+0x000006b9: 04 DW_LNS_set_file (2)
+0x000006bb: 0a DW_LNS_set_prologue_end
+0x000006bc: 00 DW_LNE_end_sequence
+ 0x0000000000000291 54 24 2 0 0 is_stmt end_sequence
+
+0x000006bf: 00 DW_LNE_set_address (0x0000000000000293)
+0x000006c6: 03 DW_LNS_advance_line (54)
+0x000006c8: 05 DW_LNS_set_column (26)
+0x000006ca: 04 DW_LNS_set_file (2)
+0x000006cc: 06 DW_LNS_negate_stmt
+0x000006cd: 0a DW_LNS_set_prologue_end
+0x000006ce: 00 DW_LNE_end_sequence
+ 0x0000000000000293 54 26 2 0 0 end_sequence
+
+0x000006d1: 00 DW_LNE_set_address (0x00000000000002a0)
+0x000006d8: 03 DW_LNS_advance_line (54)
+0x000006da: 05 DW_LNS_set_column (24)
+0x000006dc: 04 DW_LNS_set_file (2)
+0x000006de: 06 DW_LNS_negate_stmt
+0x000006df: 0a DW_LNS_set_prologue_end
+0x000006e0: 00 DW_LNE_end_sequence
+ 0x00000000000002a0 54 24 2 0 0 end_sequence
+
+0x000006e3: 00 DW_LNE_set_address (0x00000000000002a3)
+0x000006ea: 03 DW_LNS_advance_line (55)
+0x000006ec: 05 DW_LNS_set_column (24)
+0x000006ee: 04 DW_LNS_set_file (2)
+0x000006f0: 0a DW_LNS_set_prologue_end
+0x000006f1: 00 DW_LNE_end_sequence
+ 0x00000000000002a3 55 24 2 0 0 is_stmt end_sequence
+
+0x000006f4: 00 DW_LNE_set_address (0x00000000000002aa)
+0x000006fb: 03 DW_LNS_advance_line (52)
+0x000006fd: 05 DW_LNS_set_column (44)
+0x000006ff: 04 DW_LNS_set_file (2)
+0x00000701: 0a DW_LNS_set_prologue_end
+0x00000702: 00 DW_LNE_end_sequence
+ 0x00000000000002aa 52 44 2 0 0 is_stmt end_sequence
+
+0x00000705: 00 DW_LNE_set_address (0x00000000000002b6)
+0x0000070c: 03 DW_LNS_advance_line (52)
+0x0000070e: 05 DW_LNS_set_column (38)
+0x00000710: 04 DW_LNS_set_file (2)
+0x00000712: 06 DW_LNS_negate_stmt
+0x00000713: 0a DW_LNS_set_prologue_end
+0x00000714: 00 DW_LNE_end_sequence
+ 0x00000000000002b6 52 38 2 0 0 end_sequence
+
+0x00000717: 00 DW_LNE_set_address (0x00000000000002bd)
+0x0000071e: 03 DW_LNS_advance_line (58)
+0x00000720: 05 DW_LNS_set_column (19)
+0x00000722: 04 DW_LNS_set_file (2)
+0x00000724: 0a DW_LNS_set_prologue_end
+0x00000725: 00 DW_LNE_end_sequence
+ 0x00000000000002bd 58 19 2 0 0 is_stmt end_sequence
+
+0x00000728: 00 DW_LNE_set_address (0x00000000000002cc)
+0x0000072f: 03 DW_LNS_advance_line (59)
+0x00000731: 05 DW_LNS_set_column (21)
+0x00000733: 04 DW_LNS_set_file (2)
+0x00000735: 0a DW_LNS_set_prologue_end
+0x00000736: 00 DW_LNE_end_sequence
+ 0x00000000000002cc 59 21 2 0 0 is_stmt end_sequence
+
+0x00000739: 00 DW_LNE_set_address (0x00000000000002d3)
+0x00000740: 03 DW_LNS_advance_line (57)
+0x00000742: 05 DW_LNS_set_column (18)
+0x00000744: 04 DW_LNS_set_file (2)
+0x00000746: 0a DW_LNS_set_prologue_end
+0x00000747: 00 DW_LNE_end_sequence
+ 0x00000000000002d3 57 18 2 0 0 is_stmt end_sequence
+
+0x0000074a: 00 DW_LNE_set_address (0x00000000000002e3)
+0x00000751: 03 DW_LNS_advance_line (62)
+0x00000753: 05 DW_LNS_set_column (14)
+0x00000755: 04 DW_LNS_set_file (2)
+0x00000757: 0a DW_LNS_set_prologue_end
+0x00000758: 00 DW_LNE_end_sequence
+ 0x00000000000002e3 62 14 2 0 0 is_stmt end_sequence
+
+0x0000075b: 00 DW_LNE_set_address (0x00000000000002e7)
+0x00000762: 03 DW_LNS_advance_line (62)
+0x00000764: 05 DW_LNS_set_column (23)
+0x00000766: 04 DW_LNS_set_file (2)
+0x00000768: 06 DW_LNS_negate_stmt
+0x00000769: 0a DW_LNS_set_prologue_end
+0x0000076a: 00 DW_LNE_end_sequence
+ 0x00000000000002e7 62 23 2 0 0 end_sequence
+
+0x0000076d: 00 DW_LNE_set_address (0x00000000000002ec)
+0x00000774: 03 DW_LNS_advance_line (62)
+0x00000776: 05 DW_LNS_set_column (14)
+0x00000778: 04 DW_LNS_set_file (2)
+0x0000077a: 06 DW_LNS_negate_stmt
+0x0000077b: 0a DW_LNS_set_prologue_end
+0x0000077c: 00 DW_LNE_end_sequence
+ 0x00000000000002ec 62 14 2 0 0 end_sequence
+
+0x0000077f: 00 DW_LNE_set_address (0x00000000000002f0)
+0x00000786: 03 DW_LNS_advance_line (66)
+0x00000789: 05 DW_LNS_set_column (16)
+0x0000078b: 04 DW_LNS_set_file (2)
+0x0000078d: 0a DW_LNS_set_prologue_end
+0x0000078e: 00 DW_LNE_end_sequence
+ 0x00000000000002f0 66 16 2 0 0 is_stmt end_sequence
+
+0x00000791: 00 DW_LNE_set_address (0x00000000000002ff)
+0x00000798: 03 DW_LNS_advance_line (75)
+0x0000079b: 05 DW_LNS_set_column (27)
+0x0000079d: 04 DW_LNS_set_file (2)
+0x0000079f: 0a DW_LNS_set_prologue_end
+0x000007a0: 00 DW_LNE_end_sequence
+ 0x00000000000002ff 75 27 2 0 0 is_stmt end_sequence
+
+0x000007a3: 00 DW_LNE_set_address (0x0000000000000308)
+0x000007aa: 03 DW_LNS_advance_line (76)
+0x000007ad: 05 DW_LNS_set_column (16)
+0x000007af: 04 DW_LNS_set_file (2)
+0x000007b1: 0a DW_LNS_set_prologue_end
+0x000007b2: 00 DW_LNE_end_sequence
+ 0x0000000000000308 76 16 2 0 0 is_stmt end_sequence
+
+0x000007b5: 00 DW_LNE_set_address (0x0000000000000310)
+0x000007bc: 03 DW_LNS_advance_line (76)
+0x000007bf: 05 DW_LNS_set_column (27)
+0x000007c1: 04 DW_LNS_set_file (2)
+0x000007c3: 06 DW_LNS_negate_stmt
+0x000007c4: 0a DW_LNS_set_prologue_end
+0x000007c5: 00 DW_LNE_end_sequence
+ 0x0000000000000310 76 27 2 0 0 end_sequence
+
+0x000007c8: 00 DW_LNE_set_address (0x0000000000000312)
+0x000007cf: 03 DW_LNS_advance_line (76)
+0x000007d2: 05 DW_LNS_set_column (35)
+0x000007d4: 04 DW_LNS_set_file (2)
+0x000007d6: 06 DW_LNS_negate_stmt
+0x000007d7: 0a DW_LNS_set_prologue_end
+0x000007d8: 00 DW_LNE_end_sequence
+ 0x0000000000000312 76 35 2 0 0 end_sequence
+
+0x000007db: 00 DW_LNE_set_address (0x000000000000031b)
+0x000007e2: 03 DW_LNS_advance_line (76)
+0x000007e5: 05 DW_LNS_set_column (27)
+0x000007e7: 04 DW_LNS_set_file (2)
+0x000007e9: 06 DW_LNS_negate_stmt
+0x000007ea: 0a DW_LNS_set_prologue_end
+0x000007eb: 00 DW_LNE_end_sequence
+ 0x000000000000031b 76 27 2 0 0 end_sequence
+
+0x000007ee: 00 DW_LNE_set_address (0x0000000000000320)
+0x000007f5: 03 DW_LNS_advance_line (76)
+0x000007f8: 05 DW_LNS_set_column (25)
+0x000007fa: 04 DW_LNS_set_file (2)
+0x000007fc: 06 DW_LNS_negate_stmt
+0x000007fd: 0a DW_LNS_set_prologue_end
+0x000007fe: 00 DW_LNE_end_sequence
+ 0x0000000000000320 76 25 2 0 0 end_sequence
+
+0x00000801: 00 DW_LNE_set_address (0x0000000000000323)
+0x00000808: 03 DW_LNS_advance_line (75)
+0x0000080b: 05 DW_LNS_set_column (27)
+0x0000080d: 04 DW_LNS_set_file (2)
+0x0000080f: 0a DW_LNS_set_prologue_end
+0x00000810: 00 DW_LNE_end_sequence
+ 0x0000000000000323 75 27 2 0 0 is_stmt end_sequence
+
+0x00000813: 00 DW_LNE_set_address (0x0000000000000330)
+0x0000081a: 03 DW_LNS_advance_line (77)
+0x0000081d: 05 DW_LNS_set_column (13)
+0x0000081f: 04 DW_LNS_set_file (2)
+0x00000821: 0a DW_LNS_set_prologue_end
+0x00000822: 00 DW_LNE_end_sequence
+ 0x0000000000000330 77 13 2 0 0 is_stmt end_sequence
+
+0x00000825: 00 DW_LNE_set_address (0x0000000000000338)
+0x0000082c: 03 DW_LNS_advance_line (77)
+0x0000082f: 05 DW_LNS_set_column (22)
+0x00000831: 04 DW_LNS_set_file (2)
+0x00000833: 06 DW_LNS_negate_stmt
+0x00000834: 0a DW_LNS_set_prologue_end
+0x00000835: 00 DW_LNE_end_sequence
+ 0x0000000000000338 77 22 2 0 0 end_sequence
+
+0x00000838: 00 DW_LNE_set_address (0x000000000000033d)
+0x0000083f: 03 DW_LNS_advance_line (79)
+0x00000842: 05 DW_LNS_set_column (16)
+0x00000844: 04 DW_LNS_set_file (2)
+0x00000846: 0a DW_LNS_set_prologue_end
+0x00000847: 00 DW_LNE_end_sequence
+ 0x000000000000033d 79 16 2 0 0 is_stmt end_sequence
+
+0x0000084a: 00 DW_LNE_set_address (0x0000000000000345)
+0x00000851: 03 DW_LNS_advance_line (79)
+0x00000854: 05 DW_LNS_set_column (14)
+0x00000856: 04 DW_LNS_set_file (2)
+0x00000858: 06 DW_LNS_negate_stmt
+0x00000859: 0a DW_LNS_set_prologue_end
+0x0000085a: 00 DW_LNE_end_sequence
+ 0x0000000000000345 79 14 2 0 0 end_sequence
+
+0x0000085d: 00 DW_LNE_set_address (0x0000000000000354)
+0x00000864: 03 DW_LNS_advance_line (79)
+0x00000867: 05 DW_LNS_set_column (25)
+0x00000869: 04 DW_LNS_set_file (2)
+0x0000086b: 06 DW_LNS_negate_stmt
+0x0000086c: 0a DW_LNS_set_prologue_end
+0x0000086d: 00 DW_LNE_end_sequence
+ 0x0000000000000354 79 25 2 0 0 end_sequence
+
+0x00000870: 00 DW_LNE_set_address (0x000000000000035b)
+0x00000877: 03 DW_LNS_advance_line (81)
+0x0000087a: 05 DW_LNS_set_column (11)
+0x0000087c: 04 DW_LNS_set_file (2)
+0x0000087e: 0a DW_LNS_set_prologue_end
+0x0000087f: 00 DW_LNE_end_sequence
+ 0x000000000000035b 81 11 2 0 0 is_stmt end_sequence
+
+0x00000882: 00 DW_LNE_set_address (0x0000000000000360)
+0x00000889: 03 DW_LNS_advance_line (66)
+0x0000088c: 05 DW_LNS_set_column (16)
+0x0000088e: 04 DW_LNS_set_file (2)
+0x00000890: 0a DW_LNS_set_prologue_end
+0x00000891: 00 DW_LNE_end_sequence
+ 0x0000000000000360 66 16 2 0 0 is_stmt end_sequence
+
+0x00000894: 00 DW_LNE_set_address (0x0000000000000367)
+0x0000089b: 03 DW_LNS_advance_line (74)
+0x0000089e: 05 DW_LNS_set_column (22)
+0x000008a0: 04 DW_LNS_set_file (2)
+0x000008a2: 0a DW_LNS_set_prologue_end
+0x000008a3: 00 DW_LNE_end_sequence
+ 0x0000000000000367 74 22 2 0 0 is_stmt end_sequence
+
+0x000008a6: 00 DW_LNE_set_address (0x0000000000000377)
+0x000008ad: 03 DW_LNS_advance_line (67)
+0x000008b0: 05 DW_LNS_set_column (13)
+0x000008b2: 04 DW_LNS_set_file (2)
+0x000008b4: 0a DW_LNS_set_prologue_end
+0x000008b5: 00 DW_LNE_end_sequence
+ 0x0000000000000377 67 13 2 0 0 is_stmt end_sequence
+
+0x000008b8: 00 DW_LNE_set_address (0x000000000000037b)
+0x000008bf: 03 DW_LNS_advance_line (68)
+0x000008c2: 05 DW_LNS_set_column (13)
+0x000008c4: 04 DW_LNS_set_file (2)
+0x000008c6: 0a DW_LNS_set_prologue_end
+0x000008c7: 00 DW_LNE_end_sequence
+ 0x000000000000037b 68 13 2 0 0 is_stmt end_sequence
+
+0x000008ca: 00 DW_LNE_set_address (0x000000000000037f)
+0x000008d1: 03 DW_LNS_advance_line (69)
+0x000008d4: 05 DW_LNS_set_column (13)
+0x000008d6: 04 DW_LNS_set_file (2)
+0x000008d8: 0a DW_LNS_set_prologue_end
+0x000008d9: 00 DW_LNE_end_sequence
+ 0x000000000000037f 69 13 2 0 0 is_stmt end_sequence
+
+0x000008dc: 00 DW_LNE_set_address (0x0000000000000383)
+0x000008e3: 03 DW_LNS_advance_line (70)
+0x000008e6: 05 DW_LNS_set_column (13)
+0x000008e8: 04 DW_LNS_set_file (2)
+0x000008ea: 0a DW_LNS_set_prologue_end
+0x000008eb: 00 DW_LNE_end_sequence
+ 0x0000000000000383 70 13 2 0 0 is_stmt end_sequence
+
+0x000008ee: 00 DW_LNE_set_address (0x000000000000039a)
+0x000008f5: 03 DW_LNS_advance_line (153)
+0x000008f8: 05 DW_LNS_set_column (17)
+0x000008fa: 04 DW_LNS_set_file (2)
+0x000008fc: 0a DW_LNS_set_prologue_end
+0x000008fd: 00 DW_LNE_end_sequence
+ 0x000000000000039a 153 17 2 0 0 is_stmt end_sequence
+
+0x00000900: 00 DW_LNE_set_address (0x000000000000039f)
+0x00000907: 03 DW_LNS_advance_line (153)
+0x0000090a: 05 DW_LNS_set_column (12)
+0x0000090c: 04 DW_LNS_set_file (2)
+0x0000090e: 06 DW_LNS_negate_stmt
+0x0000090f: 0a DW_LNS_set_prologue_end
+0x00000910: 00 DW_LNE_end_sequence
+ 0x000000000000039f 153 12 2 0 0 end_sequence
+
+0x00000913: 00 DW_LNE_set_address (0x00000000000003a5)
+0x0000091a: 03 DW_LNS_advance_line (153)
+0x0000091d: 05 DW_LNS_set_column (28)
+0x0000091f: 04 DW_LNS_set_file (2)
+0x00000921: 06 DW_LNS_negate_stmt
+0x00000922: 0a DW_LNS_set_prologue_end
+0x00000923: 00 DW_LNE_end_sequence
+ 0x00000000000003a5 153 28 2 0 0 end_sequence
+
+0x00000926: 00 DW_LNE_set_address (0x00000000000003aa)
+0x0000092d: 03 DW_LNS_advance_line (153)
+0x00000930: 05 DW_LNS_set_column (23)
+0x00000932: 04 DW_LNS_set_file (2)
+0x00000934: 06 DW_LNS_negate_stmt
+0x00000935: 0a DW_LNS_set_prologue_end
+0x00000936: 00 DW_LNE_end_sequence
+ 0x00000000000003aa 153 23 2 0 0 end_sequence
+
+0x00000939: 00 DW_LNE_set_address (0x00000000000003b0)
+0x00000940: 03 DW_LNS_advance_line (155)
+0x00000943: 05 DW_LNS_set_column (10)
+0x00000945: 04 DW_LNS_set_file (2)
+0x00000947: 0a DW_LNS_set_prologue_end
+0x00000948: 00 DW_LNE_end_sequence
+ 0x00000000000003b0 155 10 2 0 0 is_stmt end_sequence
+
+0x0000094b: 00 DW_LNE_set_address (0x00000000000003b1)
+0x00000952: 03 DW_LNS_advance_line (155)
+0x00000955: 05 DW_LNS_set_column (8)
+0x00000957: 04 DW_LNS_set_file (2)
+0x00000959: 06 DW_LNS_negate_stmt
+0x0000095a: 0a DW_LNS_set_prologue_end
+0x0000095b: 00 DW_LNE_end_sequence
+ 0x00000000000003b1 155 8 2 0 0 end_sequence
+
+0x0000095e: 00 DW_LNE_set_address (0x00000000000003b4)
+0x00000965: 03 DW_LNS_advance_line (156)
+0x00000968: 05 DW_LNS_set_column (7)
+0x0000096a: 04 DW_LNS_set_file (2)
+0x0000096c: 0a DW_LNS_set_prologue_end
+0x0000096d: 00 DW_LNE_end_sequence
+ 0x00000000000003b4 156 7 2 0 0 is_stmt end_sequence
+
+0x00000970: 00 DW_LNE_set_address (0x00000000000003c3)
+0x00000977: 03 DW_LNS_advance_line (94)
+0x0000097a: 05 DW_LNS_set_column (18)
+0x0000097c: 04 DW_LNS_set_file (2)
+0x0000097e: 0a DW_LNS_set_prologue_end
+0x0000097f: 00 DW_LNE_end_sequence
+ 0x00000000000003c3 94 18 2 0 0 is_stmt end_sequence
+
+0x00000982: 00 DW_LNE_set_address (0x00000000000003c8)
+0x00000989: 03 DW_LNS_advance_line (94)
+0x0000098c: 05 DW_LNS_set_column (4)
+0x0000098e: 04 DW_LNS_set_file (2)
+0x00000990: 06 DW_LNS_negate_stmt
+0x00000991: 0a DW_LNS_set_prologue_end
+0x00000992: 00 DW_LNE_end_sequence
+ 0x00000000000003c8 94 4 2 0 0 end_sequence
+
+0x00000995: 00 DW_LNE_set_address (0x00000000000003dd)
+0x0000099c: 03 DW_LNS_advance_line (95)
+0x0000099f: 05 DW_LNS_set_column (29)
+0x000009a1: 04 DW_LNS_set_file (2)
+0x000009a3: 0a DW_LNS_set_prologue_end
+0x000009a4: 00 DW_LNE_end_sequence
+ 0x00000000000003dd 95 29 2 0 0 is_stmt end_sequence
+
+0x000009a7: 00 DW_LNE_set_address (0x00000000000003df)
+0x000009ae: 03 DW_LNS_advance_line (98)
+0x000009b1: 05 DW_LNS_set_column (19)
+0x000009b3: 04 DW_LNS_set_file (2)
+0x000009b5: 0a DW_LNS_set_prologue_end
+0x000009b6: 00 DW_LNE_end_sequence
+ 0x00000000000003df 98 19 2 0 0 is_stmt end_sequence
+
+0x000009b9: 00 DW_LNE_set_address (0x00000000000003e6)
+0x000009c0: 03 DW_LNS_advance_line (97)
+0x000009c3: 05 DW_LNS_set_column (16)
+0x000009c5: 04 DW_LNS_set_file (2)
+0x000009c7: 0a DW_LNS_set_prologue_end
+0x000009c8: 00 DW_LNE_end_sequence
+ 0x00000000000003e6 97 16 2 0 0 is_stmt end_sequence
+
+0x000009cb: 00 DW_LNE_set_address (0x00000000000003ed)
+0x000009d2: 03 DW_LNS_advance_line (96)
+0x000009d5: 05 DW_LNS_set_column (16)
+0x000009d7: 04 DW_LNS_set_file (2)
+0x000009d9: 0a DW_LNS_set_prologue_end
+0x000009da: 00 DW_LNE_end_sequence
+ 0x00000000000003ed 96 16 2 0 0 is_stmt end_sequence
+
+0x000009dd: 00 DW_LNE_set_address (0x00000000000003f8)
+0x000009e4: 03 DW_LNS_advance_line (94)
+0x000009e7: 05 DW_LNS_set_column (28)
+0x000009e9: 04 DW_LNS_set_file (2)
+0x000009eb: 0a DW_LNS_set_prologue_end
+0x000009ec: 00 DW_LNE_end_sequence
+ 0x00000000000003f8 94 28 2 0 0 is_stmt end_sequence
+
+0x000009ef: 00 DW_LNE_set_address (0x00000000000003fd)
+0x000009f6: 03 DW_LNS_advance_line (94)
+0x000009f9: 05 DW_LNS_set_column (18)
+0x000009fb: 04 DW_LNS_set_file (2)
+0x000009fd: 06 DW_LNS_negate_stmt
+0x000009fe: 0a DW_LNS_set_prologue_end
+0x000009ff: 00 DW_LNE_end_sequence
+ 0x00000000000003fd 94 18 2 0 0 end_sequence
+
+0x00000a02: 00 DW_LNE_set_address (0x0000000000000402)
+0x00000a09: 03 DW_LNS_advance_line (94)
+0x00000a0c: 05 DW_LNS_set_column (4)
+0x00000a0e: 04 DW_LNS_set_file (2)
+0x00000a10: 06 DW_LNS_negate_stmt
+0x00000a11: 0a DW_LNS_set_prologue_end
+0x00000a12: 00 DW_LNE_end_sequence
+ 0x0000000000000402 94 4 2 0 0 end_sequence
+
+0x00000a15: 00 DW_LNE_set_address (0x000000000000040a)
+0x00000a1c: 03 DW_LNS_advance_line (102)
+0x00000a1f: 05 DW_LNS_set_column (27)
+0x00000a21: 04 DW_LNS_set_file (2)
+0x00000a23: 0a DW_LNS_set_prologue_end
+0x00000a24: 00 DW_LNE_end_sequence
+ 0x000000000000040a 102 27 2 0 0 is_stmt end_sequence
+
+0x00000a27: 00 DW_LNE_set_address (0x000000000000040f)
+0x00000a2e: 03 DW_LNS_advance_line (102)
+0x00000a31: 05 DW_LNS_set_column (18)
+0x00000a33: 04 DW_LNS_set_file (2)
+0x00000a35: 06 DW_LNS_negate_stmt
+0x00000a36: 0a DW_LNS_set_prologue_end
+0x00000a37: 00 DW_LNE_end_sequence
+ 0x000000000000040f 102 18 2 0 0 end_sequence
+
+0x00000a3a: 00 DW_LNE_set_address (0x0000000000000415)
+0x00000a41: 03 DW_LNS_advance_line (103)
+0x00000a44: 05 DW_LNS_set_column (18)
+0x00000a46: 04 DW_LNS_set_file (2)
+0x00000a48: 0a DW_LNS_set_prologue_end
+0x00000a49: 00 DW_LNE_end_sequence
+ 0x0000000000000415 103 18 2 0 0 is_stmt end_sequence
+
+0x00000a4c: 00 DW_LNE_set_address (0x0000000000000423)
+0x00000a53: 03 DW_LNS_advance_line (105)
+0x00000a56: 05 DW_LNS_set_column (18)
+0x00000a58: 04 DW_LNS_set_file (2)
+0x00000a5a: 0a DW_LNS_set_prologue_end
+0x00000a5b: 00 DW_LNE_end_sequence
+ 0x0000000000000423 105 18 2 0 0 is_stmt end_sequence
+
+0x00000a5e: 00 DW_LNE_set_address (0x0000000000000428)
+0x00000a65: 03 DW_LNS_advance_line (105)
+0x00000a68: 05 DW_LNS_set_column (4)
+0x00000a6a: 04 DW_LNS_set_file (2)
+0x00000a6c: 06 DW_LNS_negate_stmt
+0x00000a6d: 0a DW_LNS_set_prologue_end
+0x00000a6e: 00 DW_LNE_end_sequence
+ 0x0000000000000428 105 4 2 0 0 end_sequence
+
+0x00000a71: 00 DW_LNE_set_address (0x000000000000042c)
+0x00000a78: 03 DW_LNS_advance_line (106)
+0x00000a7b: 05 DW_LNS_set_column (7)
+0x00000a7d: 04 DW_LNS_set_file (2)
+0x00000a7f: 0a DW_LNS_set_prologue_end
+0x00000a80: 00 DW_LNE_end_sequence
+ 0x000000000000042c 106 7 2 0 0 is_stmt end_sequence
+
+0x00000a83: 00 DW_LNE_set_address (0x0000000000000434)
+0x00000a8a: 03 DW_LNS_advance_line (106)
+0x00000a8d: 05 DW_LNS_set_column (16)
+0x00000a8f: 04 DW_LNS_set_file (2)
+0x00000a91: 06 DW_LNS_negate_stmt
+0x00000a92: 0a DW_LNS_set_prologue_end
+0x00000a93: 00 DW_LNE_end_sequence
+ 0x0000000000000434 106 16 2 0 0 end_sequence
+
+0x00000a96: 00 DW_LNE_set_address (0x0000000000000439)
+0x00000a9d: 03 DW_LNS_advance_line (105)
+0x00000aa0: 05 DW_LNS_set_column (24)
+0x00000aa2: 04 DW_LNS_set_file (2)
+0x00000aa4: 0a DW_LNS_set_prologue_end
+0x00000aa5: 00 DW_LNE_end_sequence
+ 0x0000000000000439 105 24 2 0 0 is_stmt end_sequence
+
+0x00000aa8: 00 DW_LNE_set_address (0x000000000000043e)
+0x00000aaf: 03 DW_LNS_advance_line (105)
+0x00000ab2: 05 DW_LNS_set_column (18)
+0x00000ab4: 04 DW_LNS_set_file (2)
+0x00000ab6: 06 DW_LNS_negate_stmt
+0x00000ab7: 0a DW_LNS_set_prologue_end
+0x00000ab8: 00 DW_LNE_end_sequence
+ 0x000000000000043e 105 18 2 0 0 end_sequence
+
+0x00000abb: 00 DW_LNE_set_address (0x0000000000000464)
+0x00000ac2: 03 DW_LNS_advance_line (112)
+0x00000ac5: 05 DW_LNS_set_column (13)
+0x00000ac7: 04 DW_LNS_set_file (2)
+0x00000ac9: 0a DW_LNS_set_prologue_end
+0x00000aca: 00 DW_LNE_end_sequence
+ 0x0000000000000464 112 13 2 0 0 is_stmt end_sequence
+
+0x00000acd: 00 DW_LNE_set_address (0x0000000000000466)
+0x00000ad4: 03 DW_LNS_advance_line (112)
+0x00000ad7: 05 DW_LNS_set_column (26)
+0x00000ad9: 04 DW_LNS_set_file (2)
+0x00000adb: 06 DW_LNS_negate_stmt
+0x00000adc: 0a DW_LNS_set_prologue_end
+0x00000add: 00 DW_LNE_end_sequence
+ 0x0000000000000466 112 26 2 0 0 end_sequence
+
+0x00000ae0: 00 DW_LNE_set_address (0x0000000000000473)
+0x00000ae7: 03 DW_LNS_advance_line (112)
+0x00000aea: 05 DW_LNS_set_column (35)
+0x00000aec: 04 DW_LNS_set_file (2)
+0x00000aee: 06 DW_LNS_negate_stmt
+0x00000aef: 0a DW_LNS_set_prologue_end
+0x00000af0: 00 DW_LNE_end_sequence
+ 0x0000000000000473 112 35 2 0 0 end_sequence
+
+0x00000af3: 00 DW_LNE_set_address (0x0000000000000474)
+0x00000afa: 03 DW_LNS_advance_line (112)
+0x00000afd: 05 DW_LNS_set_column (13)
+0x00000aff: 04 DW_LNS_set_file (2)
+0x00000b01: 06 DW_LNS_negate_stmt
+0x00000b02: 0a DW_LNS_set_prologue_end
+0x00000b03: 00 DW_LNE_end_sequence
+ 0x0000000000000474 112 13 2 0 0 end_sequence
+
+0x00000b06: 00 DW_LNE_set_address (0x0000000000000482)
+0x00000b0d: 03 DW_LNS_advance_line (111)
+0x00000b10: 05 DW_LNS_set_column (30)
+0x00000b12: 04 DW_LNS_set_file (2)
+0x00000b14: 0a DW_LNS_set_prologue_end
+0x00000b15: 00 DW_LNE_end_sequence
+ 0x0000000000000482 111 30 2 0 0 is_stmt end_sequence
+
+0x00000b18: 00 DW_LNE_set_address (0x0000000000000487)
+0x00000b1f: 03 DW_LNS_advance_line (111)
+0x00000b22: 05 DW_LNS_set_column (24)
+0x00000b24: 04 DW_LNS_set_file (2)
+0x00000b26: 06 DW_LNS_negate_stmt
+0x00000b27: 0a DW_LNS_set_prologue_end
+0x00000b28: 00 DW_LNE_end_sequence
+ 0x0000000000000487 111 24 2 0 0 end_sequence
+
+0x00000b2b: 00 DW_LNE_set_address (0x000000000000048c)
+0x00000b32: 03 DW_LNS_advance_line (111)
+0x00000b35: 05 DW_LNS_set_column (10)
+0x00000b37: 04 DW_LNS_set_file (2)
+0x00000b39: 06 DW_LNS_negate_stmt
+0x00000b3a: 0a DW_LNS_set_prologue_end
+0x00000b3b: 00 DW_LNE_end_sequence
+ 0x000000000000048c 111 10 2 0 0 end_sequence
+
+0x00000b3e: 00 DW_LNE_set_address (0x0000000000000491)
+0x00000b45: 03 DW_LNS_advance_line (113)
+0x00000b48: 05 DW_LNS_set_column (10)
+0x00000b4a: 04 DW_LNS_set_file (2)
+0x00000b4c: 0a DW_LNS_set_prologue_end
+0x00000b4d: 00 DW_LNE_end_sequence
+ 0x0000000000000491 113 10 2 0 0 is_stmt end_sequence
+
+0x00000b50: 00 DW_LNE_set_address (0x0000000000000496)
+0x00000b57: 03 DW_LNS_advance_line (118)
+0x00000b5a: 05 DW_LNS_set_column (16)
+0x00000b5c: 04 DW_LNS_set_file (2)
+0x00000b5e: 0a DW_LNS_set_prologue_end
+0x00000b5f: 00 DW_LNE_end_sequence
+ 0x0000000000000496 118 16 2 0 0 is_stmt end_sequence
+
+0x00000b62: 00 DW_LNE_set_address (0x000000000000049b)
+0x00000b69: 03 DW_LNS_advance_line (118)
+0x00000b6c: 05 DW_LNS_set_column (7)
+0x00000b6e: 04 DW_LNS_set_file (2)
+0x00000b70: 06 DW_LNS_negate_stmt
+0x00000b71: 0a DW_LNS_set_prologue_end
+0x00000b72: 00 DW_LNE_end_sequence
+ 0x000000000000049b 118 7 2 0 0 end_sequence
+
+0x00000b75: 00 DW_LNE_set_address (0x000000000000049f)
+0x00000b7c: 03 DW_LNS_advance_line (119)
+0x00000b7f: 05 DW_LNS_set_column (10)
+0x00000b81: 04 DW_LNS_set_file (2)
+0x00000b83: 0a DW_LNS_set_prologue_end
+0x00000b84: 00 DW_LNE_end_sequence
+ 0x000000000000049f 119 10 2 0 0 is_stmt end_sequence
+
+0x00000b87: 00 DW_LNE_set_address (0x00000000000004a1)
+0x00000b8e: 03 DW_LNS_advance_line (119)
+0x00000b91: 05 DW_LNS_set_column (18)
+0x00000b93: 04 DW_LNS_set_file (2)
+0x00000b95: 06 DW_LNS_negate_stmt
+0x00000b96: 0a DW_LNS_set_prologue_end
+0x00000b97: 00 DW_LNE_end_sequence
+ 0x00000000000004a1 119 18 2 0 0 end_sequence
+
+0x00000b9a: 00 DW_LNE_set_address (0x00000000000004aa)
+0x00000ba1: 03 DW_LNS_advance_line (119)
+0x00000ba4: 05 DW_LNS_set_column (10)
+0x00000ba6: 04 DW_LNS_set_file (2)
+0x00000ba8: 06 DW_LNS_negate_stmt
+0x00000ba9: 0a DW_LNS_set_prologue_end
+0x00000baa: 00 DW_LNE_end_sequence
+ 0x00000000000004aa 119 10 2 0 0 end_sequence
+
+0x00000bad: 00 DW_LNE_set_address (0x00000000000004ac)
+0x00000bb4: 03 DW_LNS_advance_line (119)
+0x00000bb7: 05 DW_LNS_set_column (23)
+0x00000bb9: 04 DW_LNS_set_file (2)
+0x00000bbb: 06 DW_LNS_negate_stmt
+0x00000bbc: 0a DW_LNS_set_prologue_end
+0x00000bbd: 00 DW_LNE_end_sequence
+ 0x00000000000004ac 119 23 2 0 0 end_sequence
+
+0x00000bc0: 00 DW_LNE_set_address (0x00000000000004b1)
+0x00000bc7: 03 DW_LNS_advance_line (118)
+0x00000bca: 05 DW_LNS_set_column (16)
+0x00000bcc: 04 DW_LNS_set_file (2)
+0x00000bce: 0a DW_LNS_set_prologue_end
+0x00000bcf: 00 DW_LNE_end_sequence
+ 0x00000000000004b1 118 16 2 0 0 is_stmt end_sequence
+
+0x00000bd2: 00 DW_LNE_set_address (0x00000000000004bc)
+0x00000bd9: 03 DW_LNS_advance_line (118)
+0x00000bdc: 05 DW_LNS_set_column (7)
+0x00000bde: 04 DW_LNS_set_file (2)
+0x00000be0: 06 DW_LNS_negate_stmt
+0x00000be1: 0a DW_LNS_set_prologue_end
+0x00000be2: 00 DW_LNE_end_sequence
+ 0x00000000000004bc 118 7 2 0 0 end_sequence
+
+0x00000be5: 00 DW_LNE_set_address (0x00000000000004c2)
+0x00000bec: 03 DW_LNS_advance_line (122)
+0x00000bef: 05 DW_LNS_set_column (16)
+0x00000bf1: 04 DW_LNS_set_file (2)
+0x00000bf3: 0a DW_LNS_set_prologue_end
+0x00000bf4: 00 DW_LNE_end_sequence
+ 0x00000000000004c2 122 16 2 0 0 is_stmt end_sequence
+
+0x00000bf7: 00 DW_LNE_set_address (0x00000000000004d6)
+0x00000bfe: 03 DW_LNS_advance_line (125)
+0x00000c01: 05 DW_LNS_set_column (22)
+0x00000c03: 04 DW_LNS_set_file (2)
+0x00000c05: 0a DW_LNS_set_prologue_end
+0x00000c06: 00 DW_LNE_end_sequence
+ 0x00000000000004d6 125 22 2 0 0 is_stmt end_sequence
+
+0x00000c09: 00 DW_LNE_set_address (0x00000000000004df)
+0x00000c10: 03 DW_LNS_advance_line (126)
+0x00000c13: 05 DW_LNS_set_column (27)
+0x00000c15: 04 DW_LNS_set_file (2)
+0x00000c17: 0a DW_LNS_set_prologue_end
+0x00000c18: 00 DW_LNE_end_sequence
+ 0x00000000000004df 126 27 2 0 0 is_stmt end_sequence
+
+0x00000c1b: 00 DW_LNE_set_address (0x00000000000004e4)
+0x00000c22: 03 DW_LNS_advance_line (126)
+0x00000c25: 05 DW_LNS_set_column (13)
+0x00000c27: 04 DW_LNS_set_file (2)
+0x00000c29: 06 DW_LNS_negate_stmt
+0x00000c2a: 0a DW_LNS_set_prologue_end
+0x00000c2b: 00 DW_LNE_end_sequence
+ 0x00000000000004e4 126 13 2 0 0 end_sequence
+
+0x00000c2e: 00 DW_LNE_set_address (0x00000000000004e8)
+0x00000c35: 03 DW_LNS_advance_line (127)
+0x00000c38: 05 DW_LNS_set_column (16)
+0x00000c3a: 04 DW_LNS_set_file (2)
+0x00000c3c: 0a DW_LNS_set_prologue_end
+0x00000c3d: 00 DW_LNE_end_sequence
+ 0x00000000000004e8 127 16 2 0 0 is_stmt end_sequence
+
+0x00000c40: 00 DW_LNE_set_address (0x00000000000004f0)
+0x00000c47: 03 DW_LNS_advance_line (127)
+0x00000c4a: 05 DW_LNS_set_column (27)
+0x00000c4c: 04 DW_LNS_set_file (2)
+0x00000c4e: 06 DW_LNS_negate_stmt
+0x00000c4f: 0a DW_LNS_set_prologue_end
+0x00000c50: 00 DW_LNE_end_sequence
+ 0x00000000000004f0 127 27 2 0 0 end_sequence
+
+0x00000c53: 00 DW_LNE_set_address (0x00000000000004f2)
+0x00000c5a: 03 DW_LNS_advance_line (127)
+0x00000c5d: 05 DW_LNS_set_column (35)
+0x00000c5f: 04 DW_LNS_set_file (2)
+0x00000c61: 06 DW_LNS_negate_stmt
+0x00000c62: 0a DW_LNS_set_prologue_end
+0x00000c63: 00 DW_LNE_end_sequence
+ 0x00000000000004f2 127 35 2 0 0 end_sequence
+
+0x00000c66: 00 DW_LNE_set_address (0x00000000000004fb)
+0x00000c6d: 03 DW_LNS_advance_line (127)
+0x00000c70: 05 DW_LNS_set_column (27)
+0x00000c72: 04 DW_LNS_set_file (2)
+0x00000c74: 06 DW_LNS_negate_stmt
+0x00000c75: 0a DW_LNS_set_prologue_end
+0x00000c76: 00 DW_LNE_end_sequence
+ 0x00000000000004fb 127 27 2 0 0 end_sequence
+
+0x00000c79: 00 DW_LNE_set_address (0x0000000000000500)
+0x00000c80: 03 DW_LNS_advance_line (127)
+0x00000c83: 05 DW_LNS_set_column (25)
+0x00000c85: 04 DW_LNS_set_file (2)
+0x00000c87: 06 DW_LNS_negate_stmt
+0x00000c88: 0a DW_LNS_set_prologue_end
+0x00000c89: 00 DW_LNE_end_sequence
+ 0x0000000000000500 127 25 2 0 0 end_sequence
+
+0x00000c8c: 00 DW_LNE_set_address (0x0000000000000503)
+0x00000c93: 03 DW_LNS_advance_line (126)
+0x00000c96: 05 DW_LNS_set_column (27)
+0x00000c98: 04 DW_LNS_set_file (2)
+0x00000c9a: 0a DW_LNS_set_prologue_end
+0x00000c9b: 00 DW_LNE_end_sequence
+ 0x0000000000000503 126 27 2 0 0 is_stmt end_sequence
+
+0x00000c9e: 00 DW_LNE_set_address (0x0000000000000508)
+0x00000ca5: 03 DW_LNS_advance_line (126)
+0x00000ca8: 05 DW_LNS_set_column (13)
+0x00000caa: 04 DW_LNS_set_file (2)
+0x00000cac: 06 DW_LNS_negate_stmt
+0x00000cad: 0a DW_LNS_set_prologue_end
+0x00000cae: 00 DW_LNE_end_sequence
+ 0x0000000000000508 126 13 2 0 0 end_sequence
+
+0x00000cb1: 00 DW_LNE_set_address (0x0000000000000510)
+0x00000cb8: 03 DW_LNS_advance_line (128)
+0x00000cbb: 05 DW_LNS_set_column (13)
+0x00000cbd: 04 DW_LNS_set_file (2)
+0x00000cbf: 0a DW_LNS_set_prologue_end
+0x00000cc0: 00 DW_LNE_end_sequence
+ 0x0000000000000510 128 13 2 0 0 is_stmt end_sequence
+
+0x00000cc3: 00 DW_LNE_set_address (0x0000000000000518)
+0x00000cca: 03 DW_LNS_advance_line (128)
+0x00000ccd: 05 DW_LNS_set_column (22)
+0x00000ccf: 04 DW_LNS_set_file (2)
+0x00000cd1: 06 DW_LNS_negate_stmt
+0x00000cd2: 0a DW_LNS_set_prologue_end
+0x00000cd3: 00 DW_LNE_end_sequence
+ 0x0000000000000518 128 22 2 0 0 end_sequence
+
+0x00000cd6: 00 DW_LNE_set_address (0x000000000000051d)
+0x00000cdd: 03 DW_LNS_advance_line (130)
+0x00000ce0: 05 DW_LNS_set_column (16)
+0x00000ce2: 04 DW_LNS_set_file (2)
+0x00000ce4: 0a DW_LNS_set_prologue_end
+0x00000ce5: 00 DW_LNE_end_sequence
+ 0x000000000000051d 130 16 2 0 0 is_stmt end_sequence
+
+0x00000ce8: 00 DW_LNE_set_address (0x0000000000000525)
+0x00000cef: 03 DW_LNS_advance_line (130)
+0x00000cf2: 05 DW_LNS_set_column (14)
+0x00000cf4: 04 DW_LNS_set_file (2)
+0x00000cf6: 06 DW_LNS_negate_stmt
+0x00000cf7: 0a DW_LNS_set_prologue_end
+0x00000cf8: 00 DW_LNE_end_sequence
+ 0x0000000000000525 130 14 2 0 0 end_sequence
+
+0x00000cfb: 00 DW_LNE_set_address (0x0000000000000536)
+0x00000d02: 03 DW_LNS_advance_line (130)
+0x00000d05: 05 DW_LNS_set_column (25)
+0x00000d07: 04 DW_LNS_set_file (2)
+0x00000d09: 06 DW_LNS_negate_stmt
+0x00000d0a: 0a DW_LNS_set_prologue_end
+0x00000d0b: 00 DW_LNE_end_sequence
+ 0x0000000000000536 130 25 2 0 0 end_sequence
+
+0x00000d0e: 00 DW_LNE_set_address (0x000000000000053b)
+0x00000d15: 03 DW_LNS_advance_line (130)
+0x00000d18: 05 DW_LNS_set_column (14)
+0x00000d1a: 04 DW_LNS_set_file (2)
+0x00000d1c: 06 DW_LNS_negate_stmt
+0x00000d1d: 0a DW_LNS_set_prologue_end
+0x00000d1e: 00 DW_LNE_end_sequence
+ 0x000000000000053b 130 14 2 0 0 end_sequence
+
+0x00000d21: 00 DW_LNE_set_address (0x000000000000053d)
+0x00000d28: 03 DW_LNS_advance_line (133)
+0x00000d2b: 05 DW_LNS_set_column (11)
+0x00000d2d: 04 DW_LNS_set_file (2)
+0x00000d2f: 0a DW_LNS_set_prologue_end
+0x00000d30: 00 DW_LNE_end_sequence
+ 0x000000000000053d 133 11 2 0 0 is_stmt end_sequence
+
+0x00000d33: 00 DW_LNE_set_address (0x0000000000000542)
+0x00000d3a: 03 DW_LNS_advance_line (122)
+0x00000d3d: 05 DW_LNS_set_column (16)
+0x00000d3f: 04 DW_LNS_set_file (2)
+0x00000d41: 0a DW_LNS_set_prologue_end
+0x00000d42: 00 DW_LNE_end_sequence
+ 0x0000000000000542 122 16 2 0 0 is_stmt end_sequence
+
+0x00000d45: 00 DW_LNE_set_address (0x0000000000000547)
+0x00000d4c: 03 DW_LNS_advance_line (122)
+0x00000d4f: 05 DW_LNS_set_column (14)
+0x00000d51: 04 DW_LNS_set_file (2)
+0x00000d53: 06 DW_LNS_negate_stmt
+0x00000d54: 0a DW_LNS_set_prologue_end
+0x00000d55: 00 DW_LNE_end_sequence
+ 0x0000000000000547 122 14 2 0 0 end_sequence
+
+0x00000d58: 00 DW_LNE_set_address (0x000000000000054d)
+0x00000d5f: 03 DW_LNS_advance_line (110)
+0x00000d62: 05 DW_LNS_set_column (11)
+0x00000d64: 04 DW_LNS_set_file (2)
+0x00000d66: 0a DW_LNS_set_prologue_end
+0x00000d67: 00 DW_LNE_end_sequence
+ 0x000000000000054d 110 11 2 0 0 is_stmt end_sequence
+
+0x00000d6a: 00 DW_LNE_set_address (0x000000000000055c)
+0x00000d71: 03 DW_LNS_advance_line (113)
+0x00000d74: 05 DW_LNS_set_column (10)
+0x00000d76: 04 DW_LNS_set_file (2)
+0x00000d78: 0a DW_LNS_set_prologue_end
+0x00000d79: 00 DW_LNE_end_sequence
+ 0x000000000000055c 113 10 2 0 0 is_stmt end_sequence
+
+0x00000d7c: 00 DW_LNE_set_address (0x0000000000000561)
+0x00000d83: 03 DW_LNS_advance_line (118)
+0x00000d86: 05 DW_LNS_set_column (16)
+0x00000d88: 04 DW_LNS_set_file (2)
+0x00000d8a: 0a DW_LNS_set_prologue_end
+0x00000d8b: 00 DW_LNE_end_sequence
+ 0x0000000000000561 118 16 2 0 0 is_stmt end_sequence
+
+0x00000d8e: 00 DW_LNE_set_address (0x0000000000000566)
+0x00000d95: 03 DW_LNS_advance_line (118)
+0x00000d98: 05 DW_LNS_set_column (7)
+0x00000d9a: 04 DW_LNS_set_file (2)
+0x00000d9c: 06 DW_LNS_negate_stmt
+0x00000d9d: 0a DW_LNS_set_prologue_end
+0x00000d9e: 00 DW_LNE_end_sequence
+ 0x0000000000000566 118 7 2 0 0 end_sequence
+
+0x00000da1: 00 DW_LNE_set_address (0x000000000000056a)
+0x00000da8: 03 DW_LNS_advance_line (119)
+0x00000dab: 05 DW_LNS_set_column (10)
+0x00000dad: 04 DW_LNS_set_file (2)
+0x00000daf: 0a DW_LNS_set_prologue_end
+0x00000db0: 00 DW_LNE_end_sequence
+ 0x000000000000056a 119 10 2 0 0 is_stmt end_sequence
+
+0x00000db3: 00 DW_LNE_set_address (0x000000000000056c)
+0x00000dba: 03 DW_LNS_advance_line (119)
+0x00000dbd: 05 DW_LNS_set_column (18)
+0x00000dbf: 04 DW_LNS_set_file (2)
+0x00000dc1: 06 DW_LNS_negate_stmt
+0x00000dc2: 0a DW_LNS_set_prologue_end
+0x00000dc3: 00 DW_LNE_end_sequence
+ 0x000000000000056c 119 18 2 0 0 end_sequence
+
+0x00000dc6: 00 DW_LNE_set_address (0x0000000000000575)
+0x00000dcd: 03 DW_LNS_advance_line (119)
+0x00000dd0: 05 DW_LNS_set_column (10)
+0x00000dd2: 04 DW_LNS_set_file (2)
+0x00000dd4: 06 DW_LNS_negate_stmt
+0x00000dd5: 0a DW_LNS_set_prologue_end
+0x00000dd6: 00 DW_LNE_end_sequence
+ 0x0000000000000575 119 10 2 0 0 end_sequence
+
+0x00000dd9: 00 DW_LNE_set_address (0x0000000000000577)
+0x00000de0: 03 DW_LNS_advance_line (119)
+0x00000de3: 05 DW_LNS_set_column (23)
+0x00000de5: 04 DW_LNS_set_file (2)
+0x00000de7: 06 DW_LNS_negate_stmt
+0x00000de8: 0a DW_LNS_set_prologue_end
+0x00000de9: 00 DW_LNE_end_sequence
+ 0x0000000000000577 119 23 2 0 0 end_sequence
+
+0x00000dec: 00 DW_LNE_set_address (0x000000000000057c)
+0x00000df3: 03 DW_LNS_advance_line (118)
+0x00000df6: 05 DW_LNS_set_column (16)
+0x00000df8: 04 DW_LNS_set_file (2)
+0x00000dfa: 0a DW_LNS_set_prologue_end
+0x00000dfb: 00 DW_LNE_end_sequence
+ 0x000000000000057c 118 16 2 0 0 is_stmt end_sequence
+
+0x00000dfe: 00 DW_LNE_set_address (0x0000000000000587)
+0x00000e05: 03 DW_LNS_advance_line (118)
+0x00000e08: 05 DW_LNS_set_column (7)
+0x00000e0a: 04 DW_LNS_set_file (2)
+0x00000e0c: 06 DW_LNS_negate_stmt
+0x00000e0d: 0a DW_LNS_set_prologue_end
+0x00000e0e: 00 DW_LNE_end_sequence
+ 0x0000000000000587 118 7 2 0 0 end_sequence
+
+0x00000e11: 00 DW_LNE_set_address (0x000000000000058d)
+0x00000e18: 03 DW_LNS_advance_line (122)
+0x00000e1b: 05 DW_LNS_set_column (16)
+0x00000e1d: 04 DW_LNS_set_file (2)
+0x00000e1f: 0a DW_LNS_set_prologue_end
+0x00000e20: 00 DW_LNE_end_sequence
+ 0x000000000000058d 122 16 2 0 0 is_stmt end_sequence
+
+0x00000e23: 00 DW_LNE_set_address (0x0000000000000592)
+0x00000e2a: 03 DW_LNS_advance_line (122)
+0x00000e2d: 05 DW_LNS_set_column (14)
+0x00000e2f: 04 DW_LNS_set_file (2)
+0x00000e31: 06 DW_LNS_negate_stmt
+0x00000e32: 0a DW_LNS_set_prologue_end
+0x00000e33: 00 DW_LNE_end_sequence
+ 0x0000000000000592 122 14 2 0 0 end_sequence
+
+0x00000e36: 00 DW_LNE_set_address (0x000000000000059b)
+0x00000e3d: 03 DW_LNS_advance_line (125)
+0x00000e40: 05 DW_LNS_set_column (22)
+0x00000e42: 04 DW_LNS_set_file (2)
+0x00000e44: 0a DW_LNS_set_prologue_end
+0x00000e45: 00 DW_LNE_end_sequence
+ 0x000000000000059b 125 22 2 0 0 is_stmt end_sequence
+
+0x00000e48: 00 DW_LNE_set_address (0x00000000000005aa)
+0x00000e4f: 03 DW_LNS_advance_line (126)
+0x00000e52: 05 DW_LNS_set_column (27)
+0x00000e54: 04 DW_LNS_set_file (2)
+0x00000e56: 0a DW_LNS_set_prologue_end
+0x00000e57: 00 DW_LNE_end_sequence
+ 0x00000000000005aa 126 27 2 0 0 is_stmt end_sequence
+
+0x00000e5a: 00 DW_LNE_set_address (0x00000000000005af)
+0x00000e61: 03 DW_LNS_advance_line (126)
+0x00000e64: 05 DW_LNS_set_column (13)
+0x00000e66: 04 DW_LNS_set_file (2)
+0x00000e68: 06 DW_LNS_negate_stmt
+0x00000e69: 0a DW_LNS_set_prologue_end
+0x00000e6a: 00 DW_LNE_end_sequence
+ 0x00000000000005af 126 13 2 0 0 end_sequence
+
+0x00000e6d: 00 DW_LNE_set_address (0x00000000000005b3)
+0x00000e74: 03 DW_LNS_advance_line (127)
+0x00000e77: 05 DW_LNS_set_column (16)
+0x00000e79: 04 DW_LNS_set_file (2)
+0x00000e7b: 0a DW_LNS_set_prologue_end
+0x00000e7c: 00 DW_LNE_end_sequence
+ 0x00000000000005b3 127 16 2 0 0 is_stmt end_sequence
+
+0x00000e7f: 00 DW_LNE_set_address (0x00000000000005bb)
+0x00000e86: 03 DW_LNS_advance_line (127)
+0x00000e89: 05 DW_LNS_set_column (27)
+0x00000e8b: 04 DW_LNS_set_file (2)
+0x00000e8d: 06 DW_LNS_negate_stmt
+0x00000e8e: 0a DW_LNS_set_prologue_end
+0x00000e8f: 00 DW_LNE_end_sequence
+ 0x00000000000005bb 127 27 2 0 0 end_sequence
+
+0x00000e92: 00 DW_LNE_set_address (0x00000000000005bd)
+0x00000e99: 03 DW_LNS_advance_line (127)
+0x00000e9c: 05 DW_LNS_set_column (35)
+0x00000e9e: 04 DW_LNS_set_file (2)
+0x00000ea0: 06 DW_LNS_negate_stmt
+0x00000ea1: 0a DW_LNS_set_prologue_end
+0x00000ea2: 00 DW_LNE_end_sequence
+ 0x00000000000005bd 127 35 2 0 0 end_sequence
+
+0x00000ea5: 00 DW_LNE_set_address (0x00000000000005c6)
+0x00000eac: 03 DW_LNS_advance_line (127)
+0x00000eaf: 05 DW_LNS_set_column (27)
+0x00000eb1: 04 DW_LNS_set_file (2)
+0x00000eb3: 06 DW_LNS_negate_stmt
+0x00000eb4: 0a DW_LNS_set_prologue_end
+0x00000eb5: 00 DW_LNE_end_sequence
+ 0x00000000000005c6 127 27 2 0 0 end_sequence
+
+0x00000eb8: 00 DW_LNE_set_address (0x00000000000005cb)
+0x00000ebf: 03 DW_LNS_advance_line (127)
+0x00000ec2: 05 DW_LNS_set_column (25)
+0x00000ec4: 04 DW_LNS_set_file (2)
+0x00000ec6: 06 DW_LNS_negate_stmt
+0x00000ec7: 0a DW_LNS_set_prologue_end
+0x00000ec8: 00 DW_LNE_end_sequence
+ 0x00000000000005cb 127 25 2 0 0 end_sequence
+
+0x00000ecb: 00 DW_LNE_set_address (0x00000000000005ce)
+0x00000ed2: 03 DW_LNS_advance_line (126)
+0x00000ed5: 05 DW_LNS_set_column (27)
+0x00000ed7: 04 DW_LNS_set_file (2)
+0x00000ed9: 0a DW_LNS_set_prologue_end
+0x00000eda: 00 DW_LNE_end_sequence
+ 0x00000000000005ce 126 27 2 0 0 is_stmt end_sequence
+
+0x00000edd: 00 DW_LNE_set_address (0x00000000000005d3)
+0x00000ee4: 03 DW_LNS_advance_line (126)
+0x00000ee7: 05 DW_LNS_set_column (13)
+0x00000ee9: 04 DW_LNS_set_file (2)
+0x00000eeb: 06 DW_LNS_negate_stmt
+0x00000eec: 0a DW_LNS_set_prologue_end
+0x00000eed: 00 DW_LNE_end_sequence
+ 0x00000000000005d3 126 13 2 0 0 end_sequence
+
+0x00000ef0: 00 DW_LNE_set_address (0x00000000000005db)
+0x00000ef7: 03 DW_LNS_advance_line (128)
+0x00000efa: 05 DW_LNS_set_column (13)
+0x00000efc: 04 DW_LNS_set_file (2)
+0x00000efe: 0a DW_LNS_set_prologue_end
+0x00000eff: 00 DW_LNE_end_sequence
+ 0x00000000000005db 128 13 2 0 0 is_stmt end_sequence
+
+0x00000f02: 00 DW_LNE_set_address (0x00000000000005e3)
+0x00000f09: 03 DW_LNS_advance_line (128)
+0x00000f0c: 05 DW_LNS_set_column (22)
+0x00000f0e: 04 DW_LNS_set_file (2)
+0x00000f10: 06 DW_LNS_negate_stmt
+0x00000f11: 0a DW_LNS_set_prologue_end
+0x00000f12: 00 DW_LNE_end_sequence
+ 0x00000000000005e3 128 22 2 0 0 end_sequence
+
+0x00000f15: 00 DW_LNE_set_address (0x00000000000005e8)
+0x00000f1c: 03 DW_LNS_advance_line (130)
+0x00000f1f: 05 DW_LNS_set_column (16)
+0x00000f21: 04 DW_LNS_set_file (2)
+0x00000f23: 0a DW_LNS_set_prologue_end
+0x00000f24: 00 DW_LNE_end_sequence
+ 0x00000000000005e8 130 16 2 0 0 is_stmt end_sequence
+
+0x00000f27: 00 DW_LNE_set_address (0x00000000000005f0)
+0x00000f2e: 03 DW_LNS_advance_line (130)
+0x00000f31: 05 DW_LNS_set_column (14)
+0x00000f33: 04 DW_LNS_set_file (2)
+0x00000f35: 06 DW_LNS_negate_stmt
+0x00000f36: 0a DW_LNS_set_prologue_end
+0x00000f37: 00 DW_LNE_end_sequence
+ 0x00000000000005f0 130 14 2 0 0 end_sequence
+
+0x00000f3a: 00 DW_LNE_set_address (0x0000000000000601)
+0x00000f41: 03 DW_LNS_advance_line (130)
+0x00000f44: 05 DW_LNS_set_column (25)
+0x00000f46: 04 DW_LNS_set_file (2)
+0x00000f48: 06 DW_LNS_negate_stmt
+0x00000f49: 0a DW_LNS_set_prologue_end
+0x00000f4a: 00 DW_LNE_end_sequence
+ 0x0000000000000601 130 25 2 0 0 end_sequence
+
+0x00000f4d: 00 DW_LNE_set_address (0x0000000000000606)
+0x00000f54: 03 DW_LNS_advance_line (130)
+0x00000f57: 05 DW_LNS_set_column (14)
+0x00000f59: 04 DW_LNS_set_file (2)
+0x00000f5b: 06 DW_LNS_negate_stmt
+0x00000f5c: 0a DW_LNS_set_prologue_end
+0x00000f5d: 00 DW_LNE_end_sequence
+ 0x0000000000000606 130 14 2 0 0 end_sequence
+
+0x00000f60: 00 DW_LNE_set_address (0x0000000000000608)
+0x00000f67: 03 DW_LNS_advance_line (133)
+0x00000f6a: 05 DW_LNS_set_column (11)
+0x00000f6c: 04 DW_LNS_set_file (2)
+0x00000f6e: 0a DW_LNS_set_prologue_end
+0x00000f6f: 00 DW_LNE_end_sequence
+ 0x0000000000000608 133 11 2 0 0 is_stmt end_sequence
+
+0x00000f72: 00 DW_LNE_set_address (0x000000000000060d)
+0x00000f79: 03 DW_LNS_advance_line (122)
+0x00000f7c: 05 DW_LNS_set_column (16)
+0x00000f7e: 04 DW_LNS_set_file (2)
+0x00000f80: 0a DW_LNS_set_prologue_end
+0x00000f81: 00 DW_LNE_end_sequence
+ 0x000000000000060d 122 16 2 0 0 is_stmt end_sequence
+
+0x00000f84: 00 DW_LNE_set_address (0x0000000000000612)
+0x00000f8b: 03 DW_LNS_advance_line (122)
+0x00000f8e: 05 DW_LNS_set_column (14)
+0x00000f90: 04 DW_LNS_set_file (2)
+0x00000f92: 06 DW_LNS_negate_stmt
+0x00000f93: 0a DW_LNS_set_prologue_end
+0x00000f94: 00 DW_LNE_end_sequence
+ 0x0000000000000612 122 14 2 0 0 end_sequence
+
+0x00000f97: 00 DW_LNE_set_address (0x0000000000000618)
+0x00000f9e: 03 DW_LNS_advance_line (110)
+0x00000fa1: 05 DW_LNS_set_column (11)
+0x00000fa3: 04 DW_LNS_set_file (2)
+0x00000fa5: 0a DW_LNS_set_prologue_end
+0x00000fa6: 00 DW_LNE_end_sequence
+ 0x0000000000000618 110 11 2 0 0 is_stmt end_sequence
+
+0x00000fa9: 00 DW_LNE_set_address (0x000000000000061e)
+0x00000fb0: 03 DW_LNS_advance_line (138)
+0x00000fb3: 05 DW_LNS_set_column (4)
+0x00000fb5: 04 DW_LNS_set_file (2)
+0x00000fb7: 0a DW_LNS_set_prologue_end
+0x00000fb8: 00 DW_LNE_end_sequence
+ 0x000000000000061e 138 4 2 0 0 is_stmt end_sequence
+
+0x00000fbb: 00 DW_LNE_set_address (0x0000000000000622)
+0x00000fc2: 03 DW_LNS_advance_line (139)
+0x00000fc5: 05 DW_LNS_set_column (4)
+0x00000fc7: 04 DW_LNS_set_file (2)
+0x00000fc9: 0a DW_LNS_set_prologue_end
+0x00000fca: 00 DW_LNE_end_sequence
+ 0x0000000000000622 139 4 2 0 0 is_stmt end_sequence
+
+0x00000fcd: 00 DW_LNE_set_address (0x000000000000062e)
+0x00000fd4: 03 DW_LNS_advance_line (141)
+0x00000fd7: 05 DW_LNS_set_column (4)
+0x00000fd9: 04 DW_LNS_set_file (2)
+0x00000fdb: 0a DW_LNS_set_prologue_end
+0x00000fdc: 00 DW_LNE_end_sequence
+ 0x000000000000062e 141 4 2 0 0 is_stmt end_sequence
+
+0x00000fdf: 00 DW_LNE_set_address (0x000000000000063d)
+0x00000fe6: 03 DW_LNS_advance_line (142)
+0x00000fe9: 05 DW_LNS_set_column (20)
+0x00000feb: 04 DW_LNS_set_file (2)
+0x00000fed: 0a DW_LNS_set_prologue_end
+0x00000fee: 00 DW_LNE_end_sequence
+ 0x000000000000063d 142 20 2 0 0 is_stmt end_sequence
+
+0x00000ff1: 00 DW_LNE_set_address (0x0000000000000645)
+0x00000ff8: 03 DW_LNS_advance_line (146)
+0x00000ffb: 05 DW_LNS_set_column (20)
+0x00000ffd: 04 DW_LNS_set_file (2)
+0x00000fff: 0a DW_LNS_set_prologue_end
+0x00001000: 00 DW_LNE_end_sequence
+ 0x0000000000000645 146 20 2 0 0 is_stmt end_sequence
+
+0x00001003: 00 DW_LNE_set_address (0x000000000000064c)
+0x0000100a: 03 DW_LNS_advance_line (147)
+0x0000100d: 05 DW_LNS_set_column (7)
+0x0000100f: 04 DW_LNS_set_file (2)
+0x00001011: 0a DW_LNS_set_prologue_end
+0x00001012: 00 DW_LNE_end_sequence
+ 0x000000000000064c 147 7 2 0 0 is_stmt end_sequence
+
+0x00001015: 00 DW_LNE_set_address (0x0000000000000650)
+0x0000101c: 03 DW_LNS_advance_line (143)
+0x0000101f: 05 DW_LNS_set_column (11)
+0x00001021: 04 DW_LNS_set_file (2)
+0x00001023: 0a DW_LNS_set_prologue_end
+0x00001024: 00 DW_LNE_end_sequence
+ 0x0000000000000650 143 11 2 0 0 is_stmt end_sequence
+
+0x00001027: 00 DW_LNE_set_address (0x0000000000000654)
+0x0000102e: 03 DW_LNS_advance_line (143)
+0x00001031: 05 DW_LNS_set_column (20)
+0x00001033: 04 DW_LNS_set_file (2)
+0x00001035: 06 DW_LNS_negate_stmt
+0x00001036: 0a DW_LNS_set_prologue_end
+0x00001037: 00 DW_LNE_end_sequence
+ 0x0000000000000654 143 20 2 0 0 end_sequence
+
+0x0000103a: 00 DW_LNE_set_address (0x0000000000000659)
+0x00001041: 03 DW_LNS_advance_line (143)
+0x00001044: 05 DW_LNS_set_column (11)
+0x00001046: 04 DW_LNS_set_file (2)
+0x00001048: 06 DW_LNS_negate_stmt
+0x00001049: 0a DW_LNS_set_prologue_end
+0x0000104a: 00 DW_LNE_end_sequence
+ 0x0000000000000659 143 11 2 0 0 end_sequence
+
+0x0000104d: 00 DW_LNE_set_address (0x0000000000000660)
+0x00001054: 03 DW_LNS_advance_line (141)
+0x00001057: 05 DW_LNS_set_column (4)
+0x00001059: 04 DW_LNS_set_file (2)
+0x0000105b: 0a DW_LNS_set_prologue_end
+0x0000105c: 00 DW_LNE_end_sequence
+ 0x0000000000000660 141 4 2 0 0 is_stmt end_sequence
+
+0x0000105f: 00 DW_LNE_set_address (0x0000000000000666)
+0x00001066: 03 DW_LNS_advance_line (159)
+0x00001069: 05 DW_LNS_set_column (4)
+0x0000106b: 04 DW_LNS_set_file (2)
+0x0000106d: 0a DW_LNS_set_prologue_end
+0x0000106e: 00 DW_LNE_end_sequence
+ 0x0000000000000666 159 4 2 0 0 is_stmt end_sequence
+
+0x00001071: 00 DW_LNE_set_address (0x000000000000067d)
+0x00001078: 03 DW_LNS_advance_line (161)
+0x0000107b: 05 DW_LNS_set_column (1)
+0x0000107d: 04 DW_LNS_set_file (2)
+0x0000107f: 0a DW_LNS_set_prologue_end
+0x00001080: 00 DW_LNE_end_sequence
+ 0x000000000000067d 161 1 2 0 0 is_stmt end_sequence
+
+
+.debug_str contents:
+0x00000000: "clang version 10.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project 7fcd9e3f70830a9c4bf631a602c2764180b5c3a8)"
+0x00000095: "/usr/local/google/home/azakai/Dev/emscripten/fannkuch.cpp"
+0x000000cf: "/usr/local/google/home/azakai/Dev/binaryen"
+0x000000fa: "free"
+0x000000ff: "atoi"
+0x00000104: "int"
+0x00000108: "char"
+0x0000010d: "i"
+0x0000010f: "n"
+0x00000111: "next"
+0x00000116: "worker_args"
+0x00000122: "std"
+0x00000126: "decltype(nullptr)"
+0x00000138: "nullptr_t"
+0x00000142: "_ZL8fannkuchi"
+0x00000150: "fannkuch"
+0x00000159: "showmax"
+0x00000161: "args"
+0x00000166: "perm1"
+0x0000016c: "count"
+0x00000172: "r"
+0x00000174: "maxflips"
+0x0000017d: "flips"
+0x00000183: "targs"
+0x00000189: "cleanup"
+0x00000191: "p0"
+0x00000194: "_Z15fannkuch_workerPv"
+0x000001aa: "fannkuch_worker"
+0x000001ba: "main"
+0x000001bf: "_arg"
+0x000001c4: "perm"
+0x000001c9: "k"
+0x000001cb: "j"
+0x000001cd: "tmp"
+0x000001d1: "argc"
+0x000001d6: "argv"
+
+.debug_ranges contents:
+00000000 00000182 000001c0
+00000000 000001ea 000001f3
+00000000 0000030b 00000349
+00000000 00000373 0000037c
+00000000 <End of list>
+00000028 00000514 0000055b
+00000028 000005db 00000628
+00000028 <End of list>
+00000040 00000003 0000039a
+00000040 0000039c 000006e2
+00000040 <End of list>
+(module
+ (type $i32_=>_i32 (func (param i32) (result i32)))
+ (type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
+ (type $i32_=>_none (func (param i32)))
+ (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32)))
+ (import "env" "malloc" (func $malloc (param i32) (result i32)))
+ (import "env" "memcpy" (func $memcpy (param i32 i32 i32) (result i32)))
+ (import "env" "free" (func $free (param i32)))
+ (import "env" "atoi" (func $atoi (param i32) (result i32)))
+ (import "env" "puts" (func $puts (param i32) (result i32)))
+ (import "env" "iprintf" (func $iprintf (param i32 i32) (result i32)))
+ (import "env" "putchar" (func $putchar (param i32) (result i32)))
+ (memory $ 256 256)
+ (data (i32.const 1024) "Pfannkuchen(%d) = %d.\n\00%d\00Wrong argument.\00")
+ (table $ 1 1 funcref)
+ (global $global$0 (mut i32) (i32.const 5243952))
+ (global $global$1 i32 (i32.const 1066))
+ (export "memory" (memory $0))
+ (export "main" (func $main))
+ (export "__data_end" (global $global$1))
+ (func $fannkuch_worker\28void*\29 (; 7 ;) (param $0 i32) (result i32)
+ (local $1 i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (local $6 i32)
+ (local $7 i32)
+ (local $8 i32)
+ (local $9 i32)
+ (local $10 i32)
+ (local $11 i32)
+ (local $12 i32)
+ (local $13 i32)
+ (local $14 i32)
+ (local $15 i32)
+ (local $16 i32)
+ ;; code offset: 0x8
+ (local.set $1
+ ;; code offset: 0x6
+ (i32.const 0)
+ )
+ ;; code offset: 0x18
+ (local.set $4
+ ;; code offset: 0x16
+ (call $malloc
+ ;; code offset: 0x14
+ (local.tee $3
+ ;; code offset: 0x13
+ (i32.shl
+ ;; code offset: 0xf
+ (local.tee $2
+ ;; code offset: 0xc
+ (i32.load offset=4
+ ;; code offset: 0xa
+ (local.get $0)
+ )
+ )
+ ;; code offset: 0x11
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ ;; code offset: 0x1e
+ (local.set $5
+ ;; code offset: 0x1c
+ (call $malloc
+ ;; code offset: 0x1a
+ (local.get $3)
+ )
+ )
+ ;; code offset: 0x24
+ (local.set $6
+ ;; code offset: 0x22
+ (call $malloc
+ ;; code offset: 0x20
+ (local.get $3)
+ )
+ )
+ ;; code offset: 0x26
+ (block $label$1
+ (block $label$2
+ (block $label$3
+ ;; code offset: 0x31
+ (br_if $label$3
+ ;; code offset: 0x30
+ (i32.le_s
+ ;; code offset: 0x2c
+ (local.get $2)
+ ;; code offset: 0x2e
+ (i32.const 0)
+ )
+ )
+ ;; code offset: 0x33
+ (loop $label$4
+ ;; code offset: 0x3f
+ (i32.store
+ ;; code offset: 0x3c
+ (i32.add
+ ;; code offset: 0x35
+ (local.get $4)
+ ;; code offset: 0x3b
+ (i32.shl
+ ;; code offset: 0x37
+ (local.get $1)
+ ;; code offset: 0x39
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x3d
+ (local.get $1)
+ )
+ ;; code offset: 0x4c
+ (br_if $label$4
+ ;; code offset: 0x4b
+ (i32.ne
+ ;; code offset: 0x47
+ (local.tee $1
+ ;; code offset: 0x46
+ (i32.add
+ ;; code offset: 0x42
+ (local.get $1)
+ ;; code offset: 0x44
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x49
+ (local.get $2)
+ )
+ )
+ )
+ ;; code offset: 0x63
+ (i32.store
+ ;; code offset: 0x5b
+ (i32.add
+ ;; code offset: 0x4f
+ (local.get $4)
+ ;; code offset: 0x5a
+ (i32.shl
+ ;; code offset: 0x56
+ (local.tee $1
+ ;; code offset: 0x53
+ (i32.load
+ ;; code offset: 0x51
+ (local.get $0)
+ )
+ )
+ ;; code offset: 0x58
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x61
+ (local.tee $7
+ ;; code offset: 0x60
+ (i32.add
+ ;; code offset: 0x5c
+ (local.get $2)
+ ;; code offset: 0x5e
+ (i32.const -1)
+ )
+ )
+ )
+ ;; code offset: 0x72
+ (i32.store
+ ;; code offset: 0x6e
+ (local.tee $8
+ ;; code offset: 0x6d
+ (i32.add
+ ;; code offset: 0x66
+ (local.get $4)
+ ;; code offset: 0x6c
+ (i32.shl
+ ;; code offset: 0x68
+ (local.get $7)
+ ;; code offset: 0x6a
+ (i32.const 2)
+ )
+ )
+ )
+ ;; code offset: 0x70
+ (local.get $1)
+ )
+ ;; code offset: 0x77
+ (local.set $9
+ ;; code offset: 0x75
+ (i32.const 0)
+ )
+ ;; code offset: 0x7e
+ (br_if $label$2
+ ;; code offset: 0x7d
+ (i32.le_s
+ ;; code offset: 0x79
+ (local.get $2)
+ ;; code offset: 0x7b
+ (i32.const 0)
+ )
+ )
+ ;; code offset: 0x80
+ (loop $label$5
+ ;; code offset: 0x82
+ (block $label$6
+ ;; code offset: 0x89
+ (br_if $label$6
+ ;; code offset: 0x88
+ (i32.le_s
+ ;; code offset: 0x84
+ (local.get $2)
+ ;; code offset: 0x86
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x8b
+ (loop $label$7
+ ;; code offset: 0x9c
+ (i32.store
+ ;; code offset: 0x99
+ (i32.add
+ ;; code offset: 0x8d
+ (local.get $6)
+ ;; code offset: 0x98
+ (i32.shl
+ ;; code offset: 0x94
+ (local.tee $1
+ ;; code offset: 0x93
+ (i32.add
+ ;; code offset: 0x8f
+ (local.get $2)
+ ;; code offset: 0x91
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0x96
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x9a
+ (local.get $2)
+ )
+ ;; code offset: 0xa4
+ (local.set $0
+ ;; code offset: 0xa3
+ (i32.gt_s
+ ;; code offset: 0x9f
+ (local.get $2)
+ ;; code offset: 0xa1
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0xa8
+ (local.set $2
+ ;; code offset: 0xa6
+ (local.get $1)
+ )
+ ;; code offset: 0xac
+ (br_if $label$7
+ ;; code offset: 0xaa
+ (local.get $0)
+ )
+ )
+ )
+ ;; code offset: 0xb0
+ (block $label$8
+ ;; code offset: 0xba
+ (br_if $label$8
+ ;; code offset: 0xb9
+ (i32.eqz
+ ;; code offset: 0xb7
+ (local.tee $10
+ ;; code offset: 0xb4
+ (i32.load
+ ;; code offset: 0xb2
+ (local.get $4)
+ )
+ )
+ )
+ )
+ ;; code offset: 0xc4
+ (br_if $label$8
+ ;; code offset: 0xc3
+ (i32.eq
+ ;; code offset: 0xbe
+ (i32.load
+ ;; code offset: 0xbc
+ (local.get $8)
+ )
+ ;; code offset: 0xc1
+ (local.get $7)
+ )
+ )
+ ;; code offset: 0xd3
+ (local.set $12
+ ;; code offset: 0xd0
+ (i32.load
+ ;; code offset: 0xce
+ (local.tee $11
+ ;; code offset: 0xcc
+ (call $memcpy
+ ;; code offset: 0xc6
+ (local.get $5)
+ ;; code offset: 0xc8
+ (local.get $4)
+ ;; code offset: 0xca
+ (local.get $3)
+ )
+ )
+ )
+ )
+ ;; code offset: 0xd7
+ (local.set $0
+ ;; code offset: 0xd5
+ (i32.const 0)
+ )
+ ;; code offset: 0xd9
+ (loop $label$9
+ ;; code offset: 0xdd
+ (local.set $13
+ ;; code offset: 0xdb
+ (local.get $0)
+ )
+ ;; code offset: 0xdf
+ (block $label$10
+ ;; code offset: 0xe6
+ (br_if $label$10
+ ;; code offset: 0xe5
+ (i32.lt_s
+ ;; code offset: 0xe1
+ (local.get $12)
+ ;; code offset: 0xe3
+ (i32.const 3)
+ )
+ )
+ ;; code offset: 0xed
+ (local.set $1
+ ;; code offset: 0xec
+ (i32.add
+ ;; code offset: 0xe8
+ (local.get $12)
+ ;; code offset: 0xea
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0xf1
+ (local.set $0
+ ;; code offset: 0xef
+ (i32.const 1)
+ )
+ ;; code offset: 0xf3
+ (loop $label$11
+ ;; code offset: 0x102
+ (local.set $15
+ ;; code offset: 0xff
+ (i32.load
+ ;; code offset: 0xfd
+ (local.tee $14
+ ;; code offset: 0xfc
+ (i32.add
+ ;; code offset: 0xf5
+ (local.get $11)
+ ;; code offset: 0xfb
+ (i32.shl
+ ;; code offset: 0xf7
+ (local.get $0)
+ ;; code offset: 0xf9
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ )
+ ;; code offset: 0x113
+ (i32.store
+ ;; code offset: 0x104
+ (local.get $14)
+ ;; code offset: 0x110
+ (i32.load
+ ;; code offset: 0x10e
+ (local.tee $16
+ ;; code offset: 0x10d
+ (i32.add
+ ;; code offset: 0x106
+ (local.get $11)
+ ;; code offset: 0x10c
+ (i32.shl
+ ;; code offset: 0x108
+ (local.get $1)
+ ;; code offset: 0x10a
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ )
+ ;; code offset: 0x11a
+ (i32.store
+ ;; code offset: 0x116
+ (local.get $16)
+ ;; code offset: 0x118
+ (local.get $15)
+ )
+ ;; code offset: 0x12c
+ (br_if $label$11
+ ;; code offset: 0x12b
+ (i32.lt_s
+ ;; code offset: 0x122
+ (local.tee $0
+ ;; code offset: 0x121
+ (i32.add
+ ;; code offset: 0x11d
+ (local.get $0)
+ ;; code offset: 0x11f
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x129
+ (local.tee $1
+ ;; code offset: 0x128
+ (i32.add
+ ;; code offset: 0x124
+ (local.get $1)
+ ;; code offset: 0x126
+ (i32.const -1)
+ )
+ )
+ )
+ )
+ )
+ )
+ ;; code offset: 0x13d
+ (local.set $1
+ ;; code offset: 0x13a
+ (i32.load
+ ;; code offset: 0x138
+ (local.tee $0
+ ;; code offset: 0x137
+ (i32.add
+ ;; code offset: 0x130
+ (local.get $11)
+ ;; code offset: 0x136
+ (i32.shl
+ ;; code offset: 0x132
+ (local.get $12)
+ ;; code offset: 0x134
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ )
+ ;; code offset: 0x143
+ (i32.store
+ ;; code offset: 0x13f
+ (local.get $0)
+ ;; code offset: 0x141
+ (local.get $12)
+ )
+ ;; code offset: 0x14b
+ (local.set $0
+ ;; code offset: 0x14a
+ (i32.add
+ ;; code offset: 0x146
+ (local.get $13)
+ ;; code offset: 0x148
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x14f
+ (local.set $12
+ ;; code offset: 0x14d
+ (local.get $1)
+ )
+ ;; code offset: 0x153
+ (br_if $label$9
+ ;; code offset: 0x151
+ (local.get $1)
+ )
+ )
+ ;; code offset: 0x160
+ (local.set $9
+ ;; code offset: 0x15f
+ (select
+ ;; code offset: 0x156
+ (local.get $9)
+ ;; code offset: 0x158
+ (local.get $0)
+ ;; code offset: 0x15e
+ (i32.gt_s
+ ;; code offset: 0x15a
+ (local.get $9)
+ ;; code offset: 0x15c
+ (local.get $13)
+ )
+ )
+ )
+ )
+ ;; code offset: 0x168
+ (br_if $label$1
+ ;; code offset: 0x167
+ (i32.ge_s
+ ;; code offset: 0x163
+ (local.get $2)
+ ;; code offset: 0x165
+ (local.get $7)
+ )
+ )
+ ;; code offset: 0x16a
+ (loop $label$12
+ ;; code offset: 0x16e
+ (local.set $1
+ ;; code offset: 0x16c
+ (i32.const 0)
+ )
+ ;; code offset: 0x170
+ (block $label$13
+ ;; code offset: 0x177
+ (br_if $label$13
+ ;; code offset: 0x176
+ (i32.le_s
+ ;; code offset: 0x172
+ (local.get $2)
+ ;; code offset: 0x174
+ (i32.const 0)
+ )
+ )
+ ;; code offset: 0x179
+ (loop $label$14
+ ;; code offset: 0x193
+ (i32.store
+ ;; code offset: 0x182
+ (i32.add
+ ;; code offset: 0x17b
+ (local.get $4)
+ ;; code offset: 0x181
+ (i32.shl
+ ;; code offset: 0x17d
+ (local.get $1)
+ ;; code offset: 0x17f
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x190
+ (i32.load
+ ;; code offset: 0x18f
+ (i32.add
+ ;; code offset: 0x183
+ (local.get $4)
+ ;; code offset: 0x18e
+ (i32.shl
+ ;; code offset: 0x18a
+ (local.tee $1
+ ;; code offset: 0x189
+ (i32.add
+ ;; code offset: 0x185
+ (local.get $1)
+ ;; code offset: 0x187
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x18c
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ ;; code offset: 0x19b
+ (br_if $label$14
+ ;; code offset: 0x19a
+ (i32.ne
+ ;; code offset: 0x196
+ (local.get $1)
+ ;; code offset: 0x198
+ (local.get $2)
+ )
+ )
+ )
+ ;; code offset: 0x1a0
+ (local.set $1
+ ;; code offset: 0x19e
+ (local.get $2)
+ )
+ )
+ ;; code offset: 0x1ad
+ (i32.store
+ ;; code offset: 0x1aa
+ (i32.add
+ ;; code offset: 0x1a3
+ (local.get $4)
+ ;; code offset: 0x1a9
+ (i32.shl
+ ;; code offset: 0x1a5
+ (local.get $1)
+ ;; code offset: 0x1a7
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x1ab
+ (local.get $10)
+ )
+ ;; code offset: 0x1c4
+ (i32.store
+ ;; code offset: 0x1b8
+ (local.tee $1
+ ;; code offset: 0x1b7
+ (i32.add
+ ;; code offset: 0x1b0
+ (local.get $6)
+ ;; code offset: 0x1b6
+ (i32.shl
+ ;; code offset: 0x1b2
+ (local.get $2)
+ ;; code offset: 0x1b4
+ (i32.const 2)
+ )
+ )
+ )
+ ;; code offset: 0x1c3
+ (i32.add
+ ;; code offset: 0x1bf
+ (local.tee $1
+ ;; code offset: 0x1bc
+ (i32.load
+ ;; code offset: 0x1ba
+ (local.get $1)
+ )
+ )
+ ;; code offset: 0x1c1
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0x1cc
+ (br_if $label$5
+ ;; code offset: 0x1cb
+ (i32.gt_s
+ ;; code offset: 0x1c7
+ (local.get $1)
+ ;; code offset: 0x1c9
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x1d8
+ (br_if $label$1
+ ;; code offset: 0x1d7
+ (i32.eq
+ ;; code offset: 0x1d3
+ (local.tee $2
+ ;; code offset: 0x1d2
+ (i32.add
+ ;; code offset: 0x1ce
+ (local.get $2)
+ ;; code offset: 0x1d0
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x1d5
+ (local.get $7)
+ )
+ )
+ ;; code offset: 0x1df
+ (local.set $10
+ ;; code offset: 0x1dc
+ (i32.load
+ ;; code offset: 0x1da
+ (local.get $4)
+ )
+ )
+ ;; code offset: 0x1e1
+ (br $label$12)
+ )
+ )
+ )
+ ;; code offset: 0x1fe
+ (i32.store
+ ;; code offset: 0x1f6
+ (i32.add
+ ;; code offset: 0x1ea
+ (local.get $4)
+ ;; code offset: 0x1f5
+ (i32.shl
+ ;; code offset: 0x1f1
+ (local.tee $1
+ ;; code offset: 0x1ee
+ (i32.load
+ ;; code offset: 0x1ec
+ (local.get $0)
+ )
+ )
+ ;; code offset: 0x1f3
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x1fc
+ (local.tee $7
+ ;; code offset: 0x1fb
+ (i32.add
+ ;; code offset: 0x1f7
+ (local.get $2)
+ ;; code offset: 0x1f9
+ (i32.const -1)
+ )
+ )
+ )
+ ;; code offset: 0x20d
+ (i32.store
+ ;; code offset: 0x209
+ (local.tee $8
+ ;; code offset: 0x208
+ (i32.add
+ ;; code offset: 0x201
+ (local.get $4)
+ ;; code offset: 0x207
+ (i32.shl
+ ;; code offset: 0x203
+ (local.get $7)
+ ;; code offset: 0x205
+ (i32.const 2)
+ )
+ )
+ )
+ ;; code offset: 0x20b
+ (local.get $1)
+ )
+ )
+ ;; code offset: 0x213
+ (local.set $9
+ ;; code offset: 0x211
+ (i32.const 0)
+ )
+ ;; code offset: 0x215
+ (loop $label$15
+ ;; code offset: 0x217
+ (block $label$16
+ ;; code offset: 0x21e
+ (br_if $label$16
+ ;; code offset: 0x21d
+ (i32.lt_s
+ ;; code offset: 0x219
+ (local.get $2)
+ ;; code offset: 0x21b
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x220
+ (loop $label$17
+ ;; code offset: 0x231
+ (i32.store
+ ;; code offset: 0x22e
+ (i32.add
+ ;; code offset: 0x222
+ (local.get $6)
+ ;; code offset: 0x22d
+ (i32.shl
+ ;; code offset: 0x229
+ (local.tee $1
+ ;; code offset: 0x228
+ (i32.add
+ ;; code offset: 0x224
+ (local.get $2)
+ ;; code offset: 0x226
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0x22b
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x22f
+ (local.get $2)
+ )
+ ;; code offset: 0x239
+ (local.set $0
+ ;; code offset: 0x238
+ (i32.gt_s
+ ;; code offset: 0x234
+ (local.get $2)
+ ;; code offset: 0x236
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x23d
+ (local.set $2
+ ;; code offset: 0x23b
+ (local.get $1)
+ )
+ ;; code offset: 0x241
+ (br_if $label$17
+ ;; code offset: 0x23f
+ (local.get $0)
+ )
+ )
+ )
+ ;; code offset: 0x245
+ (block $label$18
+ ;; code offset: 0x24f
+ (br_if $label$18
+ ;; code offset: 0x24e
+ (i32.eqz
+ ;; code offset: 0x24c
+ (local.tee $12
+ ;; code offset: 0x249
+ (i32.load
+ ;; code offset: 0x247
+ (local.get $4)
+ )
+ )
+ )
+ )
+ ;; code offset: 0x259
+ (br_if $label$18
+ ;; code offset: 0x258
+ (i32.eq
+ ;; code offset: 0x253
+ (i32.load
+ ;; code offset: 0x251
+ (local.get $8)
+ )
+ ;; code offset: 0x256
+ (local.get $7)
+ )
+ )
+ ;; code offset: 0x260
+ (local.set $16
+ ;; code offset: 0x25d
+ (i32.load
+ ;; code offset: 0x25b
+ (local.get $5)
+ )
+ )
+ ;; code offset: 0x264
+ (local.set $0
+ ;; code offset: 0x262
+ (i32.const 0)
+ )
+ ;; code offset: 0x266
+ (loop $label$19
+ ;; code offset: 0x26a
+ (local.set $10
+ ;; code offset: 0x268
+ (local.get $0)
+ )
+ ;; code offset: 0x26c
+ (block $label$20
+ ;; code offset: 0x273
+ (br_if $label$20
+ ;; code offset: 0x272
+ (i32.lt_s
+ ;; code offset: 0x26e
+ (local.get $16)
+ ;; code offset: 0x270
+ (i32.const 3)
+ )
+ )
+ ;; code offset: 0x27a
+ (local.set $1
+ ;; code offset: 0x279
+ (i32.add
+ ;; code offset: 0x275
+ (local.get $16)
+ ;; code offset: 0x277
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0x27e
+ (local.set $0
+ ;; code offset: 0x27c
+ (i32.const 1)
+ )
+ ;; code offset: 0x280
+ (loop $label$21
+ ;; code offset: 0x28f
+ (local.set $14
+ ;; code offset: 0x28c
+ (i32.load
+ ;; code offset: 0x28a
+ (local.tee $11
+ ;; code offset: 0x289
+ (i32.add
+ ;; code offset: 0x282
+ (local.get $5)
+ ;; code offset: 0x288
+ (i32.shl
+ ;; code offset: 0x284
+ (local.get $0)
+ ;; code offset: 0x286
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ )
+ ;; code offset: 0x2a0
+ (i32.store
+ ;; code offset: 0x291
+ (local.get $11)
+ ;; code offset: 0x29d
+ (i32.load
+ ;; code offset: 0x29b
+ (local.tee $15
+ ;; code offset: 0x29a
+ (i32.add
+ ;; code offset: 0x293
+ (local.get $5)
+ ;; code offset: 0x299
+ (i32.shl
+ ;; code offset: 0x295
+ (local.get $1)
+ ;; code offset: 0x297
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ )
+ ;; code offset: 0x2a7
+ (i32.store
+ ;; code offset: 0x2a3
+ (local.get $15)
+ ;; code offset: 0x2a5
+ (local.get $14)
+ )
+ ;; code offset: 0x2b9
+ (br_if $label$21
+ ;; code offset: 0x2b8
+ (i32.lt_s
+ ;; code offset: 0x2af
+ (local.tee $0
+ ;; code offset: 0x2ae
+ (i32.add
+ ;; code offset: 0x2aa
+ (local.get $0)
+ ;; code offset: 0x2ac
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x2b6
+ (local.tee $1
+ ;; code offset: 0x2b5
+ (i32.add
+ ;; code offset: 0x2b1
+ (local.get $1)
+ ;; code offset: 0x2b3
+ (i32.const -1)
+ )
+ )
+ )
+ )
+ )
+ )
+ ;; code offset: 0x2ca
+ (local.set $1
+ ;; code offset: 0x2c7
+ (i32.load
+ ;; code offset: 0x2c5
+ (local.tee $0
+ ;; code offset: 0x2c4
+ (i32.add
+ ;; code offset: 0x2bd
+ (local.get $5)
+ ;; code offset: 0x2c3
+ (i32.shl
+ ;; code offset: 0x2bf
+ (local.get $16)
+ ;; code offset: 0x2c1
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ )
+ ;; code offset: 0x2d0
+ (i32.store
+ ;; code offset: 0x2cc
+ (local.get $0)
+ ;; code offset: 0x2ce
+ (local.get $16)
+ )
+ ;; code offset: 0x2d8
+ (local.set $0
+ ;; code offset: 0x2d7
+ (i32.add
+ ;; code offset: 0x2d3
+ (local.get $10)
+ ;; code offset: 0x2d5
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x2dc
+ (local.set $16
+ ;; code offset: 0x2da
+ (local.get $1)
+ )
+ ;; code offset: 0x2e0
+ (br_if $label$19
+ ;; code offset: 0x2de
+ (local.get $1)
+ )
+ )
+ ;; code offset: 0x2ed
+ (local.set $9
+ ;; code offset: 0x2ec
+ (select
+ ;; code offset: 0x2e3
+ (local.get $9)
+ ;; code offset: 0x2e5
+ (local.get $0)
+ ;; code offset: 0x2eb
+ (i32.gt_s
+ ;; code offset: 0x2e7
+ (local.get $9)
+ ;; code offset: 0x2e9
+ (local.get $10)
+ )
+ )
+ )
+ )
+ ;; code offset: 0x2f5
+ (br_if $label$1
+ ;; code offset: 0x2f4
+ (i32.ge_s
+ ;; code offset: 0x2f0
+ (local.get $2)
+ ;; code offset: 0x2f2
+ (local.get $7)
+ )
+ )
+ ;; code offset: 0x2f7
+ (loop $label$22
+ ;; code offset: 0x2fb
+ (local.set $1
+ ;; code offset: 0x2f9
+ (i32.const 0)
+ )
+ ;; code offset: 0x2fd
+ (block $label$23
+ ;; code offset: 0x304
+ (br_if $label$23
+ ;; code offset: 0x303
+ (i32.lt_s
+ ;; code offset: 0x2ff
+ (local.get $2)
+ ;; code offset: 0x301
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x306
+ (loop $label$24
+ ;; code offset: 0x320
+ (i32.store
+ ;; code offset: 0x30f
+ (i32.add
+ ;; code offset: 0x308
+ (local.get $4)
+ ;; code offset: 0x30e
+ (i32.shl
+ ;; code offset: 0x30a
+ (local.get $1)
+ ;; code offset: 0x30c
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x31d
+ (i32.load
+ ;; code offset: 0x31c
+ (i32.add
+ ;; code offset: 0x310
+ (local.get $4)
+ ;; code offset: 0x31b
+ (i32.shl
+ ;; code offset: 0x317
+ (local.tee $1
+ ;; code offset: 0x316
+ (i32.add
+ ;; code offset: 0x312
+ (local.get $1)
+ ;; code offset: 0x314
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x319
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ ;; code offset: 0x328
+ (br_if $label$24
+ ;; code offset: 0x327
+ (i32.ne
+ ;; code offset: 0x323
+ (local.get $1)
+ ;; code offset: 0x325
+ (local.get $2)
+ )
+ )
+ )
+ ;; code offset: 0x32d
+ (local.set $1
+ ;; code offset: 0x32b
+ (local.get $2)
+ )
+ )
+ ;; code offset: 0x33a
+ (i32.store
+ ;; code offset: 0x337
+ (i32.add
+ ;; code offset: 0x330
+ (local.get $4)
+ ;; code offset: 0x336
+ (i32.shl
+ ;; code offset: 0x332
+ (local.get $1)
+ ;; code offset: 0x334
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x338
+ (local.get $12)
+ )
+ ;; code offset: 0x351
+ (i32.store
+ ;; code offset: 0x345
+ (local.tee $1
+ ;; code offset: 0x344
+ (i32.add
+ ;; code offset: 0x33d
+ (local.get $6)
+ ;; code offset: 0x343
+ (i32.shl
+ ;; code offset: 0x33f
+ (local.get $2)
+ ;; code offset: 0x341
+ (i32.const 2)
+ )
+ )
+ )
+ ;; code offset: 0x350
+ (i32.add
+ ;; code offset: 0x34c
+ (local.tee $1
+ ;; code offset: 0x349
+ (i32.load
+ ;; code offset: 0x347
+ (local.get $1)
+ )
+ )
+ ;; code offset: 0x34e
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0x359
+ (br_if $label$15
+ ;; code offset: 0x358
+ (i32.gt_s
+ ;; code offset: 0x354
+ (local.get $1)
+ ;; code offset: 0x356
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x365
+ (br_if $label$1
+ ;; code offset: 0x364
+ (i32.eq
+ ;; code offset: 0x360
+ (local.tee $2
+ ;; code offset: 0x35f
+ (i32.add
+ ;; code offset: 0x35b
+ (local.get $2)
+ ;; code offset: 0x35d
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x362
+ (local.get $7)
+ )
+ )
+ ;; code offset: 0x36c
+ (local.set $12
+ ;; code offset: 0x369
+ (i32.load
+ ;; code offset: 0x367
+ (local.get $4)
+ )
+ )
+ ;; code offset: 0x36e
+ (br $label$22)
+ )
+ )
+ )
+ ;; code offset: 0x379
+ (call $free
+ ;; code offset: 0x377
+ (local.get $4)
+ )
+ ;; code offset: 0x37d
+ (call $free
+ ;; code offset: 0x37b
+ (local.get $5)
+ )
+ ;; code offset: 0x381
+ (call $free
+ ;; code offset: 0x37f
+ (local.get $6)
+ )
+ ;; code offset: 0x383
+ (local.get $9)
+ )
+ (func $main (; 8 ;) (param $0 i32) (param $1 i32) (result i32)
+ (local $2 i32)
+ (local $3 i32)
+ (local $4 i32)
+ (local $5 i32)
+ (local $6 i32)
+ (local $7 i32)
+ (local $8 i32)
+ ;; code offset: 0x392
+ (global.set $global$0
+ ;; code offset: 0x390
+ (local.tee $2
+ ;; code offset: 0x38f
+ (i32.sub
+ ;; code offset: 0x38b
+ (global.get $global$0)
+ ;; code offset: 0x38d
+ (i32.const 32)
+ )
+ )
+ )
+ ;; code offset: 0x394
+ (block $label$1
+ (block $label$2
+ (block $label$3
+ ;; code offset: 0x39f
+ (br_if $label$3
+ ;; code offset: 0x39e
+ (i32.lt_s
+ ;; code offset: 0x39a
+ (local.get $0)
+ ;; code offset: 0x39c
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x3a3
+ (local.set $3
+ ;; code offset: 0x3a1
+ (i32.const 0)
+ )
+ ;; code offset: 0x3b1
+ (br_if $label$2
+ ;; code offset: 0x3b0
+ (i32.gt_s
+ ;; code offset: 0x3ac
+ (local.tee $4
+ ;; code offset: 0x3aa
+ (call $atoi
+ ;; code offset: 0x3a7
+ (i32.load offset=4
+ ;; code offset: 0x3a5
+ (local.get $1)
+ )
+ )
+ )
+ ;; code offset: 0x3ae
+ (i32.const 0)
+ )
+ )
+ )
+ ;; code offset: 0x3b9
+ (drop
+ ;; code offset: 0x3b7
+ (call $puts
+ ;; code offset: 0x3b4
+ (i32.const 1050)
+ )
+ )
+ ;; code offset: 0x3bc
+ (local.set $5
+ ;; code offset: 0x3ba
+ (i32.const 1)
+ )
+ ;; code offset: 0x3be
+ (br $label$1)
+ )
+ ;; code offset: 0x3c1
+ (block $label$4
+ ;; code offset: 0x3c8
+ (br_if $label$4
+ ;; code offset: 0x3c7
+ (i32.eq
+ ;; code offset: 0x3c3
+ (local.get $4)
+ ;; code offset: 0x3c5
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x3cf
+ (local.set $6
+ ;; code offset: 0x3ce
+ (i32.add
+ ;; code offset: 0x3ca
+ (local.get $4)
+ ;; code offset: 0x3cc
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0x3d3
+ (local.set $1
+ ;; code offset: 0x3d1
+ (i32.const 0)
+ )
+ ;; code offset: 0x3d7
+ (local.set $0
+ ;; code offset: 0x3d5
+ (i32.const 0)
+ )
+ ;; code offset: 0x3d9
+ (loop $label$5
+ ;; code offset: 0x3e3
+ (i32.store offset=8
+ ;; code offset: 0x3df
+ (local.tee $3
+ ;; code offset: 0x3dd
+ (call $malloc
+ ;; code offset: 0x3db
+ (i32.const 12)
+ )
+ )
+ ;; code offset: 0x3e1
+ (local.get $1)
+ )
+ ;; code offset: 0x3ea
+ (i32.store offset=4
+ ;; code offset: 0x3e6
+ (local.get $3)
+ ;; code offset: 0x3e8
+ (local.get $4)
+ )
+ ;; code offset: 0x3f1
+ (i32.store
+ ;; code offset: 0x3ed
+ (local.get $3)
+ ;; code offset: 0x3ef
+ (local.get $0)
+ )
+ ;; code offset: 0x3f6
+ (local.set $1
+ ;; code offset: 0x3f4
+ (local.get $3)
+ )
+ ;; code offset: 0x402
+ (br_if $label$5
+ ;; code offset: 0x401
+ (i32.ne
+ ;; code offset: 0x3fd
+ (local.tee $0
+ ;; code offset: 0x3fc
+ (i32.add
+ ;; code offset: 0x3f8
+ (local.get $0)
+ ;; code offset: 0x3fa
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x3ff
+ (local.get $6)
+ )
+ )
+ )
+ )
+ ;; code offset: 0x408
+ (local.set $0
+ ;; code offset: 0x406
+ (i32.const 0)
+ )
+ ;; code offset: 0x413
+ (local.set $1
+ ;; code offset: 0x411
+ (call $malloc
+ ;; code offset: 0x40f
+ (local.tee $6
+ ;; code offset: 0x40e
+ (i32.shl
+ ;; code offset: 0x40a
+ (local.get $4)
+ ;; code offset: 0x40c
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ ;; code offset: 0x419
+ (local.set $5
+ ;; code offset: 0x417
+ (call $malloc
+ ;; code offset: 0x415
+ (local.get $6)
+ )
+ )
+ ;; code offset: 0x41b
+ (block $label$6
+ (block $label$7
+ (block $label$8
+ (block $label$9
+ ;; code offset: 0x428
+ (br_if $label$9
+ ;; code offset: 0x427
+ (i32.le_s
+ ;; code offset: 0x423
+ (local.get $4)
+ ;; code offset: 0x425
+ (i32.const 0)
+ )
+ )
+ ;; code offset: 0x42a
+ (loop $label$10
+ ;; code offset: 0x436
+ (i32.store
+ ;; code offset: 0x433
+ (i32.add
+ ;; code offset: 0x42c
+ (local.get $1)
+ ;; code offset: 0x432
+ (i32.shl
+ ;; code offset: 0x42e
+ (local.get $0)
+ ;; code offset: 0x430
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x434
+ (local.get $0)
+ )
+ ;; code offset: 0x443
+ (br_if $label$10
+ ;; code offset: 0x442
+ (i32.ne
+ ;; code offset: 0x43e
+ (local.tee $0
+ ;; code offset: 0x43d
+ (i32.add
+ ;; code offset: 0x439
+ (local.get $0)
+ ;; code offset: 0x43b
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x440
+ (local.get $4)
+ )
+ )
+ )
+ ;; code offset: 0x448
+ (local.set $7
+ ;; code offset: 0x446
+ (i32.const 30)
+ )
+ ;; code offset: 0x44c
+ (local.set $6
+ ;; code offset: 0x44a
+ (local.get $4)
+ )
+ ;; code offset: 0x44e
+ (br $label$8)
+ )
+ ;; code offset: 0x453
+ (local.set $7
+ ;; code offset: 0x451
+ (i32.const 30)
+ )
+ ;; code offset: 0x457
+ (local.set $6
+ ;; code offset: 0x455
+ (local.get $4)
+ )
+ ;; code offset: 0x459
+ (br $label$7)
+ )
+ ;; code offset: 0x45c
+ (loop $label$11
+ ;; code offset: 0x460
+ (local.set $0
+ ;; code offset: 0x45e
+ (i32.const 0)
+ )
+ ;; code offset: 0x462
+ (loop $label$12
+ ;; code offset: 0x474
+ (i32.store offset=16
+ ;; code offset: 0x464
+ (local.get $2)
+ ;; code offset: 0x473
+ (i32.add
+ ;; code offset: 0x46e
+ (i32.load
+ ;; code offset: 0x46d
+ (i32.add
+ ;; code offset: 0x466
+ (local.get $1)
+ ;; code offset: 0x46c
+ (i32.shl
+ ;; code offset: 0x468
+ (local.get $0)
+ ;; code offset: 0x46a
+ (i32.const 2)
+ )
+ )
+ )
+ ;; code offset: 0x471
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x481
+ (drop
+ ;; code offset: 0x47f
+ (call $iprintf
+ ;; code offset: 0x477
+ (i32.const 1047)
+ ;; code offset: 0x47e
+ (i32.add
+ ;; code offset: 0x47a
+ (local.get $2)
+ ;; code offset: 0x47c
+ (i32.const 16)
+ )
+ )
+ )
+ ;; code offset: 0x48c
+ (br_if $label$12
+ ;; code offset: 0x48b
+ (i32.ne
+ ;; code offset: 0x487
+ (local.tee $0
+ ;; code offset: 0x486
+ (i32.add
+ ;; code offset: 0x482
+ (local.get $0)
+ ;; code offset: 0x484
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x489
+ (local.get $4)
+ )
+ )
+ )
+ ;; code offset: 0x493
+ (drop
+ ;; code offset: 0x491
+ (call $putchar
+ ;; code offset: 0x48f
+ (i32.const 10)
+ )
+ )
+ ;; code offset: 0x494
+ (block $label$13
+ ;; code offset: 0x49b
+ (br_if $label$13
+ ;; code offset: 0x49a
+ (i32.le_s
+ ;; code offset: 0x496
+ (local.get $6)
+ ;; code offset: 0x498
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x49d
+ (loop $label$14
+ ;; code offset: 0x4ae
+ (i32.store
+ ;; code offset: 0x4ab
+ (i32.add
+ ;; code offset: 0x49f
+ (local.get $5)
+ ;; code offset: 0x4aa
+ (i32.shl
+ ;; code offset: 0x4a6
+ (local.tee $0
+ ;; code offset: 0x4a5
+ (i32.add
+ ;; code offset: 0x4a1
+ (local.get $6)
+ ;; code offset: 0x4a3
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0x4a8
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x4ac
+ (local.get $6)
+ )
+ ;; code offset: 0x4b6
+ (local.set $8
+ ;; code offset: 0x4b5
+ (i32.gt_s
+ ;; code offset: 0x4b1
+ (local.get $6)
+ ;; code offset: 0x4b3
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x4ba
+ (local.set $6
+ ;; code offset: 0x4b8
+ (local.get $0)
+ )
+ ;; code offset: 0x4be
+ (br_if $label$14
+ ;; code offset: 0x4bc
+ (local.get $8)
+ )
+ )
+ )
+ ;; code offset: 0x4c7
+ (br_if $label$6
+ ;; code offset: 0x4c6
+ (i32.eq
+ ;; code offset: 0x4c2
+ (local.get $6)
+ ;; code offset: 0x4c4
+ (local.get $4)
+ )
+ )
+ ;; code offset: 0x4ce
+ (local.set $7
+ ;; code offset: 0x4cd
+ (i32.add
+ ;; code offset: 0x4c9
+ (local.get $7)
+ ;; code offset: 0x4cb
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0x4d0
+ (loop $label$15
+ ;; code offset: 0x4d4
+ (local.set $0
+ ;; code offset: 0x4d2
+ (i32.const 0)
+ )
+ ;; code offset: 0x4db
+ (local.set $8
+ ;; code offset: 0x4d8
+ (i32.load
+ ;; code offset: 0x4d6
+ (local.get $1)
+ )
+ )
+ ;; code offset: 0x4dd
+ (block $label$16
+ ;; code offset: 0x4e4
+ (br_if $label$16
+ ;; code offset: 0x4e3
+ (i32.le_s
+ ;; code offset: 0x4df
+ (local.get $6)
+ ;; code offset: 0x4e1
+ (i32.const 0)
+ )
+ )
+ ;; code offset: 0x4e6
+ (loop $label$17
+ ;; code offset: 0x500
+ (i32.store
+ ;; code offset: 0x4ef
+ (i32.add
+ ;; code offset: 0x4e8
+ (local.get $1)
+ ;; code offset: 0x4ee
+ (i32.shl
+ ;; code offset: 0x4ea
+ (local.get $0)
+ ;; code offset: 0x4ec
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x4fd
+ (i32.load
+ ;; code offset: 0x4fc
+ (i32.add
+ ;; code offset: 0x4f0
+ (local.get $1)
+ ;; code offset: 0x4fb
+ (i32.shl
+ ;; code offset: 0x4f7
+ (local.tee $0
+ ;; code offset: 0x4f6
+ (i32.add
+ ;; code offset: 0x4f2
+ (local.get $0)
+ ;; code offset: 0x4f4
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x4f9
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ ;; code offset: 0x508
+ (br_if $label$17
+ ;; code offset: 0x507
+ (i32.ne
+ ;; code offset: 0x503
+ (local.get $0)
+ ;; code offset: 0x505
+ (local.get $6)
+ )
+ )
+ )
+ ;; code offset: 0x50d
+ (local.set $0
+ ;; code offset: 0x50b
+ (local.get $6)
+ )
+ )
+ ;; code offset: 0x51a
+ (i32.store
+ ;; code offset: 0x517
+ (i32.add
+ ;; code offset: 0x510
+ (local.get $1)
+ ;; code offset: 0x516
+ (i32.shl
+ ;; code offset: 0x512
+ (local.get $0)
+ ;; code offset: 0x514
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x518
+ (local.get $8)
+ )
+ ;; code offset: 0x531
+ (i32.store
+ ;; code offset: 0x525
+ (local.tee $0
+ ;; code offset: 0x524
+ (i32.add
+ ;; code offset: 0x51d
+ (local.get $5)
+ ;; code offset: 0x523
+ (i32.shl
+ ;; code offset: 0x51f
+ (local.get $6)
+ ;; code offset: 0x521
+ (i32.const 2)
+ )
+ )
+ )
+ ;; code offset: 0x530
+ (i32.add
+ ;; code offset: 0x52c
+ (local.tee $0
+ ;; code offset: 0x529
+ (i32.load
+ ;; code offset: 0x527
+ (local.get $0)
+ )
+ )
+ ;; code offset: 0x52e
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0x534
+ (block $label$18
+ ;; code offset: 0x53b
+ (br_if $label$18
+ ;; code offset: 0x53a
+ (i32.gt_s
+ ;; code offset: 0x536
+ (local.get $0)
+ ;; code offset: 0x538
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x547
+ (br_if $label$15
+ ;; code offset: 0x546
+ (i32.ne
+ ;; code offset: 0x542
+ (local.tee $6
+ ;; code offset: 0x541
+ (i32.add
+ ;; code offset: 0x53d
+ (local.get $6)
+ ;; code offset: 0x53f
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x544
+ (local.get $4)
+ )
+ )
+ ;; code offset: 0x549
+ (br $label$6)
+ )
+ )
+ ;; code offset: 0x550
+ (br_if $label$6
+ ;; code offset: 0x54f
+ (i32.eqz
+ ;; code offset: 0x54d
+ (local.get $7)
+ )
+ )
+ ;; code offset: 0x552
+ (br $label$11)
+ )
+ )
+ ;; code offset: 0x558
+ (loop $label$19
+ ;; code offset: 0x55e
+ (drop
+ ;; code offset: 0x55c
+ (call $putchar
+ ;; code offset: 0x55a
+ (i32.const 10)
+ )
+ )
+ ;; code offset: 0x55f
+ (block $label$20
+ ;; code offset: 0x566
+ (br_if $label$20
+ ;; code offset: 0x565
+ (i32.le_s
+ ;; code offset: 0x561
+ (local.get $6)
+ ;; code offset: 0x563
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x568
+ (loop $label$21
+ ;; code offset: 0x579
+ (i32.store
+ ;; code offset: 0x576
+ (i32.add
+ ;; code offset: 0x56a
+ (local.get $5)
+ ;; code offset: 0x575
+ (i32.shl
+ ;; code offset: 0x571
+ (local.tee $0
+ ;; code offset: 0x570
+ (i32.add
+ ;; code offset: 0x56c
+ (local.get $6)
+ ;; code offset: 0x56e
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0x573
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x577
+ (local.get $6)
+ )
+ ;; code offset: 0x581
+ (local.set $8
+ ;; code offset: 0x580
+ (i32.gt_s
+ ;; code offset: 0x57c
+ (local.get $6)
+ ;; code offset: 0x57e
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x585
+ (local.set $6
+ ;; code offset: 0x583
+ (local.get $0)
+ )
+ ;; code offset: 0x589
+ (br_if $label$21
+ ;; code offset: 0x587
+ (local.get $8)
+ )
+ )
+ )
+ ;; code offset: 0x592
+ (br_if $label$6
+ ;; code offset: 0x591
+ (i32.eq
+ ;; code offset: 0x58d
+ (local.get $6)
+ ;; code offset: 0x58f
+ (local.get $4)
+ )
+ )
+ ;; code offset: 0x599
+ (local.set $7
+ ;; code offset: 0x598
+ (i32.add
+ ;; code offset: 0x594
+ (local.get $7)
+ ;; code offset: 0x596
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0x59b
+ (loop $label$22
+ ;; code offset: 0x5a2
+ (local.set $8
+ ;; code offset: 0x59f
+ (i32.load
+ ;; code offset: 0x59d
+ (local.get $1)
+ )
+ )
+ ;; code offset: 0x5a6
+ (local.set $0
+ ;; code offset: 0x5a4
+ (i32.const 0)
+ )
+ ;; code offset: 0x5a8
+ (block $label$23
+ ;; code offset: 0x5af
+ (br_if $label$23
+ ;; code offset: 0x5ae
+ (i32.lt_s
+ ;; code offset: 0x5aa
+ (local.get $6)
+ ;; code offset: 0x5ac
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x5b1
+ (loop $label$24
+ ;; code offset: 0x5cb
+ (i32.store
+ ;; code offset: 0x5ba
+ (i32.add
+ ;; code offset: 0x5b3
+ (local.get $1)
+ ;; code offset: 0x5b9
+ (i32.shl
+ ;; code offset: 0x5b5
+ (local.get $0)
+ ;; code offset: 0x5b7
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x5c8
+ (i32.load
+ ;; code offset: 0x5c7
+ (i32.add
+ ;; code offset: 0x5bb
+ (local.get $1)
+ ;; code offset: 0x5c6
+ (i32.shl
+ ;; code offset: 0x5c2
+ (local.tee $0
+ ;; code offset: 0x5c1
+ (i32.add
+ ;; code offset: 0x5bd
+ (local.get $0)
+ ;; code offset: 0x5bf
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x5c4
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ ;; code offset: 0x5d3
+ (br_if $label$24
+ ;; code offset: 0x5d2
+ (i32.ne
+ ;; code offset: 0x5ce
+ (local.get $0)
+ ;; code offset: 0x5d0
+ (local.get $6)
+ )
+ )
+ )
+ ;; code offset: 0x5d8
+ (local.set $0
+ ;; code offset: 0x5d6
+ (local.get $6)
+ )
+ )
+ ;; code offset: 0x5e5
+ (i32.store
+ ;; code offset: 0x5e2
+ (i32.add
+ ;; code offset: 0x5db
+ (local.get $1)
+ ;; code offset: 0x5e1
+ (i32.shl
+ ;; code offset: 0x5dd
+ (local.get $0)
+ ;; code offset: 0x5df
+ (i32.const 2)
+ )
+ )
+ ;; code offset: 0x5e3
+ (local.get $8)
+ )
+ ;; code offset: 0x5fc
+ (i32.store
+ ;; code offset: 0x5f0
+ (local.tee $0
+ ;; code offset: 0x5ef
+ (i32.add
+ ;; code offset: 0x5e8
+ (local.get $5)
+ ;; code offset: 0x5ee
+ (i32.shl
+ ;; code offset: 0x5ea
+ (local.get $6)
+ ;; code offset: 0x5ec
+ (i32.const 2)
+ )
+ )
+ )
+ ;; code offset: 0x5fb
+ (i32.add
+ ;; code offset: 0x5f7
+ (local.tee $0
+ ;; code offset: 0x5f4
+ (i32.load
+ ;; code offset: 0x5f2
+ (local.get $0)
+ )
+ )
+ ;; code offset: 0x5f9
+ (i32.const -1)
+ )
+ )
+ ;; code offset: 0x5ff
+ (block $label$25
+ ;; code offset: 0x606
+ (br_if $label$25
+ ;; code offset: 0x605
+ (i32.gt_s
+ ;; code offset: 0x601
+ (local.get $0)
+ ;; code offset: 0x603
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x612
+ (br_if $label$22
+ ;; code offset: 0x611
+ (i32.ne
+ ;; code offset: 0x60d
+ (local.tee $6
+ ;; code offset: 0x60c
+ (i32.add
+ ;; code offset: 0x608
+ (local.get $6)
+ ;; code offset: 0x60a
+ (i32.const 1)
+ )
+ )
+ ;; code offset: 0x60f
+ (local.get $4)
+ )
+ )
+ ;; code offset: 0x614
+ (br $label$6)
+ )
+ )
+ ;; code offset: 0x61a
+ (br_if $label$19
+ ;; code offset: 0x618
+ (local.get $7)
+ )
+ )
+ )
+ ;; code offset: 0x620
+ (call $free
+ ;; code offset: 0x61e
+ (local.get $1)
+ )
+ ;; code offset: 0x624
+ (call $free
+ ;; code offset: 0x622
+ (local.get $5)
+ )
+ ;; code offset: 0x628
+ (local.set $5
+ ;; code offset: 0x626
+ (i32.const 0)
+ )
+ ;; code offset: 0x62c
+ (local.set $0
+ ;; code offset: 0x62a
+ (i32.const 0)
+ )
+ ;; code offset: 0x62e
+ (block $label$26
+ ;; code offset: 0x633
+ (br_if $label$26
+ ;; code offset: 0x632
+ (i32.eqz
+ ;; code offset: 0x630
+ (local.get $3)
+ )
+ )
+ ;; code offset: 0x637
+ (local.set $1
+ ;; code offset: 0x635
+ (local.get $3)
+ )
+ ;; code offset: 0x63b
+ (local.set $0
+ ;; code offset: 0x639
+ (i32.const 0)
+ )
+ ;; code offset: 0x63d
+ (loop $label$27
+ ;; code offset: 0x643
+ (local.set $6
+ ;; code offset: 0x641
+ (call $fannkuch_worker\28void*\29
+ ;; code offset: 0x63f
+ (local.get $1)
+ )
+ )
+ ;; code offset: 0x64a
+ (local.set $3
+ ;; code offset: 0x647
+ (i32.load offset=8
+ ;; code offset: 0x645
+ (local.get $3)
+ )
+ )
+ ;; code offset: 0x64e
+ (call $free
+ ;; code offset: 0x64c
+ (local.get $1)
+ )
+ ;; code offset: 0x65a
+ (local.set $0
+ ;; code offset: 0x659
+ (select
+ ;; code offset: 0x650
+ (local.get $6)
+ ;; code offset: 0x652
+ (local.get $0)
+ ;; code offset: 0x658
+ (i32.lt_s
+ ;; code offset: 0x654
+ (local.get $0)
+ ;; code offset: 0x656
+ (local.get $6)
+ )
+ )
+ )
+ ;; code offset: 0x65e
+ (local.set $1
+ ;; code offset: 0x65c
+ (local.get $3)
+ )
+ ;; code offset: 0x662
+ (br_if $label$27
+ ;; code offset: 0x660
+ (local.get $3)
+ )
+ )
+ )
+ ;; code offset: 0x66a
+ (i32.store offset=4
+ ;; code offset: 0x666
+ (local.get $2)
+ ;; code offset: 0x668
+ (local.get $0)
+ )
+ ;; code offset: 0x671
+ (i32.store
+ ;; code offset: 0x66d
+ (local.get $2)
+ ;; code offset: 0x66f
+ (local.get $4)
+ )
+ ;; code offset: 0x67b
+ (drop
+ ;; code offset: 0x679
+ (call $iprintf
+ ;; code offset: 0x674
+ (i32.const 1024)
+ ;; code offset: 0x677
+ (local.get $2)
+ )
+ )
+ )
+ ;; code offset: 0x682
+ (global.set $global$0
+ ;; code offset: 0x681
+ (i32.add
+ ;; code offset: 0x67d
+ (local.get $2)
+ ;; code offset: 0x67f
+ (i32.const 32)
+ )
+ )
+ ;; code offset: 0x684
+ (local.get $5)
+ )
+ ;; custom section ".debug_info", size 812
+ ;; custom section ".debug_loc", size 345
+ ;; custom section ".debug_ranges", size 88
+ ;; custom section ".debug_abbrev", size 352
+ ;; custom section ".debug_line", size 4227
+ ;; custom section ".debug_str", size 475
+ ;; custom section "producers", size 180
+)
diff --git a/test/passes/fannkuch3.passes b/test/passes/fannkuch3.passes
new file mode 100644
index 000000000..edbfb02ae
--- /dev/null
+++ b/test/passes/fannkuch3.passes
@@ -0,0 +1 @@
+dwarfdump_roundtrip_dwarfdump_g
diff --git a/test/passes/fannkuch3.wasm b/test/passes/fannkuch3.wasm
new file mode 100644
index 000000000..9d450e9ee
--- /dev/null
+++ b/test/passes/fannkuch3.wasm
Binary files differ
diff --git a/test/passes/fib2.bin.txt b/test/passes/fib2.bin.txt
new file mode 100644
index 000000000..40730ad75
--- /dev/null
+++ b/test/passes/fib2.bin.txt
@@ -0,0 +1,360 @@
+DWARF debug info
+================
+
+Contains section .debug_info (133 bytes)
+Contains section .debug_loc (63 bytes)
+Contains section .debug_abbrev (96 bytes)
+Contains section .debug_line (80 bytes)
+Contains section .debug_str (217 bytes)
+
+.debug_abbrev contents:
+Abbrev table for offset: 0x00000000
+[1] DW_TAG_compile_unit DW_CHILDREN_yes
+ DW_AT_producer DW_FORM_strp
+ DW_AT_language DW_FORM_data2
+ DW_AT_name DW_FORM_strp
+ DW_AT_stmt_list DW_FORM_sec_offset
+ DW_AT_comp_dir DW_FORM_strp
+ DW_AT_low_pc DW_FORM_addr
+ DW_AT_high_pc DW_FORM_data4
+
+[2] DW_TAG_subprogram DW_CHILDREN_yes
+ DW_AT_low_pc DW_FORM_addr
+ DW_AT_high_pc DW_FORM_data4
+ DW_AT_GNU_all_call_sites DW_FORM_flag_present
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_prototyped DW_FORM_flag_present
+ DW_AT_type DW_FORM_ref4
+ DW_AT_external DW_FORM_flag_present
+
+[3] DW_TAG_formal_parameter DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+
+[4] DW_TAG_variable DW_CHILDREN_no
+ DW_AT_location DW_FORM_sec_offset
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+
+[5] DW_TAG_variable DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+
+[6] DW_TAG_base_type DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_encoding DW_FORM_data1
+ DW_AT_byte_size DW_FORM_data1
+
+
+.debug_info contents:
+0x00000000: Compile Unit: length = 0x00000081 version = 0x0004 abbr_offset = 0x0000 addr_size = 0x04 (next unit at 0x00000085)
+
+0x0000000b: DW_TAG_compile_unit [1] *
+ DW_AT_producer [DW_FORM_strp] ( .debug_str[0x00000000] = "clang version 10.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project a7bdab2e9d59ba0fdf06390f4ddadfd00fe50f2e)")
+ DW_AT_language [DW_FORM_data2] (DW_LANG_C99)
+ DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000095] = "fib2.c")
+ DW_AT_stmt_list [DW_FORM_sec_offset] (0x00000000)
+ DW_AT_comp_dir [DW_FORM_strp] ( .debug_str[0x0000009c] = "/usr/local/google/home/azakai/Dev/binaryen")
+ DW_AT_low_pc [DW_FORM_addr] (0x0000000000000002)
+ DW_AT_high_pc [DW_FORM_data4] (0x00000035)
+
+.debug_loc contents:
+0x00000000:
+ [0x00000007, 0x00000010): DW_OP_consts +0, DW_OP_stack_value
+
+0x00000015:
+ [0x00000007, 0x00000010): DW_OP_consts +1, DW_OP_stack_value
+
+0x0000002a:
+ [0x00000007, 0x00000010): DW_OP_consts +0, DW_OP_stack_value
+
+.debug_line contents:
+debug_line[0x00000000]
+Line table prologue:
+ total_length: 0x0000004c
+ version: 4
+ prologue_length: 0x0000001e
+ min_inst_length: 1
+max_ops_per_inst: 1
+ default_is_stmt: 1
+ line_base: -5
+ line_range: 14
+ opcode_base: 13
+standard_opcode_lengths[DW_LNS_copy] = 0
+standard_opcode_lengths[DW_LNS_advance_pc] = 1
+standard_opcode_lengths[DW_LNS_advance_line] = 1
+standard_opcode_lengths[DW_LNS_set_file] = 1
+standard_opcode_lengths[DW_LNS_set_column] = 1
+standard_opcode_lengths[DW_LNS_negate_stmt] = 0
+standard_opcode_lengths[DW_LNS_set_basic_block] = 0
+standard_opcode_lengths[DW_LNS_const_add_pc] = 0
+standard_opcode_lengths[DW_LNS_fixed_advance_pc] = 1
+standard_opcode_lengths[DW_LNS_set_prologue_end] = 0
+standard_opcode_lengths[DW_LNS_set_epilogue_begin] = 0
+standard_opcode_lengths[DW_LNS_set_isa] = 1
+file_names[ 1]:
+ name: "fib2.c"
+ dir_index: 0
+ mod_time: 0x00000000
+ length: 0x00000000
+0x00000028: 00 DW_LNE_set_address (0x0000000000000002)
+0x0000002f: 13 address += 0, line += 1
+ 0x0000000000000002 2 0 1 0 0 is_stmt
+
+0x00000030: 05 DW_LNS_set_column (17)
+0x00000032: 0a DW_LNS_set_prologue_end
+0x00000033: 92 address += 9, line += 2
+ 0x000000000000000b 4 17 1 0 0 is_stmt prologue_end
+
+0x00000034: 05 DW_LNS_set_column (3)
+0x00000036: 06 DW_LNS_negate_stmt
+0x00000037: 58 address += 5, line += 0
+ 0x0000000000000010 4 3 1 0 0
+
+0x00000038: 2a address += 2, line += -4
+ 0x0000000000000012 0 3 1 0 0
+
+0x00000039: 05 DW_LNS_set_column (7)
+0x0000003b: 06 DW_LNS_negate_stmt
+0x0000003c: c1 address += 12, line += 7
+ 0x000000000000001e 7 7 1 0 0 is_stmt
+
+0x0000003d: 06 DW_LNS_negate_stmt
+0x0000003e: 03 DW_LNS_advance_line (0)
+0x00000040: 74 address += 7, line += 0
+ 0x0000000000000025 0 7 1 0 0
+
+0x00000041: 05 DW_LNS_set_column (17)
+0x00000043: 06 DW_LNS_negate_stmt
+0x00000044: 4e address += 4, line += 4
+ 0x0000000000000029 4 17 1 0 0 is_stmt
+
+0x00000045: 05 DW_LNS_set_column (3)
+0x00000047: 06 DW_LNS_negate_stmt
+0x00000048: 58 address += 5, line += 0
+ 0x000000000000002e 4 3 1 0 0
+
+0x00000049: 06 DW_LNS_negate_stmt
+0x0000004a: 6b address += 6, line += 5
+ 0x0000000000000034 9 3 1 0 0 is_stmt
+
+0x0000004b: 02 DW_LNS_advance_pc (3)
+0x0000004d: 00 DW_LNE_end_sequence
+ 0x0000000000000037 9 3 1 0 0 is_stmt end_sequence
+
+
+.debug_str contents:
+0x00000000: "clang version 10.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project a7bdab2e9d59ba0fdf06390f4ddadfd00fe50f2e)"
+0x00000095: "fib2.c"
+0x0000009c: "/usr/local/google/home/azakai/Dev/binaryen"
+0x000000c7: "fib"
+0x000000cb: "int"
+0x000000cf: "n"
+0x000000d1: "a"
+0x000000d3: "b"
+0x000000d5: "i"
+0x000000d7: "t"
+DWARF debug info
+================
+
+Contains section .debug_info (133 bytes)
+Contains section .debug_loc (63 bytes)
+Contains section .debug_abbrev (95 bytes)
+Contains section .debug_line (71 bytes)
+Contains section .debug_str (217 bytes)
+
+.debug_abbrev contents:
+Abbrev table for offset: 0x00000000
+[1] DW_TAG_compile_unit DW_CHILDREN_yes
+ DW_AT_producer DW_FORM_strp
+ DW_AT_language DW_FORM_data2
+ DW_AT_name DW_FORM_strp
+ DW_AT_stmt_list DW_FORM_sec_offset
+ DW_AT_comp_dir DW_FORM_strp
+ DW_AT_low_pc DW_FORM_addr
+ DW_AT_high_pc DW_FORM_data4
+
+[2] DW_TAG_subprogram DW_CHILDREN_yes
+ DW_AT_low_pc DW_FORM_addr
+ DW_AT_high_pc DW_FORM_data4
+ DW_AT_GNU_all_call_sites DW_FORM_flag_present
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_prototyped DW_FORM_flag_present
+ DW_AT_type DW_FORM_ref4
+ DW_AT_external DW_FORM_flag_present
+
+[3] DW_TAG_formal_parameter DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+
+[4] DW_TAG_variable DW_CHILDREN_no
+ DW_AT_location DW_FORM_sec_offset
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+
+[5] DW_TAG_variable DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_decl_file DW_FORM_data1
+ DW_AT_decl_line DW_FORM_data1
+ DW_AT_type DW_FORM_ref4
+
+[6] DW_TAG_base_type DW_CHILDREN_no
+ DW_AT_name DW_FORM_strp
+ DW_AT_encoding DW_FORM_data1
+ DW_AT_byte_size DW_FORM_data1
+
+
+.debug_info contents:
+0x00000000: Compile Unit: length = 0x00000081 version = 0x0004 abbr_offset = 0x0000 addr_size = 0x04 (next unit at 0x00000085)
+
+0x0000000b: DW_TAG_compile_unit [1] *
+ DW_AT_producer [DW_FORM_strp] ( .debug_str[0x00000000] = "clang version 10.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project a7bdab2e9d59ba0fdf06390f4ddadfd00fe50f2e)")
+ DW_AT_language [DW_FORM_data2] (DW_LANG_C99)
+ DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000095] = "fib2.c")
+ DW_AT_stmt_list [DW_FORM_sec_offset] (0x00000000)
+ DW_AT_comp_dir [DW_FORM_strp] ( .debug_str[0x0000009c] = "/usr/local/google/home/azakai/Dev/binaryen")
+ DW_AT_low_pc [DW_FORM_addr] (0x0000000000000002)
+ DW_AT_high_pc [DW_FORM_data4] (0x00000035)
+
+.debug_loc contents:
+0x00000000:
+ [0x00000007, 0x00000010): DW_OP_consts +0, DW_OP_stack_value
+
+0x00000015:
+ [0x00000007, 0x00000010): DW_OP_consts +1, DW_OP_stack_value
+
+0x0000002a:
+ [0x00000007, 0x00000010): DW_OP_consts +0, DW_OP_stack_value
+
+.debug_line contents:
+debug_line[0x00000000]
+Line table prologue:
+ total_length: 0x00000043
+ version: 4
+ prologue_length: 0x0000001e
+ min_inst_length: 1
+max_ops_per_inst: 1
+ default_is_stmt: 1
+ line_base: -5
+ line_range: 14
+ opcode_base: 13
+standard_opcode_lengths[DW_LNS_copy] = 0
+standard_opcode_lengths[DW_LNS_advance_pc] = 1
+standard_opcode_lengths[DW_LNS_advance_line] = 1
+standard_opcode_lengths[DW_LNS_set_file] = 1
+standard_opcode_lengths[DW_LNS_set_column] = 1
+standard_opcode_lengths[DW_LNS_negate_stmt] = 0
+standard_opcode_lengths[DW_LNS_set_basic_block] = 0
+standard_opcode_lengths[DW_LNS_const_add_pc] = 0
+standard_opcode_lengths[DW_LNS_fixed_advance_pc] = 1
+standard_opcode_lengths[DW_LNS_set_prologue_end] = 0
+standard_opcode_lengths[DW_LNS_set_epilogue_begin] = 0
+standard_opcode_lengths[DW_LNS_set_isa] = 1
+file_names[ 1]:
+ name: "fib2.c"
+ dir_index: 0
+ mod_time: 0x00000000
+ length: 0x00000000
+0x00000028: 00 DW_LNE_set_address (0x000000000000000b)
+0x0000002f: 03 DW_LNS_advance_line (4)
+0x00000031: 05 DW_LNS_set_column (17)
+0x00000033: 0a DW_LNS_set_prologue_end
+0x00000034: 00 DW_LNE_end_sequence
+ 0x000000000000000b 4 17 1 0 0 is_stmt end_sequence
+
+0x00000037: 00 DW_LNE_set_address (0x0000000000000010)
+0x0000003e: 03 DW_LNS_advance_line (4)
+0x00000040: 05 DW_LNS_set_column (3)
+0x00000042: 06 DW_LNS_negate_stmt
+0x00000043: 0a DW_LNS_set_prologue_end
+0x00000044: 00 DW_LNE_end_sequence
+ 0x0000000000000010 4 3 1 0 0 end_sequence
+
+
+.debug_str contents:
+0x00000000: "clang version 10.0.0 (/b/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project a7bdab2e9d59ba0fdf06390f4ddadfd00fe50f2e)"
+0x00000095: "fib2.c"
+0x0000009c: "/usr/local/google/home/azakai/Dev/binaryen"
+0x000000c7: "fib"
+0x000000cb: "int"
+0x000000cf: "n"
+0x000000d1: "a"
+0x000000d3: "b"
+0x000000d5: "i"
+0x000000d7: "t"
+(module
+ (type $i32_=>_i32 (func (param i32) (result i32)))
+ (memory $ 2)
+ (export "memory" (memory $0))
+ (export "fib" (func $0))
+ (func $0 (; 0 ;) (param $0 i32) (result i32)
+ (local $1 i32)
+ (local $2 i32)
+ ;; code offset: 0x7
+ (local.set $1
+ ;; code offset: 0x5
+ (i32.const 1)
+ )
+ ;; code offset: 0xe
+ (if
+ ;; code offset: 0xd
+ (i32.ge_s
+ ;; code offset: 0x9
+ (local.get $0)
+ ;; code offset: 0xb
+ (i32.const 1)
+ )
+ ;; code offset: 0x10
+ (loop $label$2
+ ;; code offset: 0x19
+ (local.set $1
+ ;; code offset: 0x18
+ (i32.add
+ ;; code offset: 0x12
+ (local.get $2)
+ ;; code offset: 0x16
+ (local.tee $2
+ ;; code offset: 0x14
+ (local.get $1)
+ )
+ )
+ )
+ ;; code offset: 0x22
+ (br_if $label$2
+ ;; code offset: 0x20
+ (local.tee $0
+ ;; code offset: 0x1f
+ (i32.add
+ ;; code offset: 0x1b
+ (local.get $0)
+ ;; code offset: 0x1d
+ (i32.const -1)
+ )
+ )
+ )
+ )
+ )
+ ;; code offset: 0x26
+ (local.get $1)
+ )
+ ;; custom section ".debug_info", size 133
+ ;; custom section ".debug_loc", size 63
+ ;; custom section ".debug_abbrev", size 95
+ ;; custom section ".debug_line", size 71
+ ;; custom section ".debug_str", size 217
+ ;; custom section "producers", size 172
+)
diff --git a/test/passes/fib2.passes b/test/passes/fib2.passes
new file mode 100644
index 000000000..edbfb02ae
--- /dev/null
+++ b/test/passes/fib2.passes
@@ -0,0 +1 @@
+dwarfdump_roundtrip_dwarfdump_g
diff --git a/test/passes/fib2.wasm b/test/passes/fib2.wasm
new file mode 100644
index 000000000..36fd0eed2
--- /dev/null
+++ b/test/passes/fib2.wasm
Binary files differ
diff --git a/test/passes/print_g.bin.txt b/test/passes/print_g.bin.txt
index f3a91ae98..f41030743 100644
--- a/test/passes/print_g.bin.txt
+++ b/test/passes/print_g.bin.txt
@@ -19,107 +19,107 @@
(nop)
)
(func $main (; 1 ;) (param $0 i32) (param $1 i32) (result i32)
- ;; code offset: 0x16
+ ;; code offset: 0x10
(if
- ;; code offset: 0x15
+ ;; code offset: 0xf
(i32.ne
- ;; code offset: 0x12
+ ;; code offset: 0xc
(i32.rem_s
;; code offset: 0x7
(local.get $0)
;; code offset: 0x9
(i32.const 120)
)
- ;; code offset: 0x13
+ ;; code offset: 0xd
(i32.const 55)
)
- ;; code offset: 0x18
+ ;; code offset: 0x12
(loop $label$2
- ;; code offset: 0x46
+ ;; code offset: 0x2e
(br_if $label$2
- ;; code offset: 0x45
+ ;; code offset: 0x2d
(i32.ne
- ;; code offset: 0x42
+ ;; code offset: 0x2a
(i32.rem_s
- ;; code offset: 0x37
+ ;; code offset: 0x25
(local.tee $0
- ;; code offset: 0x36
+ ;; code offset: 0x24
(i32.add
- ;; code offset: 0x33
+ ;; code offset: 0x21
(i32.add
- ;; code offset: 0x27
+ ;; code offset: 0x1b
(i32.mul
- ;; code offset: 0x24
+ ;; code offset: 0x18
(i32.mul
- ;; code offset: 0x20
+ ;; code offset: 0x14
(local.get $0)
- ;; code offset: 0x22
+ ;; code offset: 0x16
(local.get $0)
)
- ;; code offset: 0x25
+ ;; code offset: 0x19
(local.get $0)
)
- ;; code offset: 0x32
+ ;; code offset: 0x20
(i32.div_s
- ;; code offset: 0x28
+ ;; code offset: 0x1c
(local.get $0)
- ;; code offset: 0x30
+ ;; code offset: 0x1e
(i32.const -2)
)
)
- ;; code offset: 0x34
+ ;; code offset: 0x22
(i32.const 13)
)
)
- ;; code offset: 0x39
+ ;; code offset: 0x27
(i32.const 120)
)
- ;; code offset: 0x43
+ ;; code offset: 0x2b
(i32.const 55)
)
)
)
)
- ;; code offset: 0x50
+ ;; code offset: 0x32
(local.get $0)
)
(func $stackSave (; 2 ;) (result i32)
- ;; code offset: 0x55
+ ;; code offset: 0x37
(global.get $global$0)
)
(func $stackAlloc (; 3 ;) (param $0 i32) (result i32)
- ;; code offset: 0x70
+ ;; code offset: 0x46
(global.set $global$0
- ;; code offset: 0x68
+ ;; code offset: 0x44
(local.tee $0
- ;; code offset: 0x67
+ ;; code offset: 0x43
(i32.and
- ;; code offset: 0x64
+ ;; code offset: 0x40
(i32.sub
- ;; code offset: 0x60
+ ;; code offset: 0x3c
(global.get $global$0)
- ;; code offset: 0x62
+ ;; code offset: 0x3e
(local.get $0)
)
- ;; code offset: 0x65
+ ;; code offset: 0x41
(i32.const -16)
)
)
)
- ;; code offset: 0x72
+ ;; code offset: 0x48
(local.get $0)
)
(func $stackRestore (; 4 ;) (param $0 i32)
- ;; code offset: 0x79
+ ;; code offset: 0x4f
(global.set $global$0
- ;; code offset: 0x77
+ ;; code offset: 0x4d
(local.get $0)
)
)
(func $__growWasmMemory (; 5 ;) (param $0 i32) (result i32)
- ;; code offset: 0x86
+ ;; code offset: 0x56
(memory.grow
- ;; code offset: 0x84
+ ;; code offset: 0x54
(local.get $0)
)
)
@@ -149,107 +149,107 @@
(nop)
)
(func $main (; 1 ;) (param $0 i32) (param $1 i32) (result i32)
- ;; code offset: 0x16
+ ;; code offset: 0x10
(if
- ;; code offset: 0x15
+ ;; code offset: 0xf
(i32.ne
- ;; code offset: 0x12
+ ;; code offset: 0xc
(i32.rem_s
;; code offset: 0x7
(local.get $0)
;; code offset: 0x9
(i32.const 120)
)
- ;; code offset: 0x13
+ ;; code offset: 0xd
(i32.const 55)
)
- ;; code offset: 0x18
+ ;; code offset: 0x12
(loop $label$2
- ;; code offset: 0x46
+ ;; code offset: 0x2e
(br_if $label$2
- ;; code offset: 0x45
+ ;; code offset: 0x2d
(i32.ne
- ;; code offset: 0x42
+ ;; code offset: 0x2a
(i32.rem_s
- ;; code offset: 0x37
+ ;; code offset: 0x25
(local.tee $0
- ;; code offset: 0x36
+ ;; code offset: 0x24
(i32.add
- ;; code offset: 0x33
+ ;; code offset: 0x21
(i32.add
- ;; code offset: 0x27
+ ;; code offset: 0x1b
(i32.mul
- ;; code offset: 0x24
+ ;; code offset: 0x18
(i32.mul
- ;; code offset: 0x20
+ ;; code offset: 0x14
(local.get $0)
- ;; code offset: 0x22
+ ;; code offset: 0x16
(local.get $0)
)
- ;; code offset: 0x25
+ ;; code offset: 0x19
(local.get $0)
)
- ;; code offset: 0x32
+ ;; code offset: 0x20
(i32.div_s
- ;; code offset: 0x28
+ ;; code offset: 0x1c
(local.get $0)
- ;; code offset: 0x30
+ ;; code offset: 0x1e
(i32.const -2)
)
)
- ;; code offset: 0x34
+ ;; code offset: 0x22
(i32.const 13)
)
)
- ;; code offset: 0x39
+ ;; code offset: 0x27
(i32.const 120)
)
- ;; code offset: 0x43
+ ;; code offset: 0x2b
(i32.const 55)
)
)
)
)
- ;; code offset: 0x50
+ ;; code offset: 0x32
(local.get $0)
)
(func $stackSave (; 2 ;) (result i32)
- ;; code offset: 0x55
+ ;; code offset: 0x37
(global.get $global$0)
)
(func $stackAlloc (; 3 ;) (param $0 i32) (result i32)
- ;; code offset: 0x70
+ ;; code offset: 0x46
(global.set $global$0
- ;; code offset: 0x68
+ ;; code offset: 0x44
(local.tee $0
- ;; code offset: 0x67
+ ;; code offset: 0x43
(i32.and
- ;; code offset: 0x64
+ ;; code offset: 0x40
(i32.sub
- ;; code offset: 0x60
+ ;; code offset: 0x3c
(global.get $global$0)
- ;; code offset: 0x62
+ ;; code offset: 0x3e
(local.get $0)
)
- ;; code offset: 0x65
+ ;; code offset: 0x41
(i32.const -16)
)
)
)
- ;; code offset: 0x72
+ ;; code offset: 0x48
(local.get $0)
)
(func $stackRestore (; 4 ;) (param $0 i32)
- ;; code offset: 0x79
+ ;; code offset: 0x4f
(global.set $global$0
- ;; code offset: 0x77
+ ;; code offset: 0x4d
(local.get $0)
)
)
(func $__growWasmMemory (; 5 ;) (param $0 i32) (result i32)
- ;; code offset: 0x86
+ ;; code offset: 0x56
(memory.grow
- ;; code offset: 0x84
+ ;; code offset: 0x54
(local.get $0)
)
)
diff --git a/third_party/llvm-project/include/llvm/ObjectYAML/DWARFYAML.h b/third_party/llvm-project/include/llvm/ObjectYAML/DWARFYAML.h
index 8ab3de4f1..943868b36 100644
--- a/third_party/llvm-project/include/llvm/ObjectYAML/DWARFYAML.h
+++ b/third_party/llvm-project/include/llvm/ObjectYAML/DWARFYAML.h
@@ -139,7 +139,7 @@ struct LineTable {
uint8_t MinInstLength;
uint8_t MaxOpsPerInst;
uint8_t DefaultIsStmt;
- uint8_t LineBase;
+ int8_t LineBase; // XXX BINARYEN
uint8_t LineRange;
uint8_t OpcodeBase;
std::vector<uint8_t> StandardOpcodeLengths;