diff --git a/CHANGELOG.md b/CHANGELOG.md index f522dd51..1da59cbc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,15 @@ # gdbgui release history -## master -* Add "name" to Threads (new gdb 8.1 feature) (@P4Cu) +## 0.13.0.0 +* Pass arbitrary gdb arguments directly to gdb (also removed `-x` option, which caused major version to change) (#205) * Fix typo in tour (@nkirkby) +* Add "name" to Threads (new gdb 8.1 feature) (@P4Cu) +* Fix crash/black screen from "Python Exception name long is not defined" #212 +* Fix bug when debugging filenames with spaces (Fix Cannot create breakpoint: -break-insert: Garbage following #211") +* Fix empty frame causes the ui to crash/black screen #216 +* Update tour text +* update npm packages; update react to 16.4 +* update prettier rules ## 0.12.0.0 * Add pause button diff --git a/README.md b/README.md index 44166fed..fc5ddaf3 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ A modern, browser-based frontend to gdb (gnu debugger)

-image image image Code style: black code style: prettier

+image image image Code style: black code style: prettier

diff --git a/gdbgui/VERSION.txt b/gdbgui/VERSION.txt index 6ca5e048..b6963e15 100644 --- a/gdbgui/VERSION.txt +++ b/gdbgui/VERSION.txt @@ -1 +1 @@ -0.12.0.0 +0.13.0.0 diff --git a/gdbgui/static/js/build.js b/gdbgui/static/js/build.js index 867825f5..40f7bb7b 100644 --- a/gdbgui/static/js/build.js +++ b/gdbgui/static/js/build.js @@ -3,7 +3,7 @@ object-assign (c) Sindre Sorhus @license MIT -*/var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,i,l=function(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s0&&(e.push([t.make_addrs_into_links_react(a),n.join(" "),r]),o=0,a=u,n=[],r=[]);var c=l.store.get("memory_cache")[u];n.push(c);var _=String.fromCharCode(parseInt(c,16)).replace(/\W/g,".");r.push(i.a.createElement("span",{key:o,className:"memory_char"},_)),o++}return n.length>0&&e.push([t.make_addrs_into_links_react(a),n.join(" "),r]),Object.keys(l.store.get("memory_cache")).length>0&&e.push([i.a.createElement("span",{key:"morebottom",className:"pointer",style:{fontStyle:"italic",fontSize:"0.8em"},onClick:t.click_read_more_memory},"more"),"",""]),i.a.createElement(g,{data:e,header:["address","hex","char"]})}},{key:"render",value:function(){var e={display:"inline",width:"100px",padding:"6px 6px",height:"25px",fontSize:"1em"},n=this.get_memory_component_jsx_content();return i.a.createElement("div",null,i.a.createElement("input",{id:"memory_start_address",className:"form-control",placeholder:"start address (hex)",style:e,value:this.state.start_addr,onKeyUp:t.keypress_on_input,onChange:function(e){l.store.set("start_addr",e.target.value)}}),i.a.createElement("input",{id:"memory_end_address",className:"form-control",placeholder:"end address (hex)",style:e,value:this.state.end_addr,onKeyUp:t.keypress_on_input,onChange:function(e){l.store.set("end_addr",e.target.value)}}),i.a.createElement("input",{id:"memory_bytes_per_line",className:"form-control",placeholder:"bytes per line (dec)",style:e,value:this.state.bytes_per_line,onKeyUp:t.keypress_on_input,onChange:function(e){l.store.set("bytes_per_line",e.target.value)}}),n)}}],[{key:"keypress_on_input",value:function(e){e.keyCode===u.ENTER_BUTTON_NUM&&t.fetch_memory_from_state()}},{key:"set_inputs_from_address",value:function(e){l.store.set("start_addr","0x"+parseInt(e,16).toString(16)),l.store.set("end_addr","0x"+(parseInt(e,16)+t.DEFAULT_ADDRESS_DELTA_BYTES).toString(16)),t.fetch_memory_from_state()}},{key:"get_gdb_commands_from_state",value:function(){var e=parseInt(_.trim(l.store.get("start_addr")),16),n=parseInt(_.trim(l.store.get("end_addr")),16);!window.isNaN(e)&&window.isNaN(n)&&(n=e+t.DEFAULT_ADDRESS_DELTA_BYTES);var r=[];if(_.isInteger(e)&&n){if(e>n)n=e+t.DEFAULT_ADDRESS_DELTA_BYTES,l.store.set("end_addr","0x"+n.toString(16));else if(n-e>t.MAX_ADDRESS_DELTA_BYTES){var o=n;n=e+t.MAX_ADDRESS_DELTA_BYTES,l.store.set("end_addr","0x"+n.toString(16)),Se.add_console_entries("Cannot fetch "+(o-e)+" bytes. Changed end address to "+l.store.get("end_addr")+" since maximum bytes gdbgui allows is "+t.MAX_ADDRESS_DELTA_BYTES+".",u.console_entry_type.STD_ERR)}for(var a=e;a<=n;)r.push("-data-read-memory-bytes 0x"+a.toString(16)+" 1"),a+=1}return window.isNaN(e)||l.store.set("start_addr","0x"+e.toString(16)),window.isNaN(n)||l.store.set("end_addr","0x"+n.toString(16)),r}},{key:"fetch_memory_from_state",value:function(){var e=t.get_gdb_commands_from_state();t.clear_cache(),ve.run_gdb_command(e)}},{key:"click_read_preceding_memory",value:function(){var e=parseInt(_.trim(l.store.get("start_addr")),16),n=3*l.store.get("bytes_per_line");l.store.set("start_addr","0x"+(e-n).toString(16)),t.fetch_memory_from_state()}},{key:"click_read_more_memory",value:function(){var e=parseInt(_.trim(l.store.get("end_addr")),16),n=3*l.store.get("bytes_per_line");l.store.set("end_addr","0x"+(e+n).toString(16)),t.fetch_memory_from_state()}},{key:"make_addrs_into_links_react",value:function(e){var n=e.match(/(0x[\d\w]+)/g);if(e&&n&&n.length){var r=n[0],o=e.slice(0,e.indexOf(r)),a=e.slice(e.indexOf(r)+r.length,e.length),l=a;return a&&(l=t.make_addrs_into_links_react(a)),i.a.createElement(i.a.Fragment,null,o,i.a.createElement(v,{addr:r}),l)}return e}},{key:"add_value_to_cache",value:function(e,t){var n="0x"+parseInt(e,16).toString(16),r=l.store.get("memory_cache");r[n]=t,l.store.set("memory_cache",r)}},{key:"clear_cache",value:function(){l.store.set("memory_cache",{})}}]),t}();k.MAX_ADDRESS_DELTA_BYTES=1e3,k.DEFAULT_ADDRESS_DELTA_BYTES=31,k.DEFAULT_BYTES_PER_LINE=8;var E=k,x={rax:"register a extended (64-bit)",rbx:"register b extended (64-bit)",rcx:"register c extended (64-bit)",rdx:"register d extended (64-bit)",rbp:"base pointer (start of stack) (64-bit)",rsp:"stack pointer (current location in stack, growing downwards) (64-bit)",rsi:"source index (source for data copies) (64-bit)",rdi:"destination index (destination for data copies) (64-bit)",r8:"register 8 (64-bit)",r9:"register 9 (64-bit)",r10:"register 10 (64-bit)",r11:"register 11 (64-bit)",r12:"register 12 (64-bit)",r13:"register 13 (64-bit)",r14:"register 14 (64-bit)",r15:"register 15 (64-bit)",rip:"instruction pointer (points to next instruction to execute) (64-bit)",eflags:"32-bit register used as a collection of bits representing Boolean values to store the results of operations and the state of the processor",cs:"",ss:"",ds:"",es:"",fs:"",gs:"",st0:"",st1:"",st2:"",st3:"",st4:"",st5:"",st6:"",st7:"",fctrl:"",fstat:"",ftag:"",fiseg:"",fioff:"",foseg:"",fooff:"",fop:"",xmm0:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm1:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm2:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm3:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm4:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm5:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm6:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm7:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm8:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm9:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm10:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm11:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm12:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm13:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm14:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm15:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",mxcsr:"",ymm0h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm1h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm2h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm3h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm4h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm5h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm6h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm7h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm8h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm9h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm10h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm11h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm12h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm13h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm14h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm15h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm0:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm1:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm2:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm3:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm4:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm5:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm6:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm7:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm8:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm9:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm10:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm11:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm12:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm13:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm14:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm15:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",orig_rax:"",al:"",bl:"",cl:"",dl:"",sil:"",dil:"",bpl:"",spl:"",r8l:"",r9l:"",r10l:"",r11l:"",r12l:"",r13l:"",r14l:"",r15l:"",ah:"",bh:"",ch:"",dh:"",ax:"lower 16-bits of eax (accumulator register, used in arithmetic operations)",bx:"lower 16-bits of ebx (base register)",cx:"lower 16-bits of ecx (counter register, used in shift/rotate instructions and loops)",dx:"lower 16-bits of edx (data register, used in arithmetic and I/O)",si:"lower 16-bits of esi (source index register)",di:"lower 16-bits of edi (destination index register)",bp:"lower 16-bits of ebp (base pointer register, points to base of stack)",r8w:"",r9w:"",r10w:"",r11w:"",r12w:"",r13w:"",r14w:"",r15w:"",eax:"general purpose 32-bit register",ebx:"general purpose 32-bit register",ecx:"general purpose 32-bit register",edx:"general purpose 32-bit register",esi:"general purpose 32-bit register",edi:"general purpose 32-bit register",ebp:"32-bit base pointer",R0:"Argument1, Return Value (Temporary register)",R1:"Argument2, Second 32-bits if double or 64-bit int return value (Temporary register)",R2:"Arguments (Temporary register)",R3:"Arguments (Temporary register)",R4:"R7 is THUMB frame pointer (Permanent register)",R5:"R7 is THUMB frame pointer (Permanent register)",R6:"R7 is THUMB frame pointer (Permanent register)",R7:"R7 is THUMB frame pointer (Permanent register)",R8:"R7 is THUMB frame pointer (Permanent register)",R9:"R7 is THUMB frame pointer (Permanent register)",R10:"R7 is THUMB frame pointer (Permanent register)",R11:"ARM frame pointer (Permanent register)",R12:"(Temporary register)",R13:"Stack pointer (Permanent register)",R14:"Link register (Permanent register)",R15:"Program counter",s0:"VFP single-precision (Temporary register)",s1:"VFP single-precision (Temporary register)",s2:"VFP single-precision (Temporary register)",s3:"VFP single-precision (Temporary register)",s4:"VFP single-precision (Temporary register)",s5:"VFP single-precision (Temporary register)",s6:"VFP single-precision (Temporary register)",s7:"VFP single-precision (Temporary register)",s8:"VFP single-precision (Temporary register)",s9:"VFP single-precision (Temporary register)",s10:"VFP single-precision (Temporary register)",s11:"VFP single-precision (Temporary register)",s12:"VFP single-precision (Temporary register)",s13:"VFP single-precision (Temporary register)",s14:"VFP single-precision (Temporary register)",s15:"VFP single-precision (Temporary register)",s16:"VFP single-precision (Permanent register)",s17:"VFP single-precision (Permanent register)",s18:"VFP single-precision (Permanent register)",s19:"VFP single-precision (Permanent register)",s20:"VFP single-precision (Permanent register)",s21:"VFP single-precision (Permanent register)",s22:"VFP single-precision (Permanent register)",s23:"VFP single-precision (Permanent register)",s24:"VFP single-precision (Permanent register)",s25:"VFP single-precision (Permanent register)",s26:"VFP single-precision (Permanent register)",s27:"VFP single-precision (Permanent register)",s28:"VFP single-precision (Permanent register)",s29:"VFP single-precision (Permanent register)",s30:"VFP single-precision (Permanent register)",s31:"VFP single-precision (Permanent register)",d0:"VFP double-precision (Temporary register)",d1:"VFP double-precision (Temporary register)",d2:"VFP double-precision (Temporary register)",d3:"VFP double-precision (Temporary register)",d4:"VFP double-precision (Temporary register)",d5:"VFP double-precision (Temporary register)",d6:"VFP double-precision (Temporary register)",d7:"VFP double-precision (Temporary register)",d8:"VFP double-precision (Permanent register)",d9:"VFP double-precision (Permanent register)",d10:"VFP double-precision (Permanent register)",d11:"VFP double-precision (Permanent register)",d12:"VFP double-precision (Permanent register)",d13:"VFP double-precision (Permanent register)",d14:"VFP double-precision (Permanent register)",d15:"VFP double-precision (Permanent register)",fpsid:"VFP system ID register",fpscr:"VFP status and control register",fpexc:"VFP expception register",wr0:"WMMX SIMD data register",wr1:"WMMX SIMD data register",wr2:"WMMX SIMD data register",wr3:"WMMX SIMD data register",wr4:"WMMX SIMD data register",wr5:"WMMX SIMD data register",wr6:"WMMX SIMD data register",wr7:"WMMX SIMD data register",wr8:"WMMX SIMD data register",wr9:"WMMX SIMD data register",wr10:"WMMX SIMD data register",wr11:"WMMX SIMD data register",wr12:"WMMX SIMD data register",wr13:"WMMX SIMD data register",wr14:"WMMX SIMD data register",wr15:"WMMX SIMD data register",wr16:"WMMX SIMD data register",wc0:"WMMX status and control register",wc1:"WMMX status and control register",wc2:"WMMX status and control register",wc3:"WMMX status and control register",wc4:"WMMX status and control register",wc5:"WMMX status and control register",wc6:"WMMX status and control register",wc7:"WMMX status and control register",wc8:"WMMX status and control register",wc9:"WMMX status and control register",wc10:"WMMX status and control register",wc11:"WMMX status and control register",wc12:"WMMX status and control register",wc13:"WMMX status and control register",wc14:"WMMX status and control register",wc15:"WMMX status and control register",wc16:"WMMX status and control register",wcid:"WMMX coprocessor ID register, synonymous with wc0",wcon:"WMMX control register, synonymous with wc1",wcssf:"WMMX saturation SIMD flags, synonymous with wc2",wcasf:"WMMX saturation SIMD flags, synonymous with wc3",wcgr0:"WMMX control general-purpose register, synonymous with wc8",wcgr1:"WMMX control general-purpose register, synonymous with wc9",wcgr2:"WMMX control general-purpose register, synonymous with wc10",wcgr3:"WMMX control general-purpose register, synonymous with wc11"},S=function(){function e(e,t){for(var n=0;n0&&n>0&&e!==n||0===e&&T<=5)t.clear_register_name_cache(),t.clear_cached_values(),ve.run_gdb_command(t.get_update_cmds());else if(e===n){var r=[],o=l.store.get("register_names"),a=l.store.get("current_register_values"),s=l.store.get("previous_register_values"),c=function(e){var t=o[e],n=_.find(a,function(t){return t.number===e}),l="",u="",c="",d=x[t]||"";if(n){l=n.value;var f=_.find(s,function(t){return t.number===e}),p=void 0,m=!1;f&&(p=f.value),void 0!==p&&l!==p&&(m=!0),0===n.value.indexOf("0x")&&(u=E.make_addrs_into_links_react(l),c=parseInt(n.value,16).toString(10)),m&&(t=i.a.createElement("span",{className:"highlight bold"},t),u=i.a.createElement("span",{className:"highlight bold"},u),c=i.a.createElement("span",{className:"highlight bold"},c))}r.push([t,u,c,d])};for(var d in o)c(d);return i.a.createElement(g,{data:r,header:["name","value (hex)","value (decimal)","description"],style:{fontSize:"0.9em"}})}return i.a.createElement("span",{className:"placeholder"},"no data to display")}}],[{key:"get_update_cmds",value:function(){var e=[];return!0===l.store.get("can_fetch_register_values")?(0===l.store.get("register_names").length&&(T<=5?(clearTimeout(C),T++,e.push(u.IGNORE_ERRORS_TOKEN_STR+"-data-list-register-names")):C=setTimeout(function(){T--},5e3)),e.push(u.IGNORE_ERRORS_TOKEN_STR+"-data-list-register-values x")):t.clear_cached_values(),e}},{key:"cache_register_names",value:function(e){l.store.set("register_names",e.filter(function(e){return e}))}},{key:"clear_register_name_cache",value:function(){l.store.set("register_names",[])}},{key:"clear_cached_values",value:function(){l.store.set("previous_register_values",{}),l.store.set("current_register_values",{})}},{key:"inferior_program_exited",value:function(){t.clear_cached_values()}}]),t}(),N=function(){function e(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:null;l.store.set("tooltip",{hidden:!1,show_for_n_sec:n,node:t,content:e})}},{key:"show_copied_tooltip_on_node",value:function(e){t.show_tooltip_on_node("copied!",e,1)}}]),t}(),I=function(){function e(e,t){for(var n=0;n0&&0!==t.indexOf('"')&&(t='"'+t+'"');var r=[];l.store.get("pretty_print")&&r.push("-enable-pretty-printing");var o=u.CREATE_VAR_STR+"-var-create - * "+t;r.push(o),ve.run_gdb_command(r)}else U._clear_state()},create_variable:function(e,t){U._queue.push({expression:e,expr_type:t}),U._fetch_next_in_queue()},created_variable:function(e){var t=U.expr_being_created;t&&(D.save_new_expression(t,U.expr_type,e.payload),U.expr_being_created=null,D.fetch_and_show_children_for_var(e.payload.name)),U._fetch_complete()},fetch_failed:function(e){"hover"===U.expr_type||Se.add_gdb_response_to_console(e),U._fetch_complete()},_fetch_complete:function(){U._is_fetching=!1,U._clear_state(),U._fetch_next_in_queue()},_clear_state:function(){U._is_fetching=!1}},D=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,i.a.Component),R(t,[{key:"render",value:function(){return"local"===this.props.expr_type?this.get_ul_for_local(this.props.obj):this.props.obj.numchild>0?this.get_ul_for_var_with_children(this.props.expression,this.props.obj,this.props.expr_type,!0):this.get_ul_for_var_without_children(this.props.expression,this.props.obj,this.props.expr_type,!0)}},{key:"get_ul_for_local",value:function(e){var n=e.can_be_expanded,r=_.isString(e.value)?E.make_addrs_into_links_react(e.value):e.value,o=n?function(){return t.create_variable(e.name,"local")}:function(){};return i.a.createElement("div",null,i.a.createElement("span",{onClick:o,className:n?"pointer":""},n?"+":""," ",e.name," "),r,i.a.createElement("span",{className:"var_type"},_.trim(e.type)))}},{key:"get_ul_for_var_with_children",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=void 0;if(t.show_children_in_ui){var a=[];if(t.children.length>0){var l=!0,s=!1,u=void 0;try{for(var c,_=t.children[Symbol.iterator]();!(l=(c=_.next()).done);l=!0){var d=c.value;d.numchild>0?a.push(i.a.createElement("li",{key:d.exp},this.get_ul_for_var_with_children(d.exp,d,n))):a.push(i.a.createElement("li",{key:d.exp},this.get_ul_for_var_without_children(d.exp,d,n)))}}catch(e){s=!0,u=e}finally{try{!l&&_.return&&_.return()}finally{if(s)throw u}}}o=i.a.createElement("ul",{key:t.exp},a)}else o="";var f=t.show_children_in_ui?"-":"+";return this._get_ul_for_var(e,t,n,r,f,o,t.numchild)}},{key:"get_ul_for_var_without_children",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return this._get_ul_for_var(e,t,n,r)}},{key:"_get_ul_for_var",value:function(e,n,r,o){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"",s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,u={fontSize:"0.8em",paddingLeft:"5px"},c=o&&"expr"===r?i.a.createElement("span",{style:u,className:"glyphicon glyphicon-trash pointer",onClick:function(){return t.delete_gdb_variable(n.name)}}):"",d=s>0,f=d&&("expr"===r||"local"===r)?i.a.createElement("span",{style:u,className:"glyphicon glyphicon-tree-deciduous pointer",onClick:function(){return t.click_draw_tree_gdb_variable(n.name)}}):"",p=d?"pointer":"",m="",h="",g=d?function(){return t.click_toggle_children_visibility(n.name)}:function(){};if(n.can_plot&&n.show_plot){var b=n.dom_id_for_plot;h=i.a.createElement("span",{style:u,className:"pointer glyphicon glyphicon-ban-circle",onClick:function(){return t.click_toggle_plot(n.name)},title:"remove x/y plot"}),m=i.a.createElement("div",{id:b,className:"plot"})}else n.can_plot&&!n.show_plot&&(h=i.a.createElement("span",{style:u,className:"glyphicon glyphicon glyphicon-equalizer pointer",onClick:function(){return t.click_toggle_plot(n.name)},title:"show x/y plot"}));return i.a.createElement("ul",{key:e,className:"varUL"},i.a.createElement("li",{className:"varLI"},i.a.createElement("span",{className:p,onClick:g},a," ",e," "),t._get_value_jsx(n),i.a.createElement("span",{className:"var_type"},_.trim(n.type)||""),i.a.createElement("div",{className:"right_help_icon_show_on_hover"},i.a.createElement(j,{content:t._get_full_path(n)}),":",f,h,c),m),l)}}],[{key:"_get_value_jsx",value:function(e){return e.is_int?i.a.createElement("div",{className:"inline"},i.a.createElement("span",{className:"gdbVarValue"},E.make_addrs_into_links_react(e._int_value_to_str_in_radix),i.a.createElement("button",{className:"btn btn-default btn-xs btn-radix",onClick:function(){t.change_radix(e)},title:"click to change radix",style:{fontSize:"60%"}},"base ",e._radix))):_.isString(e.value)?E.make_addrs_into_links_react(e.value):e.value}},{key:"change_radix",value:function(e){16===e._radix?e._radix=2:e._radix+=2,t._update_radix_values(e),l.store.set("expressions",l.store.get("expressions"))}},{key:"_get_full_path",value:function(e){if(!e)return"";function t(e,t){var n=t.expression||t.exp;return"public"===n||"private"===n||"protected"===n?e:e?n+"."+e:n}for(var n=t("",e),r=e.parent,o=0;r;)if(n=t(n,r),r=r.parent,(o+=1)>100){console.warn("exceeded maximum depth, breaking while loop");break}return n}},{key:"create_variable",value:function(e,t){U.create_variable(e,t)}},{key:"gdb_created_root_variable",value:function(e){U.created_variable(e)}},{key:"gdb_variable_fetch_failed",value:function(e){U.fetch_failed(e)}},{key:"gdb_created_children_variables",value:function(e){var n=M.expr_gdb_parent_var_currently_fetching_children;M.fetch_complete();var r=l.store.get("expressions"),o=t.get_obj_from_gdb_var_name(r,n);if(o){var a=e.payload.children.map(function(e){return t.prepare_gdb_obj_for_storage(e,o)});o.children=a,o.numchild=a.length,l.store.set("expressions",r);var i=!0,s=!1,u=void 0;try{for(var c,_=o.children[Symbol.iterator]();!(i=(c=_.next()).done);i=!0){var d=c.value;d.exp.includes("36)&&(console.warn("Got invalid radix. Setting to 10."),e._radix=10),e._int_value_to_str_in_radix=e._int_value_decimal.toString(e._radix),16===e._radix&&(e._int_value_to_str_in_radix="0x"+e._int_value_to_str_in_radix))}},{key:"_make_plot",value:function(e){var t="#"+e.dom_id_for_plot,n=$(t),r=[],o=0,a=!0,i=!1,l=void 0;try{for(var s,u=e.values[Symbol.iterator]();!(a=(s=u.next()).done);a=!0){var c=s.value;r.push([o,c]),o++}}catch(e){i=!0,l=e}finally{try{!a&&u.return&&u.return()}finally{if(i)throw l}}$.plot(n,[{data:r,shadowSize:0,color:"#33cdff"}],{series:{lines:{show:!0},points:{show:!0}},grid:{hoverable:!0,clickable:!1}}),n.bind("plothover",function(e,t,n){if(n){var r=n.datapoint[0],o=n.datapoint[1];$("#plot_coordinate_tooltip").html("("+r+", "+o+")").css({top:n.pageY+5,left:n.pageX+5}).show()}else $("#plot_coordinate_tooltip").hide()})}},{key:"plot_var_and_children",value:function(e){e.show_plot&&t._make_plot(e);var n=!0,r=!1,o=void 0;try{for(var a,i=e.children[Symbol.iterator]();!(n=(a=i.next()).done);n=!0){var l=a.value;t.plot_var_and_children(l)}}catch(e){r=!0,o=e}finally{try{!n&&i.return&&i.return()}finally{if(r)throw o}}}},{key:"fetch_and_show_children_for_var",value:function(e){var n=l.store.get("expressions"),r=t.get_obj_from_gdb_var_name(n,e);r.show_children_in_ui=!0,l.store.set("expressions",n),r.numchild&&0===r.children.length&&M.fetch_children(e,r.expr_type)}},{key:"hide_children_in_ui",value:function(e){var n=l.store.get("expressions"),r=t.get_obj_from_gdb_var_name(n,e);r&&(r.show_children_in_ui=!1,l.store.set("expressions",n))}},{key:"click_toggle_children_visibility",value:function(e){t._toggle_children_visibility(e)}},{key:"_toggle_children_visibility",value:function(e){var n=t.get_obj_from_gdb_var_name(l.store.get("expressions"),e);n?n.show_children_in_ui?t.hide_children_in_ui(e):t.fetch_and_show_children_for_var(e):console.error("developer error - expected to find gdb variable object")}},{key:"click_toggle_plot",value:function(e){var n=l.store.get("expressions"),r=t.get_obj_from_gdb_var_name(n,e);r&&(r.show_plot=!r.show_plot,l.store.set("expressions",n))}},{key:"get_update_cmds",value:function(){function e(t){var n=["-var-update --all-values "+t.name],r=!0,o=!1,a=void 0;try{for(var i,l=t.children[Symbol.iterator]();!(r=(i=l.next()).done);r=!0){var s=i.value;n=n.concat(e(s))}}catch(e){o=!0,a=e}finally{try{!r&&l.return&&l.return()}finally{if(o)throw a}}return n}var t=[],n=!0,r=!1,o=void 0;try{for(var a,i=l.store.get("expressions")[Symbol.iterator]();!(n=(a=i.next()).done);n=!0){var s=a.value;t=t.concat(e(s))}}catch(e){r=!0,o=e}finally{try{!n&&i.return&&i.return()}finally{if(r)throw o}}return t}},{key:"handle_changelist",value:function(e){var n=function(e){var n=l.store.get("expressions"),r=t.get_obj_from_gdb_var_name(n,e.name);if(r){if(1===parseInt(e.has_more)&&"name"in e&&M.fetch_children(e.name,r.expr_type),"new_children"in e){var o=e.new_children.map(function(e){return t.prepare_gdb_obj_for_storage(e,r)});r.children=r.children.concat(o)}r=Object.assign(r,e),t._update_numeric_properties(r),t._update_radix_values(r),r.can_plot&&r.values.push(r._float_value),l.store.set("expressions",n)}},r=!0,o=!1,a=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done);r=!0){n(i.value)}}catch(e){o=!0,a=e}finally{try{!r&&s.return&&s.return()}finally{if(o)throw a}}}},{key:"click_draw_tree_gdb_variable",value:function(e){l.store.set("root_gdb_tree_var",e)}},{key:"delete_gdb_variable",value:function(e){t._delete_local_gdb_var_data(e),ve.run_gdb_command("-var-delete "+e)}},{key:"_delete_local_gdb_var_data",value:function(e){var t=l.store.get("expressions");_.remove(t,function(t){return t.name===e}),l.store.set("expressions",t)}},{key:"save_new_expression",value:function(e,n,r){var o=t.prepare_gdb_obj_for_storage(r,null);o.expression=e;var a=l.store.get("expressions");a.push(o),l.store.set("expressions",a)}},{key:"get_child_with_name",value:function(e,t){var n=!0,r=!1,o=void 0;try{for(var a,i=e[Symbol.iterator]();!(n=(a=i.next()).done);n=!0){var l=a.value;if(l.name===t)return l}}catch(e){r=!0,o=e}finally{try{!n&&i.return&&i.return()}finally{if(r)throw o}}}},{key:"get_root_name_from_gdbvar_name",value:function(e){return _.isString(e)?e.split(".")[0]:""}},{key:"get_child_names_from_gdbvar_name",value:function(e){return _.isString(e)?e.split(".").slice(1,e.length):""}},{key:"get_obj_from_gdb_var_name",value:function(e,n){var r=t.get_root_name_from_gdbvar_name(n),o=t.get_child_names_from_gdbvar_name(n),a=e.filter(function(e){return e.name===r});if(1===a.length){for(var i=a[0],l=r,s=0;s",">"),r=l.store.get("gdb_mi_output");r.length>t.MAX_OUTPUT_ENTRIES;)r.shift();r.push(n),l.store.set("gdb_mi_output",r)}}]),t}();L.MAX_OUTPUT_ENTRIES=500;var z=L,B={persist_value_for_key:function(e){try{var t=l.store.get(e);localStorage.setItem(e,JSON.stringify(t))}catch(e){console.error(e)}},get_table:function(e,t){var n=["2&&void 0!==arguments[2]?arguments[2]:"")+'">'];if(e){n.push(""),n.push("");var r=!0,o=!1,a=void 0;try{for(var i,l=e[Symbol.iterator]();!(r=(i=l.next()).done);r=!0){var s=i.value;n.push("")}}catch(e){o=!0,a=e}finally{try{!r&&l.return&&l.return()}finally{if(o)throw a}}n.push(""),n.push("")}if(t){n.push("");var u=!0,c=!1,_=void 0;try{for(var d,f=t[Symbol.iterator]();!(u=(d=f.next()).done);u=!0){var p=d.value;n.push("");var m=!0,h=!1,g=void 0;try{for(var b,y=p[Symbol.iterator]();!(m=(b=y.next()).done);m=!0){var v=b.value;n.push("")}}catch(e){h=!0,g=e}finally{try{!m&&y.return&&y.return()}finally{if(h)throw g}}n.push("")}}catch(e){c=!0,_=e}finally{try{!u&&f.return&&f.return()}finally{if(c)throw _}}}return n.push(""),n.push("
"+s+"
"+v+"
"),n.join("\n")},escape:function(e){return e.replace(/>/g,">").replace(/").replace(/\\r/g,"").replace(/\\"/g,'"').replace(/\\t/g," ")},get_text_from_html:function(e){var t=document.createElement("DIV");return t.innerHTML=e,t.textContent||t.innerText||""},parse_fullname_and_line:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,n=e.split(":"),r=n[0],o=t;return 2===n.length&&(o=n[1]),[r,parseInt(o)]},string_to_array_safe_quotes:function(e){for(var t=[],n="",r=!1,o=0;ot[n])return!0;return!1}};i.a;var V=void 0;V=debug?console.info:function(){};var W={_is_fetching:!1,_queue:[],_fetch:function(e,t,n){if(G.is_missing_file(e))return console.warn("tried to fetch a file known to be missing "+e),W._is_fetching=!1,void W._fetch_next();_.isString(e)||(console.warn("trying to fetch filename that is not a string",e),G.add_missing_file(e),W._is_fetching=!1,W._fetch_next()),W._is_fetching=!0;var r={start_line:t,end_line:n,path:e,highlight:l.store.get("highlight_source_code")};$.ajax({beforeSend:function(e){e.setRequestHeader("x-csrftoken",initial_data.csrf_token)},url:"/read_file",cache:!1,type:"GET",data:r,success:function(t){t.source_code;var n={},r=t.start_line,o=!0,a=!1,i=void 0;try{for(var l,s=t.source_code_array[Symbol.iterator]();!(o=(l=s.next()).done);o=!0){var u=l.value;n[r]=u,r++}}catch(e){a=!0,i=e}finally{try{!o&&s.return&&s.return()}finally{if(a)throw i}}G.add_source_file_to_cache(e,n,t.last_modified_unix_sec,t.num_lines_in_file)},error:function(t){t.responseJSON&&t.responseJSON.message?Se.add_console_entries(_.escape(t.responseJSON.message),u.console_entry_type.STD_ERR):Se.add_console_entries(t.statusText+" ("+t.status+" error)",u.console_entry_type.STD_ERR),G.add_missing_file(e)},complete:function(){W._is_fetching=!1,W._queue=W._queue.filter(function(t){return t.fullname!==e}),W._fetch_next()}})},_fetch_next:function(){if(!W._is_fetching&&W._queue.length){var e=W._queue.shift();W._fetch(e.fullname,e.start_line,e.end_line)}},fetch_complete:function(){W._is_fetching=!1,W._fetch_next()},fetch:function(e,t,n){t||(t=1,console.warn("expected start line")),n||(n=t,console.warn("expected end line")),G.lines_are_cached(e,t,n)?V("not fetching "+e+":"+t+":"+n+" because it's cached"):(W._queue.push({fullname:e,start_line:t,end_line:n}),W._fetch_next())}},G={warning_shown_for_old_binary:!1,unfetchable_disassembly_addresses:{},disassembly_addr_being_fetched:null,init:function(){l.store.subscribeToKeys(["inferior_program","source_code_selection_state","paused_on_frame","current_assembly_address","disassembly_for_missing_file","highlight_source_code","missing_files","files_being_fetched","gdb_version_array","interpreter","fullname_to_render","line_of_source_to_flash","cached_source_files","max_lines_of_code_to_fetch"],G._store_change_callback)},user_select_file_to_view:function(e,t){l.store.set("source_code_selection_state",u.source_code_selection_states.USER_SELECTION),l.store.set("fullname_to_render",e),l.store.set("line_of_source_to_flash",t),l.store.set("make_current_line_visible",!0),l.store.set("source_code_infinite_scrolling",!1)},_store_change_callback:function(){if(l.store.get("inferior_program")!==u.inferior_states.running){var e=l.store.get("source_code_selection_state"),t=null,n=!1,r=null,o=null,a=l.store.get("paused_on_frame");a&&(o=a.fullname);var i=void 0;e===u.source_code_selection_states.USER_SELECTION?(t=l.store.get("fullname_to_render"),n=!1,r=null,i=parseInt(l.store.get("line_of_source_to_flash"))):e===u.source_code_selection_states.PAUSED_FRAME&&(n=l.store.get("inferior_program")===u.inferior_states.paused,r=l.store.get("current_assembly_address"),t=o,i=parseInt(l.store.get("line_of_source_to_flash")));var s,c,_=l.store.get("source_code_infinite_scrolling"),d=G.assembly_is_cached(t),f=G.is_missing_file(t),p=G.get_start_and_end_lines(t,i,_);s=p.start_line,c=p.end_line,i=p.require_cached_line_num,G.update_source_code_state(t,s,i,c,d,f,n,r)}},get_start_and_end_lines:function(e,t,n){var r=void 0,o=void 0;if(n)r=l.store.get("source_linenum_to_display_start"),o=l.store.get("source_linenum_to_display_end"),t=r;else{var a=G.get_source_file_obj_from_cache(e);t||(t=1),r=Math.max(Math.floor(t-l.store.get("max_lines_of_code_to_fetch")/2),1),o=Math.ceil(r+l.store.get("max_lines_of_code_to_fetch")),a&&(o=Math.ceil(Math.min(o,G.get_num_lines_in_file(e)))),r>o&&(r=Math.floor(Math.max(1,o-l.store.get("max_lines_of_code_to_fetch")))),t=Math.min(t,o)}return{start_line:r,end_line:o,require_cached_line_num:t}},update_source_code_state:function(e,t,n,r,o,a,i,s){var c=u.source_code_states,_=G.line_is_cached(e,n);e&&_?(l.store.set("source_code_state",o?c.ASSM_AND_SOURCE_CACHED:c.SOURCE_CACHED),l.store.set("source_linenum_to_display_start",t),r=Math.min(r,G.get_num_lines_in_file(e)),l.store.set("source_linenum_to_display_end",r)):e&&!a?(l.store.set("source_code_state",c.FETCHING_SOURCE),W.fetch(e,t,r)):i&&s&&l.store.get("disassembly_for_missing_file").some(function(e){return parseInt(e.address,16)===parseInt(s,16)})?l.store.set("source_code_state",c.ASSM_CACHED):i&&s?s in G.unfetchable_disassembly_addresses?l.store.set("source_code_state",c.ASSM_UNAVAILABLE):(l.store.set("source_code_state",c.FETCHING_ASSM),G.fetch_disassembly_for_missing_file(s)):a?l.store.set("source_code_state",c.FILE_MISSING):l.store.set("source_code_state",c.NONE_AVAILABLE)},get_num_lines_in_file:function(e,t){if(t||(t=G.get_source_file_obj_from_cache(e)),t)return t.num_lines_in_file?t.num_lines_in_file:(console.error('Developer error: expected key "num_lines_in_file"'),1/0);console.error("Developer error: expected to find file object for "+e)},lines_are_cached:function(e,t,n){var r=G.get_source_file_obj_from_cache(e),o=t;if(!r)return!1;var a=G.get_num_lines_in_file(e,r);if(t>a)return!1;for(var i=Math.min(n,a);o<=i;){if(!G.line_is_cached(e,o,r))return!1;o++}return!0},line_is_cached:function(e,t,n){return n||(n=G.get_source_file_obj_from_cache(e)),n&&n.source_code_obj&&void 0!==n.source_code_obj[t]},get_line_from_file:function(e,t){var n=G.get_source_file_obj_from_cache(e);return n?n.source_code_obj[t]:null},assembly_is_cached:function(e){var t=G.get_source_file_obj_from_cache(e);return t&&t.assembly&&Object.keys(t.assembly).length},get_source_file_obj_from_cache:function(e){var t=l.store.get("cached_source_files"),n=!0,r=!1,o=void 0;try{for(var a,i=t[Symbol.iterator]();!(n=(a=i.next()).done);n=!0){var s=a.value;if(s.fullname===e)return s}}catch(e){r=!0,o=e}finally{try{!n&&i.return&&i.return()}finally{if(r)throw o}}return null},add_source_file_to_cache:function(e,t,n,r){var o=G.get_source_file_obj_from_cache(e);if(null===o){var a={fullname:e,source_code_obj:t,assembly:{},last_modified_unix_sec:n,num_lines_in_file:r,exists:!0},i=l.store.get("cached_source_files");i.push(a),l.store.set("cached_source_files",i),G.warning_shown_for_old_binary=!1,G.show_modal_if_file_modified_after_binary(e,a.last_modified_unix_sec)}else Object.assign(o.source_code_obj,t),l.store.set("cached_source_files",l.store.get("cached_source_files"))},show_modal_if_file_modified_after_binary:function(e,t){l.store.get("inferior_binary_path")&&t>l.store.get("inferior_binary_path_last_modified_unix_sec")&&!1===G.warning_shown_for_old_binary&&(Se.show_modal("Warning",i.a.createElement("div",null,"This source file was modified ",i.a.createElement("span",{className:"bold"},"after")," the binary was compiled. Recompile the binary, then try again. Otherwise the source code may not match the binary.",i.a.createElement("p",null),i.a.createElement("p",null,"Source file: "+e+", modified "+moment(1e3*t).format(u.DATE_FORMAT)),i.a.createElement("p",null,"Binary: "+l.store.get("inferior_binary_path")+", modified "+moment(1e3*l.store.get("inferior_binary_path_last_modified_unix_sec")).format(u.DATE_FORMAT),")"))),G.warning_shown_for_old_binary=!0)},get_cached_assembly_for_file:function(e){var t=!0,n=!1,r=void 0;try{for(var o,a=l.store.get("cached_source_files")[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){var i=o.value;if(i.fullname===e)return i.assembly}}catch(e){n=!0,r=e}finally{try{!t&&a.return&&a.return()}finally{if(n)throw r}}return[]},refresh_cached_source_files:function(){G.clear_cached_source_files()},clear_cached_source_files:function(){l.store.set("cached_source_files",[])},fetch_more_source_at_beginning:function(){var e=l.store.get("fullname_to_render"),t=l.store.get("source_linenum_to_display_start")-1;l.store.set("source_linenum_to_display_start",Math.max(l.store.get("source_linenum_to_display_start")-Math.floor(l.store.get("max_lines_of_code_to_fetch")/2),1)),l.store.set("source_linenum_to_display_end",Math.ceil(l.store.get("source_linenum_to_display_start")+l.store.get("max_lines_of_code_to_fetch"))),Se.view_file(e,t),W.fetch(e,l.store.get("source_linenum_to_display_start"),l.store.get("source_linenum_to_display_end"))},fetch_more_source_at_end:function(){l.store.set("source_code_infinite_scrolling",!0);var e=l.store.get("fullname_to_render"),t=l.store.get("source_linenum_to_display_end")+Math.ceil(l.store.get("max_lines_of_code_to_fetch")/2);G.get_source_file_obj_from_cache(e)&&(t=Math.min(t,G.get_num_lines_in_file(e)));var n=t-l.store.get("max_lines_of_code_to_fetch");n=Math.max(1,n),l.store.set("source_linenum_to_display_end",t),l.store.set("source_linenum_to_display_start",n),W.fetch(e,l.store.get("source_linenum_to_display_start"),l.store.get("source_linenum_to_display_end"))},is_missing_file:function(e){return-1!==l.store.get("missing_files").indexOf(e)},add_missing_file:function(e){var t=l.store.get("missing_files");t.push(e),l.store.set("missing_files",t)},get_dissasembly_format_num:function(e){return 0===e.length?4:e[0]<7||7===parseInt(e[0])&&e[1]<=7?3:4},get_fetch_disassembly_command:function(e,t,n){if(_.isString(e))return"gdb"===l.store.get("interpreter")?u.INLINE_DISASSEMBLY_STR+"-data-disassemble -f "+e+" -l "+t+" -n 1000 -- "+n:(console.log("TODOLLDB - get mi command to disassemble"),"disassemble --frame");console.warn("not fetching undefined file")},fetch_assembly_cur_line:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;null!==e&&_.isNumber(e)||(e=G.get_dissasembly_format_num(l.store.get("gdb_version_array")));var t=l.store.get("fullname_to_render"),n=parseInt(l.store.get("line_of_source_to_flash"));n||(n=1),G.fetch_disassembly(t,n,e)},fetch_disassembly:function(e,t,n){var r=G.get_fetch_disassembly_command(e,t,n);r&&ve.run_gdb_command(r)},fetch_disassembly_for_missing_file:function(e){if(!window.isNaN(e)){var t=parseInt(e,16),n=t+100;G.disassembly_addr_being_fetched=e,ve.run_gdb_command(u.DISASSEMBLY_FOR_MISSING_FILE_STR+"-data-disassemble -s 0x"+t.toString(16)+" -e 0x"+n.toString(16)+" -- 0")}},fetch_disassembly_for_missing_file_failed:function(){var e=G.disassembly_addr_being_fetched;G.unfetchable_disassembly_addresses[e]=!0,G.disassembly_addr_being_fetched=null},save_new_assembly:function(e,t){G.disassembly_addr_being_fetched=null,_.isArray(e)&&0!==e.length||console.error("Attempted to save unexpected assembly",e);var n=e[0].fullname;if(t!==u.DISASSEMBLY_FOR_MISSING_FILE_INT){var r={},o=!0,a=!1,i=void 0;try{for(var s,c=e[Symbol.iterator]();!(o=(s=c.next()).done);o=!0){var d=s.value;r[parseInt(d.line)]=d.line_asm_insn}}catch(e){a=!0,i=e}finally{try{!o&&c.return&&c.return()}finally{if(a)throw i}}var f=l.store.get("cached_source_files"),p=!0,m=!1,h=void 0;try{for(var g,b=f[Symbol.iterator]();!(p=(g=b.next()).done);p=!0){var y=g.value;if(y.fullname===n){y.assembly=Object.assign(y.assembly,r);var v=Math.max(Object.keys(y.assembly));if(v>Math.max(Object.keys(y.source_code_obj))){y.source_code_obj[v]="";for(var w=0;w40&&(n=n.slice(0,40)+"..."),re.add_line(e,t,n)}return n?i.a.createElement("span",{className:"monospace",style:{whiteSpace:"nowrap",fontSize:"0.9em"}},n||i.a.createElement("br",null)):"(file not cached)"}},{key:"get_delete_jsx",value:function(e){return i.a.createElement("div",{style:{width:"10px",display:"inline"},className:"pointer breakpoint_trashcan",onClick:function(t){t.stopPropagation(),ae.delete_breakpoint(e)},title:"Delete breakpoint "+e},i.a.createElement("span",{className:"glyphicon glyphicon-trash"}," "))}},{key:"render",value:function(){var e=this.props.bkpt,t="y"===e.enabled?"checked":"",n=this.get_source_line(e.fullname_to_display,e.line),r=void 0,o=void 0,a=void 0;e.is_child_breakpoint?(a=e.parent_breakpoint_number,r=i.a.createElement("span",{className:"glyphicon glyphicon-th-list",title:"Child breakpoint automatically created from parent. If parent or any child of this tree is deleted, all related breakpoints will be deleted."})):e.is_parent_breakpoint?(r=i.a.createElement("span",{className:"glyphicon glyphicon-th-list",title:"Parent breakpoint with one or more child breakpoints. If parent or any child of this tree is deleted, all related breakpoints will be deleted."}),a=e.number):(a=e.number,r="");var l=this.get_delete_jsx(a),s=i.a.createElement(Q,{fullname:e.fullname_to_display,file:e.fullname_to_display,line:e.line});if(e.is_parent_breakpoint)o=i.a.createElement("span",{className:"placeholder"},r," parent breakpoint on inline, template, or ambiguous location");else{var u=void 0===e.func?"(unknown function)":e.func;o=i.a.createElement("div",{style:{display:"inline"}},i.a.createElement("span",{className:"monospace",style:{paddingRight:"5px"}},r," ",u),i.a.createElement("span",{style:{color:"#bbbbbb",fontStyle:"italic"}},"thread groups: ",e["thread-groups"]))}return i.a.createElement("div",{className:"breakpoint",onClick:function(){return Se.view_file(e.fullname_to_display,e.line)}},i.a.createElement("table",{style:{width:"100%",fontSize:"0.9em",borderWidth:"1px",borderColor:"black"},className:"lighttext table-condensed"},i.a.createElement("tbody",null,i.a.createElement("tr",null,i.a.createElement("td",null,i.a.createElement("input",{type:"checkbox",checked:t,onChange:function(){return ae.enable_or_disable_bkpt(t,e.number)}}),o," ",l)),i.a.createElement("tr",null,i.a.createElement("td",null,s)),i.a.createElement("tr",null,i.a.createElement("td",null,n)))))}}]),t}(),ae=function(e){function t(){ee(this,t);var e=te(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return l.store.connectComponentState(e,["breakpoints"]),e}return ne(t,i.a.Component),Z(t,[{key:"render",value:function(){var e=[],t=!0,n=!1,r=void 0;try{for(var o,a=l.store.get("breakpoints")[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){var s=o.value;e.push(i.a.createElement(oe,{bkpt:s,key:s.number}))}}catch(e){n=!0,r=e}finally{try{!t&&a.return&&a.return()}finally{if(n)throw r}}return e.length?e:i.a.createElement("span",{className:"placeholder"},"no breakpoints")}}],[{key:"enable_or_disable_bkpt",value:function(e,t){e?ve.run_gdb_command(["-break-disable "+t,ve.get_break_list_cmd()]):ve.run_gdb_command(["-break-enable "+t,ve.get_break_list_cmd()])}},{key:"remove_breakpoint_if_present",value:function(e,n){if(t.has_breakpoint(e,n)){var r=t.get_breakpoint_number(e,n),o=[ve.get_delete_break_cmd(r),ve.get_break_list_cmd()];ve.run_gdb_command(o)}}},{key:"add_or_remove_breakpoint",value:function(e,n){t.has_breakpoint(e,n)?t.remove_breakpoint_if_present(e,n):t.add_breakpoint(e,n)}},{key:"add_breakpoint",value:function(e,t){ve.run_gdb_command(ve.get_insert_break_cmd(e,t))}},{key:"has_breakpoint",value:function(e,t){var n=l.store.get("breakpoints"),r=!0,o=!1,a=void 0;try{for(var i,s=n[Symbol.iterator]();!(r=(i=s.next()).done);r=!0){var u=i.value;if(u.fullname===e&&u.line==t)return!0}}catch(e){o=!0,a=e}finally{try{!r&&s.return&&s.return()}finally{if(o)throw a}}return!1}},{key:"get_breakpoint_number",value:function(e,t){var n=l.store.get("breakpoints"),r=!0,o=!1,a=void 0;try{for(var i,s=n[Symbol.iterator]();!(r=(i=s.next()).done);r=!0){var u=i.value;if(u.fullname===e&&u.line==t)return u.number}}catch(e){o=!0,a=e}finally{try{!r&&s.return&&s.return()}finally{if(o)throw a}}console.error("could not find breakpoint for "+e+":"+t)}},{key:"delete_breakpoint",value:function(e){ve.run_gdb_command([ve.get_delete_break_cmd(e),ve.get_break_list_cmd()])}},{key:"get_breakpoint_lines_for_file",value:function(e){return l.store.get("breakpoints").filter(function(t){return t.fullname_to_display===e&&"y"===t.enabled}).map(function(e){return parseInt(e.line)})}},{key:"get_disabled_breakpoint_lines_for_file",value:function(e){return l.store.get("breakpoints").filter(function(t){return t.fullname_to_display===e&&"y"!==t.enabled}).map(function(e){return parseInt(e.line)})}},{key:"save_breakpoints",value:function(e){if(l.store.set("breakpoints",[]),e&&e.BreakpointTable&&e.BreakpointTable.body){var n=!0,r=!1,o=void 0;try{for(var a,i=e.BreakpointTable.body[Symbol.iterator]();!(n=(a=i.next()).done);n=!0){var s=a.value;t.save_breakpoint(s)}}catch(e){r=!0,o=e}finally{try{!n&&i.return&&i.return()}finally{if(r)throw o}}}}},{key:"save_breakpoint",value:function(e){var t=Object.assign({},e);if(t.is_parent_breakpoint="(MULTIPLE)"===t.addr,t.is_child_breakpoint=parseInt(t.number)!==parseFloat(t.number),t.is_normal_breakpoint=!t.is_parent_breakpoint&&!t.is_child_breakpoint,t.is_child_breakpoint&&(t.parent_breakpoint_number=parseInt(t.number)),"fullname"in e&&e.fullname)t.fullname_to_display=e.fullname;else if("original-location"in e&&e["original-location"]){var n=B.parse_fullname_and_line(e["original-location"]),r=J(n,2);t.fullname_to_display=r[0],t.line=r[1]}else t.fullname_to_display=null;var o=l.store.get("breakpoints");return-1===o.indexOf(t)&&(o.push(t),l.store.set("breakpoints",o)),t}}]),t}(),ie=ae,le=function(){function e(e,t){for(var n=0;n0){var h=_.uniq(p.payload.files.map(function(e){return e.fullname})).sort();l.store.set("source_file_paths",h);var g="c_family";if(h.some(function(e){return e.endsWith(".rs")})){g="rust";var b=l.store.get("gdb_version_array");7==b[0]&&12==b[1]&&(Se.add_console_entries("Warning: Due to a bug in gdb version "+l.store.get("gdb_version")+", gdbgui cannot show register values with rust executables. See https://github.com/cs01/gdbgui/issues/64 for details.",u.console_entry_type.STD_ERR),l.store.set("can_fetch_register_values",!1))}else h.some(function(e){return e.endsWith(".go")})&&(g="go");l.store.set("language",g)}else l.store.set("source_file_paths",["Either no executable is loaded or the executable was compiled without debug symbols."]),l.store.get("inferior_binary_path")&&he.render("Warning",i.a.createElement("div",null,"This binary was not compiled with debug symbols. Recompile with the -g flag for a better debugging experience.",i.a.createElement("p",null),i.a.createElement("p",null),"Read more:"," ",i.a.createElement("a",{href:"http://www.delorie.com/gnu/docs/gdb/gdb_17.html"},"http://www.delorie.com/gnu/docs/gdb/gdb_17.html")));"memory"in p.payload&&E.add_value_to_cache(p.payload.memory[0].begin,p.payload.memory[0].contents),"variables"in p.payload&&pe.save_locals(p.payload.variables),"changelist"in p.payload&&A.handle_changelist(p.payload.changelist),"has_more"in p.payload&&"numchild"in p.payload&&"children"in p.payload&&A.gdb_created_children_variables(p),"name"in p.payload&&A.gdb_created_root_variable(p)}else if("result"===p.type&&"error"===p.message)Se.add_gdb_response_to_console(p),p.payload.msg===l.store.get("inferior_binary_path")+": No such file or directory."&&Se.inferior_program_exited();else if("console"===p.type){if(Se.add_console_entries(p.payload,"stderr"===p.stream?u.console_entry_type.STD_ERR:u.console_entry_type.STD_OUT),void 0===l.store.get("gdb_version")){var y=/GNU gdb \(.*\)\s+([0-9|.]*)\\n/g.exec(p.payload);_.isArray(y)&&2===y.length&&(l.store.set("gdb_version",y[1]),l.store.set("gdb_version_array",y[1].split(".")))}}else"output"===p.type||"target"===p.type||"log"===p.type?Se.add_console_entries(p.payload,"stderr"===p.stream?u.console_entry_type.STD_ERR:u.console_entry_type.STD_OUT):"notify"===p.type&&"thread-group-started"===p.message&&l.store.set("inferior_pid",parseInt(p.payload.pid));p.message&&"stopped"===p.message?p.payload&&p.payload.reason?p.payload.reason.includes("exited")?Se.inferior_program_exited():p.payload.reason.includes("breakpoint-hit")||p.payload.reason.includes("end-stepping-range")?(p.payload["new-thread-id"]&&de.set_thread_id(p.payload["new-thread-id"]),Se.inferior_program_paused(p.payload.frame)):"signal-received"===p.payload.reason?(Se.inferior_program_paused(p.payload.frame),"SIGINT"!==p.payload["signal-name"]&&(Se.add_console_entries("gdbgui noticed a signal was recieved ("+p.payload["signal-meaning"]+", "+p.payload["signal-name"]+").",u.console_entry_type.GDBGUI_OUTPUT),Se.add_console_entries("If the program exited due to a fault, you can attempt to re-enter the state of the program when the fault ",u.console_entry_type.GDBGUI_OUTPUT),Se.add_console_entries("occurred by clicking the below button.",u.console_entry_type.GDBGUI_OUTPUT),Se.add_console_entries("Re-Enter Program (backtrace)",u.console_entry_type.BACKTRACE_LINK))):(console.warn("TODO handle new reason for stopping. Notify developer of this."),console.warn(p)):Se.inferior_program_paused(p.payload.frame):p.message&&"connected"===p.message&&Se.remote_connected()}}catch(e){s=!0,c=e}finally{try{!a&&f.return&&f.return()}finally{if(s)throw c}}}};i.a;var be=void 0;be=debug?console.info:function(){};var ye={init:function(){ye.socket=io.connect("/gdb_listener",{timeout:3e5,query:"csrf_token="+initial_data.csrf_token+"&gdbpid="+initial_data.gdbpid}),ye.socket.on("connect",function(){be("connected")}),ye.socket.on("gdb_response",function(e){clearTimeout(ye._waiting_for_response_timeout),l.store.set("waiting_for_response",!1),ge(e)}),ye.socket.on("error_running_gdb_command",function(e){Se.add_console_entries("Error occurred on server when running gdb command: "+e.message,u.console_entry_type.STD_ERR)}),ye.socket.on("server_error",function(e){Se.add_console_entries("Server message: "+e.message,u.console_entry_type.STD_ERR)}),ye.socket.on("gdb_pid",function(e){var t=e.pid,n=e.message,r=e.error,o=e.using_existing;Se.add_console_entries(n,r?u.console_entry_type.STD_ERR:u.console_entry_type.GDBGUI_OUTPUT),l.store.set("gdb_pid",t),Se.add_console_entries(l.store.get("interpreter")+" process "+t+" is running for this tab",u.console_entry_type.GDBGUI_OUTPUT),o?Se.refresh_state_for_gdb_pause():ye.run_initial_commands()}),ye.socket.on("disconnect",function(){window.onbeforeunload=function(){return null},Se.show_modal("",i.a.createElement("span",null,"The gdbgui server has shutdown. This tab will no longer function as expected.")),be("disconnected"),debug&&window.location.reload(!0)})},_waiting_for_response_timeout:null,click_run_button:function(){Se.inferior_program_running(),ye.run_gdb_command("-exec-run")},run_initial_commands:function(){ye.run_gdb_command("set breakpoint pending on")},inferior_is_paused:function(){return-1!==[u.inferior_states.unknown,u.inferior_states.paused].indexOf(l.store.get("inferior_program"))},click_continue_button:function(){Se.inferior_program_running(),ye.run_gdb_command("-exec-continue"+(l.store.get("debug_in_reverse")?" --reverse":""))},click_next_button:function(){Se.inferior_program_running(),ye.run_gdb_command("-exec-next"+(l.store.get("debug_in_reverse")?" --reverse":""))},click_step_button:function(){Se.inferior_program_running(),ye.run_gdb_command("-exec-step"+(l.store.get("debug_in_reverse")?" --reverse":""))},click_return_button:function(){ye.run_gdb_command("-exec-return"),Se.inferior_program_paused()},click_next_instruction_button:function(){Se.inferior_program_running(),ye.run_gdb_command("-exec-next-instruction"+(l.store.get("debug_in_reverse")?" --reverse":""))},click_step_instruction_button:function(){Se.inferior_program_running(),ye.run_gdb_command("-exec-step-instruction"+(l.store.get("debug_in_reverse")?" --reverse":""))},click_send_interrupt_button:function(){Se.inferior_program_running(),ye.run_gdb_command("-exec-interrupt")},send_autocomplete_command:function(e){Se.inferior_program_running(),ye.run_gdb_command("complete "+e)},click_gdb_cmd_button:function(e){if(void 0!==e.currentTarget.dataset.cmd)ye.run_gdb_command(e.currentTarget.dataset.cmd);else if(void 0!==e.currentTarget.dataset.cmd0){for(var t=[],n=0,r=e.currentTarget.dataset["cmd"+n];void 0!==r&&n<100;)t.push(r),n++,r=e.currentTarget.dataset["cmd"+n];ye.run_gdb_command(t)}else console.error("expected cmd or cmd0 [cmd1, cmd2, ...] data attribute(s) on element")},select_frame:function(e){ye.run_command_and_refresh_state("-stack-select-frame "+e)},select_thread_id:function(e){ye.run_command_and_refresh_state("-thread-select "+e)},waiting_for_response:function(){l.store.set("waiting_for_response",!0);clearTimeout(ye._waiting_for_response_timeout),ye._waiting_for_response_timeout=setTimeout(function(){l.store.set("waiting_for_response",!1),Se.add_console_entries("No gdb response received after 10 seconds.",u.console_entry_type.GDBGUI_OUTPUT),Se.add_console_entries("Possible reasons include:",u.console_entry_type.GDBGUI_OUTPUT),Se.add_console_entries("1) gdbgui, gdb, or the debugged process is not running.",u.console_entry_type.GDBGUI_OUTPUT),Se.add_console_entries("2) gdb or the inferior process is busy running and needs to be interrupted (press the pause button up top).",u.console_entry_type.GDBGUI_OUTPUT),Se.add_console_entries("3) Something is just taking a long time to finish and respond back to this browser window, in which case you can just keep waiting.",u.console_entry_type.GDBGUI_OUTPUT)},1e4)},run_gdb_command:function(e){if(""!==_.trim(e)){var t=e;_.isString(t)&&(t=[t]),l.store.get("show_all_sent_commands_in_console")&&Se.add_console_entries(t,u.console_entry_type.SENT_COMMAND),ye.waiting_for_response(),ye.socket.emit("run_gdb_command",{cmd:t})}},run_command_and_refresh_state:function(e){var t=[];_.isArray(e)?t=t.concat(e):_.isString(e)&&e.length>0&&t.push(e),t=t.concat(ye._get_refresh_state_for_pause_cmds()),ye.run_gdb_command(t)},backtrace:function(){var e=["backtrace"];e=e.concat(ye._get_refresh_state_for_pause_cmds()),l.store.set("inferior_program",u.inferior_states.paused),ye.run_gdb_command(e)},_get_refresh_state_for_pause_cmds:function(){var e=[u.IGNORE_ERRORS_TOKEN_STR+"-thread-info",u.IGNORE_ERRORS_TOKEN_STR+"-stack-list-variables --simple-values",ye.get_flush_output_cmd()];return"gdb"===l.store.get("interpreter")?e.push(u.IGNORE_ERRORS_TOKEN_STR+"-var-update --all-values *"):"lldb"===l.store.get("interpreter")&&(e=e.concat(A.get_update_cmds())),(e=(e=e.concat(O.get_update_cmds())).concat(E.get_gdb_commands_from_state())).push(ye.get_break_list_cmd()),e.push(u.IGNORE_ERRORS_TOKEN_STR+"-stack-list-frames"),e},refresh_breakpoints:function(){ye.run_gdb_command([ye.get_break_list_cmd()])},get_inferior_binary_last_modified_unix_sec:function(e){$.ajax({beforeSend:function(e){e.setRequestHeader("x-csrftoken",initial_data.csrf_token)},url:"/get_last_modified_unix_sec",cache:!1,method:"GET",data:{path:e},success:ye._recieve_last_modified_unix_sec,error:ye._error_getting_last_modified_unix_sec})},get_insert_break_cmd:function(e,t){return"gdb"===l.store.get("interpreter")?["-break-insert "+e+":"+t]:(console.log("TODOLLDB - find mi-friendly command"),["breakpoint set --file "+e+" --line "+t])},get_delete_break_cmd:function(e){return"gdb"===l.store.get("interpreter")?"-break-delete "+e:(console.log("TODOLLDB - find mi-friendly command"),"breakpoint delete "+e)},get_break_list_cmd:function(){return"gdb"===l.store.get("interpreter")?"-break-list":"lldb"===l.store.get("interpreter")?(console.log("TODOLLDB - find mi-friendly command"),"breakpoint list"):void 0},get_flush_output_cmd:function(){if(!l.store.get("flush_after_commands"))return"";if("c_family"===l.store.get("language")){if("gdb"===l.store.get("interpreter"))return u.IGNORE_ERRORS_TOKEN_STR+"-data-evaluate-expression fflush(0)";if("lldb"===l.store.get("interpreter"))return""}else{if("go"===l.store.get("language"))return"";if("rust"===l.store.get("language"))return""}},get_load_binary_and_arguments_cmds:function(e,t){var n=["-exec-arguments "+t,"-file-exec-and-symbols "+e];return l.store.get("auto_add_breakpoint_to_main")&&n.push("-break-insert main"),n.push(ye.get_break_list_cmd()),n},set_assembly_flavor:function(e){ye.run_gdb_command("set disassembly-flavor "+e)},_recieve_last_modified_unix_sec:function(e){e.path===l.store.get("inferior_binary_path")&&l.store.set("inferior_binary_path_last_modified_unix_sec",e.last_modified_unix_sec)},_error_getting_last_modified_unix_sec:function(e){l.store.set("inferior_binary_path",null)}},ve=ye,we=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"";return i.a.createElement("td",{style:{verticalAlign:"top",width:"30px"},className:"line_num "+n,onClick:function(){t.click_gutter(e)}},i.a.createElement("div",null,e))}},{key:"_get_assm_row",value:function(e,n,r){return i.a.createElement("tr",{key:e,className:"srccode"},i.a.createElement("td",{className:"assembly loc"},t._get_assm_content(e,n,r)))}},{key:"is_gdb_paused_on_this_line",value:function(e,t){return!!this.state.paused_on_frame&&(e===t&&this.state.paused_on_frame.fullname===this.state.fullname_to_render)}},{key:"get_view_more_tr",value:function(e,n,r){return i.a.createElement("tr",{key:n,className:"srccode",ref:function(e){return t[r]=e}},i.a.createElement("td",null),i.a.createElement("td",{onClick:function(){Se.view_file(e,n)},style:{fontStyle:"italic",paddingLeft:"10px"},className:"pointer"},"view more"))}},{key:"get_end_of_file_tr",value:function(e){return i.a.createElement("tr",{key:e},i.a.createElement("td",null),i.a.createElement("td",{style:{fontStyle:"italic",paddingLeft:"10px",fontSize:"0.8em"}},"(end of file)"))}},{key:"get_line_nums_to_render",value:function(e,t,n,r){for(var o=t,a=r,i=t;it;){if(e.hasOwnProperty(i)){a=i;break}i--}return{start_linenum_to_render:o,end_linenum_to_render:a}}},{key:"get_body_source_and_assm",value:function(e,n,r,o,a,i,l){for(var s=[],u=ie.get_breakpoint_lines_for_file(this.state.fullname_to_render),c=ie.get_disabled_breakpoint_lines_for_file(this.state.fullname_to_render),_=this.state.paused_on_frame?parseInt(this.state.paused_on_frame.line):0,d=this.state.line_of_source_to_flash,f=this.get_line_nums_to_render(n,a,d,i),p=f.start_linenum_to_render,m=f.end_linenum_to_render,h=p;h<=m;){var g=n[h],b=-1!==u.indexOf(h),y=-1!==c.indexOf(h),v=this.is_gdb_paused_on_this_line(h,_),w=r[h];s.push(this._get_source_line(g,d===h,v,h,b,y,w,o)),h++}return t.view_more_top_node=null,t.view_more_bottom_node=null,p>a?s.unshift(this.get_view_more_tr(e,p-1,"view_more_top_node")):1!==a&&s.unshift(this.get_view_more_tr(e,a-1,"view_more_top_node")),m=n&&i<=o?{is_visible:!0,top_of_line:a,top_of_table:l,height_of_container:r}:{is_visible:!1,top_of_line:a,top_of_table:l,height_of_container:r}}},{key:"_make_jq_selector_visible",value:function(e){if(1===e.length){var n=t.is_source_line_visible(e),r=n.is_visible,o=n.top_of_line,a=n.top_of_table,i=n.height_of_container;if(!r){var l=o-(a+i/2);t.el_code_container.animate({scrollTop:l},0)}return!0}return!1}}]),t}();ke.el_code_container=null,ke.el_code_container_node=null,ke.code_container_node=null,ke.view_more_top_node=null,ke.view_more_bottom_node=null;var Ee=ke;i.a;var xe={clear_program_state:function(){l.store.set("line_of_source_to_flash",void 0),l.store.set("paused_on_frame",void 0),l.store.set("selected_frame_num",0),l.store.set("current_thread_id",void 0),l.store.set("stack",[]),l.store.set("threads",[]),E.clear_cache(),pe.clear()},inferior_program_running:function(){l.store.set("inferior_program",u.inferior_states.running),xe.clear_program_state()},inferior_program_paused:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l.store.set("inferior_program",u.inferior_states.paused),l.store.set("source_code_selection_state",u.source_code_selection_states.PAUSED_FRAME),l.store.set("paused_on_frame",e),l.store.set("fullname_to_render",e.fullname),l.store.set("line_of_source_to_flash",parseInt(e.line)),l.store.set("current_assembly_address",e.addr),l.store.set("source_code_infinite_scrolling",!1),Ee.make_current_line_visible(),xe.refresh_state_for_gdb_pause()},inferior_program_exited:function(){l.store.set("inferior_program",u.inferior_states.exited),l.store.set("disassembly_for_missing_file",[]),l.store.set("root_gdb_tree_var",null),l.store.set("previous_register_values",{}),l.store.set("current_register_values",{}),l.store.set("inferior_pid",null),xe.clear_program_state()},refresh_state_for_gdb_pause:function(){ve.run_gdb_command(ve._get_refresh_state_for_pause_cmds())},execute_console_command:function(e){l.store.get("refresh_state_after_sending_console_command")?ve.run_command_and_refresh_state(e):ve.run_gdb_command(e)},clear_console:function(){l.store.set("gdb_console_entries",[])},add_console_entries:function(e,t){_.isArray(e)||(e=[e]);var n=e.map(function(e){return{type:t,value:e}}),r=l.store.get("gdb_console_entries").concat(n);r.length>1e3&&r.splice(0,r.length-1e3),l.store.set("gdb_console_entries",r)},add_gdb_response_to_console:function(e){if(e){var t=[],n=!1;if(e.message&&("error"===e.message?n=!0:t.push(e.message)),e.payload){var r=!0,o=!1,a=void 0;try{for(var i,l=["msg","reason","signal-name","signal-meaning"][Symbol.iterator]();!(r=(i=l.next()).done);r=!0){var s=i.value;e.payload[s]&&t.push(e.payload[s])}}catch(e){o=!0,a=e}finally{try{!r&&l.return&&l.return()}finally{if(o)throw a}}if(e.payload.frame)for(var c=["file","func","line","addr"],_=0;_1&&void 0!==arguments[1]?arguments[1]:0;if(!e)return null;this.nodecount++;var r="   ".repeat(n),o=null,a=!e.children;!a&&(o=e.toggled?"glyphicon-chevron-down":"glyphicon-chevron-right");var l=null;return a&&(l=function(){t.props.onClickName(e)}),i.a.createElement(i.a.Fragment,{key:this.nodecount},i.a.createElement("li",{className:"pointer"},r,i.a.createElement("span",{className:"glyphicon "+o,onClick:function(){t.props.onToggle(e)}}),i.a.createElement("span",{onClick:l},e.name)),function(e){return e.children&&e.toggled?i.a.createElement("ul",null,e.children.map(function(e){return t.get_node_jsx(e,n+1)})):null}(e))}},{key:"render",value:function(){return this.nodecount=-1,i.a.createElement("div",{id:"filesystem"},i.a.createElement("ul",{style:{color:"#ccc"}},this.get_node_jsx(this.props.rootnode)))}}]),t}(),je=function(){function e(e,t){for(var n=0;nthis.max_filesystem_entries;return i.a.createElement("div",null,i.a.createElement("button",{className:"btn btn-xs btn-primary",onClick:Se.fetch_source_files,style:{marginLeft:"5px",marginTop:"5px"}},"Fetch source files"),i.a.createElement("div",{style:{width:"100%"}},i.a.createElement(Ne,null)),i.a.createElement("div",{role:"group",className:"btn-group btn-group",style:{padding:"4px"}},i.a.createElement("button",{className:"btn btn-xs btn-default",onClick:this.expand_all},"Expand all"),i.a.createElement("button",{className:"btn btn-xs btn-default",onClick:this.collapse_all},"Collapse all"),i.a.createElement("button",{className:"btn btn-xs btn-default "+(n?"":"hidden"),onClick:function(){return e.reveal_path(l.store.get("fullname_to_render"))}},"Reveal current file")),l.store.get("source_file_paths").length?i.a.createElement("p",{style:{color:"white",padding:"4px"}},l.store.get("source_file_paths").length," known files used to compile the inferior program"):"",r?i.a.createElement("p",{style:{color:"black",background:"orange",padding:"4px"}},"Maximum entries in tree below is ",this.max_filesystem_entries," (hiding"," ",l.store.get("source_file_paths").length-this.max_filesystem_entries,"). All files can still be searched for in the input above."):"",i.a.createElement(Ie,{rootnode:this.state.rootnode,onToggle:this.onToggle,onClickName:this.onClickName}))}},{key:"onClickName",value:function(e){for(var t=e,n=[];t;){if("root"===t.name){n.unshift("");break}n.unshift(t.name),t=t.parent}n.length&&H.user_select_file_to_view(n.join("/"),1)}},{key:"reveal_path",value:function(e){if(e){this.state.cursor&&(this.state.cursor.active=!1),this.project_home&&(e=e.replace(this.project_home,""));var t=e.split("/").filter(function(e){return""!==e}),n=this.state.rootnode;n.toggled=!0;var r=!0,o=!1,a=void 0;try{for(var i,l=t[Symbol.iterator]();!(r=(i=l.next()).done);r=!0){if(!(n=Me(i.value,n)))break;n.toggled=!0}}catch(e){o=!0,a=e}finally{try{!r&&l.return&&l.return()}finally{if(o)throw a}}n&&(n.active=!0),this.setState({rootnode:this.state.rootnode,cursor:n})}}},{key:"update_filesystem_data",value:function(e){if(-1!==e.indexOf("source_file_paths")){var t=this.state.source_file_paths;if(_.isArray(t)&&t.length){var n={name:this.project_home||"root",toggled:!0,children:[]},r=t;if(this.project_home){var o=this.project_home;r=t.filter(function(e){return e.startsWith(o)}).map(function(e){return e=e.replace(o,"")})}var a=!0,i=!1,l=void 0;try{for(var s,u=r[Symbol.iterator]();!(a=(s=u.next()).done);a=!0){var c=void 0,d=s.value.split("/").filter(function(e){return""!==e}),f=n,p=0===m,m=0,h=!0,g=!1,b=void 0;try{for(var y,v=d[Symbol.iterator]();!(h=(y=v.next()).done);h=!0){var w=y.value,k=Me(w,f);k?f=k:(c={name:w,toggled:p,parent:f},f.children?f.children.push(c):f.children=[c],f=c),m++}}catch(e){g=!0,b=e}finally{try{!h&&v.return&&v.return()}finally{if(g)throw b}}}}catch(e){i=!0,l=e}finally{try{!a&&u.return&&u.return()}finally{if(i)throw l}}this.setState({rootnode:n})}else this.setState({rootnode:Re})}}},{key:"onToggle",value:function(e){e.toggled=!e.toggled,this.setState({rootnode:this.state.rootnode})}},{key:"expand_all",value:function(){var e=function(e){e.toggled=!0},t=!0,n=!1,r=void 0;try{for(var o,a=this.state.rootnode.children[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){var i=o.value;this._dfs(i,e)}}catch(e){n=!0,r=e}finally{try{!t&&a.return&&a.return()}finally{if(n)throw r}}this.setState({rootnode:this.state.rootnode})}},{key:"collapse_all",value:function(){var e=function(e){e.toggled=!1},t=!0,n=!1,r=void 0;try{for(var o,a=this.state.rootnode.children[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){var i=o.value;this._dfs(i,e)}}catch(e){n=!0,r=e}finally{try{!t&&a.return&&a.return()}finally{if(n)throw r}}this.setState({rootnode:this.state.rootnode})}},{key:"_dfs",value:function(e,t){if(t(e),e.children){var n=!0,r=!1,o=void 0;try{for(var a,i=e.children[Symbol.iterator]();!(n=(a=i.next()).done);n=!0){var l=a.value;this._dfs(l,t)}}catch(e){r=!0,o=e}finally{try{!n&&i.return&&i.return()}finally{if(r)throw o}}}}}]),t}(),De=function(){function e(e,t){for(var n=0;nKe.sent_cmds.length?(Ke.index=Ke.sent_cmds.length,null):(Ke.is_history_being_used=!0,Ke.index>=Ke.sent_cmds.length?null:Ke.sent_cmds[Ke.index])},add_command:function(e){Ke.reset(),-1===Ke.sent_cmds.indexOf(e)&&(Ke.sent_cmds.length>Ke.COMMAND_HISTORY_LIMIT&&Ke.sent_cmds.shift(),Ke.sent_cmds.push(e),localStorage.setItem("sent_cmds",JSON.stringify(Ke.sent_cmds)))},reset:function(){Ke.is_history_being_used=!1,Ke.index=0}},Ke=He,$e=function(e){function t(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var e=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e._store_change_callback=function(){var t=l.store.get("gdb_autocomplete_options");1===t.length?(e.setState({current_command_input:t[0]+" "}),l.store.set("gdb_autocomplete_options",[])):t.length>1&&(Se.add_console_entries(t,u.console_entry_type.AUTOCOMPLETE_OPTION),l.store.set("gdb_autocomplete_options",[]))},e.on_current_command_input_change=function(t){e.setState({current_command_input:t})},e.on_sent_command_clicked=function(t){He.reset(),e.setState({current_command_input:t})},e.on_autocomplete_text_clicked=function(t){He.reset(),e.setState({current_command_input:t+" "})},e.get_previous_command_from_history=function(){e.setState({current_command_input:He.get_previous_command(e.state.current_command_input)||e.state.current_command_input})},e.get_next_command_from_history=function(){e.setState({current_command_input:He.get_next_command(e.state.current_command_input)||e.state.current_command_input})},e.run_command=function(){var t=e.state.current_command_input;He.add_command(t),Se.add_console_entries(t,u.console_entry_type.SENT_COMMAND),Se.execute_console_command(t),e.setState({current_command_input:""})},e.send_autocomplete_command=function(){var t=e.state.current_command_input;ve.send_autocomplete_command(t)},e.state={current_command_input:""},l.store.connectComponentState(e,["gdb_console_entries","gdb_autocomplete_options"],e._store_change_callback.bind(e)),e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,i.a.Component),We(t,[{key:"render",value:function(){var e=this.state,t=e.gdb_console_entries,n=e.current_command_input,r=e.gdb_autocomplete_options;return i.a.createElement("div",{id:"console_container"},i.a.createElement(Ve,{console_entries:t,on_sent_command_clicked:this.on_sent_command_clicked,on_autocomplete_text_clicked:this.on_autocomplete_text_clicked}),i.a.createElement(Fe,{current_command_input:n,on_current_command_input_change:this.on_current_command_input_change,autocomplete_options_count:r.length,get_previous_command_from_history:this.get_previous_command_from_history,get_next_command_from_history:this.get_next_command_from_history,clear_console:function(){return Se.clear_console()},run_command:this.run_command,send_autocomplete_command:this.send_autocomplete_command}))}}]),t}(),Xe={init:function(){window.onkeydown=function(e){e.keyCode===u.ENTER_BUTTON_NUM&&e.preventDefault()},$("body").on("keydown",Xe.body_keydown),$('[data-toggle="tooltip"]').tooltip(),window.onbeforeunload=function(){return"text here makes dialog appear when exiting. Set function to back to null for nomal behavior."}},body_keydown:function(e){var t=e.altKey||e.ctrlKey||e.shiftKey||e.metaKey;if("INPUT"!==e.target.nodeName&&!t){var n=String.fromCharCode(e.keyCode).toLowerCase();e.keyCode===u.DOWN_BUTTON_NUM||"s"===n?ve.click_step_button():e.keyCode===u.RIGHT_BUTTON_NUM||"n"===n?ve.click_next_button():"c"===n?ve.click_continue_button():e.keyCode===u.UP_BUTTON_NUM||"u"===n?ve.click_return_button():"r"===n?ve.click_run_button():"m"===n?ve.click_next_instruction_button():e.keyCode===u.COMMA_BUTTON_NUM&&ve.click_step_instruction_button()}}},qe=Xe,Ye=function(){function e(e,t){for(var n=0;n0&&(et.max_lines_of_code_to_fetch=ot)}var at=et,it=function(){function e(e,t){for(var n=0;n0){var u=1===n?"child":"children";t.push("+ "+n+" "+u)}else if(e.numchild!==e.children.length){var c=1===e.numchild?"child":"children";t.push("+ "+e.numchild+" "+c)}return t.join("\n")},_add_nodes_and_edges:function(e,t){var n=dt._get_node_label(e);if(e.name in dt.nodes._data){var r=n===dt.nodes._data[e.name].label?"white":"yellow";dt.nodes.update({id:e.name,label:dt._get_node_label(e),color:{background:r}})}else dt.nodes.add({id:e.name,label:dt._get_node_label(e)});if(!t||e.name in dt.edges._data||dt.edges.add({id:e.name,from:t.name,to:e.name,label:e.exp}),e.show_children_in_ui){var o=!0,a=!1,i=void 0;try{for(var l,s=e.children[Symbol.iterator]();!(o=(l=s.next()).done);o=!0){var u=l.value;u.numchild>0&&dt._add_nodes_and_edges(u,e)}}catch(e){a=!0,i=e}finally{try{!o&&s.return&&s.return()}finally{if(a)throw i}}}else{var c=!0,_=!1,d=void 0;try{for(var f,p=e.children[Symbol.iterator]();!(c=(f=p.next()).done);c=!0){var m=f.value;dt._dfs(m,function(e){dt.nodes.remove({id:e.name}),dt.edges.remove({id:e.name})})}}catch(e){_=!0,d=e}finally{try{!c&&p.return&&p.return()}finally{if(_)throw d}}}},_dfs:function(e,t){t(e);var n=!0,r=!1,o=void 0;try{for(var a,i=e.children[Symbol.iterator]();!(n=(a=i.next()).done);n=!0){var l=a.value;dt._dfs(l,t)}}catch(e){r=!0,o=e}finally{try{!n&&i.return&&i.return()}finally{if(r)throw o}}},render_new_network:function(e){dt.nodes=new vis.DataSet,dt.edges=new vis.DataSet,dt._add_nodes_and_edges(e);var t={nodes:dt.nodes,edges:dt.edges};dt.network=new vis.Network(dt.el,t,{nodes:{shape:"box",color:{background:"white"}},layout:{randomSeed:0,hierarchical:{direction:"UD",sortMethod:"directed"}},interaction:{dragNodes:!0},physics:{enabled:!1}}),dt.network.on("click",function(e){var t=this.getNodeAt(e.pointer.DOM);dt.gdb_var_being_updated=t,t&&t&&A._toggle_children_visibility(t)})}},ft=dt,pt=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,o=!1,a=void 0;try{for(var i,l=e[Symbol.iterator]();!(r=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){o=!0,a=e}finally{try{!r&&l.return&&l.return()}finally{if(o)throw a}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),mt=function(){function e(e,t){for(var n=0;n=9&&"d2b6fad22b1e05178f4888fcb461a481e8e0e3b7a28b6bc60b1df7eb286a77dc"!==initial_data.p?(Se.add_console_entries("",u.console_entry_type.UPGRADE_GDBGUI),localStorage.setItem("num_gdbgui_sessions",0)):localStorage.setItem("num_gdbgui_sessions",t+1)}},{key:"_parse_binary_and_args_from_user_input",value:function(e){var t=B.string_to_array_safe_quotes(e),n="",r=[],o=t.length;return 1===o?n=t[0]:o>1&&(n=t[0],r=t.slice(1,o)),{binary:n,args:r.map(function(e){return'"'+e+'"'}).join(" ")}}},{key:"set_target_app",value:function(){var e=_.trim(this.state.user_input);if(""!==_.trim(e))if(this._add_user_input_to_history(e),this.state.target_type===Pt.file){var t=this._parse_binary_and_args_from_user_input(e),n=t.binary,r=t.args;Se.set_gdb_binary_and_arguments(n,r)}else this.state.target_type===Pt.server?Se.connect_to_gdbserver(e):this.state.target_type===Pt.process&&Se.attach_to_process(e);else Se.add_console_entries("input cannot be empty",u.console_entry_type.GDBGUI_OUTPUT)}}]),t}(),jt=function(){function e(e,t){for(var n=0;n ",n),!0},persistToLocalStorage:function(e,t,n){try{localStorage.setItem(e,JSON.stringify(n))}catch(t){console.warn("could not save "+e+" to localstorage")}return!0}};e.exports={middleware:r}},function(e,t,n){"use strict";e.exports=function(e){var t=(e?e.ownerDocument||e:document).defaultView||window;return!(!e||!("function"==typeof t.Node?e instanceof t.Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}},function(e,t,n){"use strict";var r=n(9);e.exports=function(e){return r(e)&&3==e.nodeType}},function(e,t,n){"use strict";var r=n(10);e.exports=function e(t,n){return!(!t||!n)&&(t===n||!r(t)&&(r(n)?e(t,n.parentNode):"contains"in t?t.contains(n):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(n))))}},function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty;function o(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}e.exports=function(e,t){if(o(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(var i=0;i0&&(e.push([t.make_addrs_into_links_react(a),n.join(" "),r]),o=0,a=u,n=[],r=[]);var c=l.store.get("memory_cache")[u];n.push(c);var _=String.fromCharCode(parseInt(c,16)).replace(/\W/g,".");r.push(i.a.createElement("span",{key:o,className:"memory_char"},_)),o++}return n.length>0&&e.push([t.make_addrs_into_links_react(a),n.join(" "),r]),Object.keys(l.store.get("memory_cache")).length>0&&e.push([i.a.createElement("span",{key:"morebottom",className:"pointer",style:{fontStyle:"italic",fontSize:"0.8em"},onClick:t.click_read_more_memory},"more"),"",""]),i.a.createElement(g,{data:e,header:["address","hex","char"]})}},{key:"render",value:function(){var e={display:"inline",width:"100px",padding:"6px 6px",height:"25px",fontSize:"1em"},n=this.get_memory_component_jsx_content();return i.a.createElement("div",null,i.a.createElement("input",{id:"memory_start_address",className:"form-control",placeholder:"start address (hex)",style:e,value:this.state.start_addr,onKeyUp:t.keypress_on_input,onChange:function(e){l.store.set("start_addr",e.target.value)}}),i.a.createElement("input",{id:"memory_end_address",className:"form-control",placeholder:"end address (hex)",style:e,value:this.state.end_addr,onKeyUp:t.keypress_on_input,onChange:function(e){l.store.set("end_addr",e.target.value)}}),i.a.createElement("input",{id:"memory_bytes_per_line",className:"form-control",placeholder:"bytes per line (dec)",style:e,value:this.state.bytes_per_line,onKeyUp:t.keypress_on_input,onChange:function(e){l.store.set("bytes_per_line",e.target.value)}}),n)}}],[{key:"keypress_on_input",value:function(e){e.keyCode===u.ENTER_BUTTON_NUM&&t.fetch_memory_from_state()}},{key:"set_inputs_from_address",value:function(e){l.store.set("start_addr","0x"+parseInt(e,16).toString(16)),l.store.set("end_addr","0x"+(parseInt(e,16)+t.DEFAULT_ADDRESS_DELTA_BYTES).toString(16)),t.fetch_memory_from_state()}},{key:"get_gdb_commands_from_state",value:function(){var e=parseInt(_.trim(l.store.get("start_addr")),16),n=parseInt(_.trim(l.store.get("end_addr")),16);!window.isNaN(e)&&window.isNaN(n)&&(n=e+t.DEFAULT_ADDRESS_DELTA_BYTES);var r=[];if(_.isInteger(e)&&n){if(e>n)n=e+t.DEFAULT_ADDRESS_DELTA_BYTES,l.store.set("end_addr","0x"+n.toString(16));else if(n-e>t.MAX_ADDRESS_DELTA_BYTES){var o=n;n=e+t.MAX_ADDRESS_DELTA_BYTES,l.store.set("end_addr","0x"+n.toString(16)),Se.add_console_entries("Cannot fetch "+(o-e)+" bytes. Changed end address to "+l.store.get("end_addr")+" since maximum bytes gdbgui allows is "+t.MAX_ADDRESS_DELTA_BYTES+".",u.console_entry_type.STD_ERR)}for(var a=e;a<=n;)r.push("-data-read-memory-bytes 0x"+a.toString(16)+" 1"),a+=1}return window.isNaN(e)||l.store.set("start_addr","0x"+e.toString(16)),window.isNaN(n)||l.store.set("end_addr","0x"+n.toString(16)),r}},{key:"fetch_memory_from_state",value:function(){var e=t.get_gdb_commands_from_state();t.clear_cache(),ve.run_gdb_command(e)}},{key:"click_read_preceding_memory",value:function(){var e=parseInt(_.trim(l.store.get("start_addr")),16),n=3*l.store.get("bytes_per_line");l.store.set("start_addr","0x"+(e-n).toString(16)),t.fetch_memory_from_state()}},{key:"click_read_more_memory",value:function(){var e=parseInt(_.trim(l.store.get("end_addr")),16),n=3*l.store.get("bytes_per_line");l.store.set("end_addr","0x"+(e+n).toString(16)),t.fetch_memory_from_state()}},{key:"make_addrs_into_links_react",value:function(e){var n=e.match(/(0x[\d\w]+)/g);if(e&&n&&n.length){var r=n[0],o=e.slice(0,e.indexOf(r)),a=e.slice(e.indexOf(r)+r.length,e.length),l=a;return a&&(l=t.make_addrs_into_links_react(a)),i.a.createElement(i.a.Fragment,null,o,i.a.createElement(v,{addr:r}),l)}return e}},{key:"add_value_to_cache",value:function(e,t){var n="0x"+parseInt(e,16).toString(16),r=l.store.get("memory_cache");r[n]=t,l.store.set("memory_cache",r)}},{key:"clear_cache",value:function(){l.store.set("memory_cache",{})}}]),t}();k.MAX_ADDRESS_DELTA_BYTES=1e3,k.DEFAULT_ADDRESS_DELTA_BYTES=31,k.DEFAULT_BYTES_PER_LINE=8;var E=k,x={rax:"register a extended (64-bit)",rbx:"register b extended (64-bit)",rcx:"register c extended (64-bit)",rdx:"register d extended (64-bit)",rbp:"base pointer (start of stack) (64-bit)",rsp:"stack pointer (current location in stack, growing downwards) (64-bit)",rsi:"source index (source for data copies) (64-bit)",rdi:"destination index (destination for data copies) (64-bit)",r8:"register 8 (64-bit)",r9:"register 9 (64-bit)",r10:"register 10 (64-bit)",r11:"register 11 (64-bit)",r12:"register 12 (64-bit)",r13:"register 13 (64-bit)",r14:"register 14 (64-bit)",r15:"register 15 (64-bit)",rip:"instruction pointer (points to next instruction to execute) (64-bit)",eflags:"32-bit register used as a collection of bits representing Boolean values to store the results of operations and the state of the processor",cs:"",ss:"",ds:"",es:"",fs:"",gs:"",st0:"",st1:"",st2:"",st3:"",st4:"",st5:"",st6:"",st7:"",fctrl:"",fstat:"",ftag:"",fiseg:"",fioff:"",foseg:"",fooff:"",fop:"",xmm0:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm1:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm2:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm3:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm4:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm5:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm6:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm7:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm8:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm9:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm10:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm11:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm12:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm13:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm14:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",xmm15:"128-bit floating point (four 32-bit singles or two 64-bit doubles)",mxcsr:"",ymm0h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm1h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm2h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm3h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm4h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm5h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm6h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm7h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm8h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm9h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm10h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm11h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm12h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm13h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm14h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm15h:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm0:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm1:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm2:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm3:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm4:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm5:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm6:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm7:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm8:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm9:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm10:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm11:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm12:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm13:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm14:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",ymm15:"256-bit floating point (eight 32-bit singles or four 64-bit doubles)",orig_rax:"",al:"",bl:"",cl:"",dl:"",sil:"",dil:"",bpl:"",spl:"",r8l:"",r9l:"",r10l:"",r11l:"",r12l:"",r13l:"",r14l:"",r15l:"",ah:"",bh:"",ch:"",dh:"",ax:"lower 16-bits of eax (accumulator register, used in arithmetic operations)",bx:"lower 16-bits of ebx (base register)",cx:"lower 16-bits of ecx (counter register, used in shift/rotate instructions and loops)",dx:"lower 16-bits of edx (data register, used in arithmetic and I/O)",si:"lower 16-bits of esi (source index register)",di:"lower 16-bits of edi (destination index register)",bp:"lower 16-bits of ebp (base pointer register, points to base of stack)",r8w:"",r9w:"",r10w:"",r11w:"",r12w:"",r13w:"",r14w:"",r15w:"",eax:"general purpose 32-bit register",ebx:"general purpose 32-bit register",ecx:"general purpose 32-bit register",edx:"general purpose 32-bit register",esi:"general purpose 32-bit register",edi:"general purpose 32-bit register",ebp:"32-bit base pointer",R0:"Argument1, Return Value (Temporary register)",R1:"Argument2, Second 32-bits if double or 64-bit int return value (Temporary register)",R2:"Arguments (Temporary register)",R3:"Arguments (Temporary register)",R4:"R7 is THUMB frame pointer (Permanent register)",R5:"R7 is THUMB frame pointer (Permanent register)",R6:"R7 is THUMB frame pointer (Permanent register)",R7:"R7 is THUMB frame pointer (Permanent register)",R8:"R7 is THUMB frame pointer (Permanent register)",R9:"R7 is THUMB frame pointer (Permanent register)",R10:"R7 is THUMB frame pointer (Permanent register)",R11:"ARM frame pointer (Permanent register)",R12:"(Temporary register)",R13:"Stack pointer (Permanent register)",R14:"Link register (Permanent register)",R15:"Program counter",s0:"VFP single-precision (Temporary register)",s1:"VFP single-precision (Temporary register)",s2:"VFP single-precision (Temporary register)",s3:"VFP single-precision (Temporary register)",s4:"VFP single-precision (Temporary register)",s5:"VFP single-precision (Temporary register)",s6:"VFP single-precision (Temporary register)",s7:"VFP single-precision (Temporary register)",s8:"VFP single-precision (Temporary register)",s9:"VFP single-precision (Temporary register)",s10:"VFP single-precision (Temporary register)",s11:"VFP single-precision (Temporary register)",s12:"VFP single-precision (Temporary register)",s13:"VFP single-precision (Temporary register)",s14:"VFP single-precision (Temporary register)",s15:"VFP single-precision (Temporary register)",s16:"VFP single-precision (Permanent register)",s17:"VFP single-precision (Permanent register)",s18:"VFP single-precision (Permanent register)",s19:"VFP single-precision (Permanent register)",s20:"VFP single-precision (Permanent register)",s21:"VFP single-precision (Permanent register)",s22:"VFP single-precision (Permanent register)",s23:"VFP single-precision (Permanent register)",s24:"VFP single-precision (Permanent register)",s25:"VFP single-precision (Permanent register)",s26:"VFP single-precision (Permanent register)",s27:"VFP single-precision (Permanent register)",s28:"VFP single-precision (Permanent register)",s29:"VFP single-precision (Permanent register)",s30:"VFP single-precision (Permanent register)",s31:"VFP single-precision (Permanent register)",d0:"VFP double-precision (Temporary register)",d1:"VFP double-precision (Temporary register)",d2:"VFP double-precision (Temporary register)",d3:"VFP double-precision (Temporary register)",d4:"VFP double-precision (Temporary register)",d5:"VFP double-precision (Temporary register)",d6:"VFP double-precision (Temporary register)",d7:"VFP double-precision (Temporary register)",d8:"VFP double-precision (Permanent register)",d9:"VFP double-precision (Permanent register)",d10:"VFP double-precision (Permanent register)",d11:"VFP double-precision (Permanent register)",d12:"VFP double-precision (Permanent register)",d13:"VFP double-precision (Permanent register)",d14:"VFP double-precision (Permanent register)",d15:"VFP double-precision (Permanent register)",fpsid:"VFP system ID register",fpscr:"VFP status and control register",fpexc:"VFP expception register",wr0:"WMMX SIMD data register",wr1:"WMMX SIMD data register",wr2:"WMMX SIMD data register",wr3:"WMMX SIMD data register",wr4:"WMMX SIMD data register",wr5:"WMMX SIMD data register",wr6:"WMMX SIMD data register",wr7:"WMMX SIMD data register",wr8:"WMMX SIMD data register",wr9:"WMMX SIMD data register",wr10:"WMMX SIMD data register",wr11:"WMMX SIMD data register",wr12:"WMMX SIMD data register",wr13:"WMMX SIMD data register",wr14:"WMMX SIMD data register",wr15:"WMMX SIMD data register",wr16:"WMMX SIMD data register",wc0:"WMMX status and control register",wc1:"WMMX status and control register",wc2:"WMMX status and control register",wc3:"WMMX status and control register",wc4:"WMMX status and control register",wc5:"WMMX status and control register",wc6:"WMMX status and control register",wc7:"WMMX status and control register",wc8:"WMMX status and control register",wc9:"WMMX status and control register",wc10:"WMMX status and control register",wc11:"WMMX status and control register",wc12:"WMMX status and control register",wc13:"WMMX status and control register",wc14:"WMMX status and control register",wc15:"WMMX status and control register",wc16:"WMMX status and control register",wcid:"WMMX coprocessor ID register, synonymous with wc0",wcon:"WMMX control register, synonymous with wc1",wcssf:"WMMX saturation SIMD flags, synonymous with wc2",wcasf:"WMMX saturation SIMD flags, synonymous with wc3",wcgr0:"WMMX control general-purpose register, synonymous with wc8",wcgr1:"WMMX control general-purpose register, synonymous with wc9",wcgr2:"WMMX control general-purpose register, synonymous with wc10",wcgr3:"WMMX control general-purpose register, synonymous with wc11"},S=function(){function e(e,t){for(var n=0;n0&&n>0&&e!==n||0===e&&T<=5)t.clear_register_name_cache(),t.clear_cached_values(),ve.run_gdb_command(t.get_update_cmds());else if(e===n){var r=[],o=l.store.get("register_names"),a=l.store.get("current_register_values"),s=l.store.get("previous_register_values"),c=function(e){var t=o[e],n=_.find(a,function(t){return t.number===e}),l="",u="",c="",d=x[t]||"";if(n&&n.value){l=n.value;var f=_.find(s,function(t){return t.number===e}),p=void 0,m=!1;f&&(p=f.value),void 0!==p&&l!==p&&(m=!0),0===n.value.indexOf("0x")&&(u=E.make_addrs_into_links_react(l),c=parseInt(n.value,16).toString(10)),m&&(t=i.a.createElement("span",{className:"highlight bold"},t),u=i.a.createElement("span",{className:"highlight bold"},u),c=i.a.createElement("span",{className:"highlight bold"},c))}r.push([t,u,c,d])};for(var d in o)c(d);return i.a.createElement(g,{data:r,header:["name","value (hex)","value (decimal)","description"],style:{fontSize:"0.9em"}})}return i.a.createElement("span",{className:"placeholder"},"no data to display")}}],[{key:"get_update_cmds",value:function(){var e=[];return!0===l.store.get("can_fetch_register_values")?(0===l.store.get("register_names").length&&(T<=5?(clearTimeout(C),T++,e.push(u.IGNORE_ERRORS_TOKEN_STR+"-data-list-register-names")):C=setTimeout(function(){T--},5e3)),e.push(u.IGNORE_ERRORS_TOKEN_STR+"-data-list-register-values x")):t.clear_cached_values(),e}},{key:"cache_register_names",value:function(e){l.store.set("register_names",e.filter(function(e){return e}))}},{key:"clear_register_name_cache",value:function(){l.store.set("register_names",[])}},{key:"clear_cached_values",value:function(){l.store.set("previous_register_values",{}),l.store.set("current_register_values",{})}},{key:"inferior_program_exited",value:function(){t.clear_cached_values()}}]),t}(),N=function(){function e(e,t){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:null;l.store.set("tooltip",{hidden:!1,show_for_n_sec:n,node:t,content:e})}},{key:"show_copied_tooltip_on_node",value:function(e){t.show_tooltip_on_node("copied!",e,1)}}]),t}(),I=function(){function e(e,t){for(var n=0;n0&&0!==t.indexOf('"')&&(t='"'+t+'"');var r=[];l.store.get("pretty_print")&&r.push("-enable-pretty-printing");var o=u.CREATE_VAR_STR+"-var-create - * "+t;r.push(o),ve.run_gdb_command(r)}else U._clear_state()},create_variable:function(e,t){U._queue.push({expression:e,expr_type:t}),U._fetch_next_in_queue()},created_variable:function(e){var t=U.expr_being_created;t&&(D.save_new_expression(t,U.expr_type,e.payload),U.expr_being_created=null,D.fetch_and_show_children_for_var(e.payload.name)),U._fetch_complete()},fetch_failed:function(e){"hover"===U.expr_type||Se.add_gdb_response_to_console(e),U._fetch_complete()},_fetch_complete:function(){U._is_fetching=!1,U._clear_state(),U._fetch_next_in_queue()},_clear_state:function(){U._is_fetching=!1}},D=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,i.a.Component),R(t,[{key:"render",value:function(){return"local"===this.props.expr_type?this.get_ul_for_local(this.props.obj):this.props.obj.numchild>0?this.get_ul_for_var_with_children(this.props.expression,this.props.obj,this.props.expr_type,!0):this.get_ul_for_var_without_children(this.props.expression,this.props.obj,this.props.expr_type,!0)}},{key:"get_ul_for_local",value:function(e){var n=e.can_be_expanded,r=_.isString(e.value)?E.make_addrs_into_links_react(e.value):e.value,o=n?function(){return t.create_variable(e.name,"local")}:function(){};return i.a.createElement("div",null,i.a.createElement("span",{onClick:o,className:n?"pointer":""},n?"+":""," ",e.name," "),r,i.a.createElement("span",{className:"var_type"},_.trim(e.type)))}},{key:"get_ul_for_var_with_children",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=void 0;if(t.show_children_in_ui){var a=[];if(t.children.length>0){var l=!0,s=!1,u=void 0;try{for(var c,_=t.children[Symbol.iterator]();!(l=(c=_.next()).done);l=!0){var d=c.value;d.numchild>0?a.push(i.a.createElement("li",{key:d.exp},this.get_ul_for_var_with_children(d.exp,d,n))):a.push(i.a.createElement("li",{key:d.exp},this.get_ul_for_var_without_children(d.exp,d,n)))}}catch(e){s=!0,u=e}finally{try{!l&&_.return&&_.return()}finally{if(s)throw u}}}o=i.a.createElement("ul",{key:t.exp},a)}else o="";var f=t.show_children_in_ui?"-":"+";return this._get_ul_for_var(e,t,n,r,f,o,t.numchild)}},{key:"get_ul_for_var_without_children",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return this._get_ul_for_var(e,t,n,r)}},{key:"_get_ul_for_var",value:function(e,n,r,o){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",l=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"",s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,u={fontSize:"0.8em",paddingLeft:"5px"},c=o&&"expr"===r?i.a.createElement("span",{style:u,className:"glyphicon glyphicon-trash pointer",onClick:function(){return t.delete_gdb_variable(n.name)}}):"",d=s>0,f=d&&("expr"===r||"local"===r)?i.a.createElement("span",{style:u,className:"glyphicon glyphicon-tree-deciduous pointer",onClick:function(){return t.click_draw_tree_gdb_variable(n.name)}}):"",p=d?"pointer":"",m="",h="",g=d?function(){return t.click_toggle_children_visibility(n.name)}:function(){};if(n.can_plot&&n.show_plot){var b=n.dom_id_for_plot;h=i.a.createElement("span",{style:u,className:"pointer glyphicon glyphicon-ban-circle",onClick:function(){return t.click_toggle_plot(n.name)},title:"remove x/y plot"}),m=i.a.createElement("div",{id:b,className:"plot"})}else n.can_plot&&!n.show_plot&&(h=i.a.createElement("span",{style:u,className:"glyphicon glyphicon glyphicon-equalizer pointer",onClick:function(){return t.click_toggle_plot(n.name)},title:"show x/y plot"}));return i.a.createElement("ul",{key:e,className:"varUL"},i.a.createElement("li",{className:"varLI"},i.a.createElement("span",{className:p,onClick:g},a," ",e," "),t._get_value_jsx(n),i.a.createElement("span",{className:"var_type"},_.trim(n.type)||""),i.a.createElement("div",{className:"right_help_icon_show_on_hover"},i.a.createElement(j,{content:t._get_full_path(n)}),":",f,h,c),m),l)}}],[{key:"_get_value_jsx",value:function(e){return e.is_int?i.a.createElement("div",{className:"inline"},i.a.createElement("span",{className:"gdbVarValue"},E.make_addrs_into_links_react(e._int_value_to_str_in_radix),i.a.createElement("button",{className:"btn btn-default btn-xs btn-radix",onClick:function(){t.change_radix(e)},title:"click to change radix",style:{fontSize:"60%"}},"base ",e._radix))):_.isString(e.value)?E.make_addrs_into_links_react(e.value):e.value}},{key:"change_radix",value:function(e){16===e._radix?e._radix=2:e._radix+=2,t._update_radix_values(e),l.store.set("expressions",l.store.get("expressions"))}},{key:"_get_full_path",value:function(e){if(!e)return"";function t(e,t){var n=t.expression||t.exp;return"public"===n||"private"===n||"protected"===n?e:e?n+"."+e:n}for(var n=t("",e),r=e.parent,o=0;r;)if(n=t(n,r),r=r.parent,(o+=1)>100){console.warn("exceeded maximum depth, breaking while loop");break}return n}},{key:"create_variable",value:function(e,t){U.create_variable(e,t)}},{key:"gdb_created_root_variable",value:function(e){U.created_variable(e)}},{key:"gdb_variable_fetch_failed",value:function(e){U.fetch_failed(e)}},{key:"gdb_created_children_variables",value:function(e){var n=M.expr_gdb_parent_var_currently_fetching_children;M.fetch_complete();var r=l.store.get("expressions"),o=t.get_obj_from_gdb_var_name(r,n);if(o){var a=e.payload.children.map(function(e){return t.prepare_gdb_obj_for_storage(e,o)});o.children=a,o.numchild=a.length,l.store.set("expressions",r);var i=!0,s=!1,u=void 0;try{for(var c,_=o.children[Symbol.iterator]();!(i=(c=_.next()).done);i=!0){var d=c.value;d.exp.includes("36)&&(console.warn("Got invalid radix. Setting to 10."),e._radix=10),e._int_value_to_str_in_radix=e._int_value_decimal.toString(e._radix),16===e._radix&&(e._int_value_to_str_in_radix="0x"+e._int_value_to_str_in_radix))}},{key:"_make_plot",value:function(e){var t="#"+e.dom_id_for_plot,n=$(t),r=[],o=0,a=!0,i=!1,l=void 0;try{for(var s,u=e.values[Symbol.iterator]();!(a=(s=u.next()).done);a=!0){var c=s.value;r.push([o,c]),o++}}catch(e){i=!0,l=e}finally{try{!a&&u.return&&u.return()}finally{if(i)throw l}}$.plot(n,[{data:r,shadowSize:0,color:"#33cdff"}],{series:{lines:{show:!0},points:{show:!0}},grid:{hoverable:!0,clickable:!1}}),n.bind("plothover",function(e,t,n){if(n){var r=n.datapoint[0],o=n.datapoint[1];$("#plot_coordinate_tooltip").html("("+r+", "+o+")").css({top:n.pageY+5,left:n.pageX+5}).show()}else $("#plot_coordinate_tooltip").hide()})}},{key:"plot_var_and_children",value:function(e){e.show_plot&&t._make_plot(e);var n=!0,r=!1,o=void 0;try{for(var a,i=e.children[Symbol.iterator]();!(n=(a=i.next()).done);n=!0){var l=a.value;t.plot_var_and_children(l)}}catch(e){r=!0,o=e}finally{try{!n&&i.return&&i.return()}finally{if(r)throw o}}}},{key:"fetch_and_show_children_for_var",value:function(e){var n=l.store.get("expressions"),r=t.get_obj_from_gdb_var_name(n,e);r.show_children_in_ui=!0,l.store.set("expressions",n),r.numchild&&0===r.children.length&&M.fetch_children(e,r.expr_type)}},{key:"hide_children_in_ui",value:function(e){var n=l.store.get("expressions"),r=t.get_obj_from_gdb_var_name(n,e);r&&(r.show_children_in_ui=!1,l.store.set("expressions",n))}},{key:"click_toggle_children_visibility",value:function(e){t._toggle_children_visibility(e)}},{key:"_toggle_children_visibility",value:function(e){var n=t.get_obj_from_gdb_var_name(l.store.get("expressions"),e);n?n.show_children_in_ui?t.hide_children_in_ui(e):t.fetch_and_show_children_for_var(e):console.error("developer error - expected to find gdb variable object")}},{key:"click_toggle_plot",value:function(e){var n=l.store.get("expressions"),r=t.get_obj_from_gdb_var_name(n,e);r&&(r.show_plot=!r.show_plot,l.store.set("expressions",n))}},{key:"get_update_cmds",value:function(){function e(t){var n=["-var-update --all-values "+t.name],r=!0,o=!1,a=void 0;try{for(var i,l=t.children[Symbol.iterator]();!(r=(i=l.next()).done);r=!0){var s=i.value;n=n.concat(e(s))}}catch(e){o=!0,a=e}finally{try{!r&&l.return&&l.return()}finally{if(o)throw a}}return n}var t=[],n=!0,r=!1,o=void 0;try{for(var a,i=l.store.get("expressions")[Symbol.iterator]();!(n=(a=i.next()).done);n=!0){var s=a.value;t=t.concat(e(s))}}catch(e){r=!0,o=e}finally{try{!n&&i.return&&i.return()}finally{if(r)throw o}}return t}},{key:"handle_changelist",value:function(e){var n=function(e){var n=l.store.get("expressions"),r=t.get_obj_from_gdb_var_name(n,e.name);if(r){if(1===parseInt(e.has_more)&&"name"in e&&M.fetch_children(e.name,r.expr_type),"new_children"in e){var o=e.new_children.map(function(e){return t.prepare_gdb_obj_for_storage(e,r)});r.children=r.children.concat(o)}r=Object.assign(r,e),t._update_numeric_properties(r),t._update_radix_values(r),r.can_plot&&r.values.push(r._float_value),l.store.set("expressions",n)}},r=!0,o=!1,a=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done);r=!0){n(i.value)}}catch(e){o=!0,a=e}finally{try{!r&&s.return&&s.return()}finally{if(o)throw a}}}},{key:"click_draw_tree_gdb_variable",value:function(e){l.store.set("root_gdb_tree_var",e)}},{key:"delete_gdb_variable",value:function(e){t._delete_local_gdb_var_data(e),ve.run_gdb_command("-var-delete "+e)}},{key:"_delete_local_gdb_var_data",value:function(e){var t=l.store.get("expressions");_.remove(t,function(t){return t.name===e}),l.store.set("expressions",t)}},{key:"save_new_expression",value:function(e,n,r){var o=t.prepare_gdb_obj_for_storage(r,null);o.expression=e;var a=l.store.get("expressions");a.push(o),l.store.set("expressions",a)}},{key:"get_child_with_name",value:function(e,t){var n=!0,r=!1,o=void 0;try{for(var a,i=e[Symbol.iterator]();!(n=(a=i.next()).done);n=!0){var l=a.value;if(l.name===t)return l}}catch(e){r=!0,o=e}finally{try{!n&&i.return&&i.return()}finally{if(r)throw o}}}},{key:"get_root_name_from_gdbvar_name",value:function(e){return _.isString(e)?e.split(".")[0]:""}},{key:"get_child_names_from_gdbvar_name",value:function(e){return _.isString(e)?e.split(".").slice(1,e.length):""}},{key:"get_obj_from_gdb_var_name",value:function(e,n){var r=t.get_root_name_from_gdbvar_name(n),o=t.get_child_names_from_gdbvar_name(n),a=e.filter(function(e){return e.name===r});if(1===a.length){for(var i=a[0],l=r,s=0;s",">"),r=l.store.get("gdb_mi_output");r.length>t.MAX_OUTPUT_ENTRIES;)r.shift();r.push(n),l.store.set("gdb_mi_output",r)}}]),t}();L.MAX_OUTPUT_ENTRIES=500;var z=L,B={persist_value_for_key:function(e){try{var t=l.store.get(e);localStorage.setItem(e,JSON.stringify(t))}catch(e){console.error(e)}},get_table:function(e,t){var n=["2&&void 0!==arguments[2]?arguments[2]:"")+'">'];if(e){n.push(""),n.push("");var r=!0,o=!1,a=void 0;try{for(var i,l=e[Symbol.iterator]();!(r=(i=l.next()).done);r=!0){var s=i.value;n.push("")}}catch(e){o=!0,a=e}finally{try{!r&&l.return&&l.return()}finally{if(o)throw a}}n.push(""),n.push("")}if(t){n.push("");var u=!0,c=!1,_=void 0;try{for(var d,f=t[Symbol.iterator]();!(u=(d=f.next()).done);u=!0){var p=d.value;n.push("");var m=!0,h=!1,g=void 0;try{for(var b,y=p[Symbol.iterator]();!(m=(b=y.next()).done);m=!0){var v=b.value;n.push("")}}catch(e){h=!0,g=e}finally{try{!m&&y.return&&y.return()}finally{if(h)throw g}}n.push("")}}catch(e){c=!0,_=e}finally{try{!u&&f.return&&f.return()}finally{if(c)throw _}}}return n.push(""),n.push("
"+s+"
"+v+"
"),n.join("\n")},escape:function(e){return e.replace(/>/g,">").replace(/").replace(/\\r/g,"").replace(/\\"/g,'"').replace(/\\t/g," ")},get_text_from_html:function(e){var t=document.createElement("DIV");return t.innerHTML=e,t.textContent||t.innerText||""},parse_fullname_and_line:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,n=e.split(":"),r=n[0],o=t;return 2===n.length&&(o=n[1]),[r,parseInt(o)]},string_to_array_safe_quotes:function(e){for(var t=[],n="",r=!1,o=0;ot[n])return!0;return!1}};i.a;var V=void 0;V=debug?console.info:function(){};var W={_is_fetching:!1,_queue:[],_fetch:function(e,t,n){if(G.is_missing_file(e))return console.warn("tried to fetch a file known to be missing "+e),W._is_fetching=!1,void W._fetch_next();_.isString(e)||(console.warn("trying to fetch filename that is not a string",e),G.add_missing_file(e),W._is_fetching=!1,W._fetch_next()),W._is_fetching=!0;var r={start_line:t,end_line:n,path:e,highlight:l.store.get("highlight_source_code")};$.ajax({beforeSend:function(e){e.setRequestHeader("x-csrftoken",initial_data.csrf_token)},url:"/read_file",cache:!1,type:"GET",data:r,success:function(t){t.source_code;var n={},r=t.start_line,o=!0,a=!1,i=void 0;try{for(var l,s=t.source_code_array[Symbol.iterator]();!(o=(l=s.next()).done);o=!0){var u=l.value;n[r]=u,r++}}catch(e){a=!0,i=e}finally{try{!o&&s.return&&s.return()}finally{if(a)throw i}}G.add_source_file_to_cache(e,n,t.last_modified_unix_sec,t.num_lines_in_file)},error:function(t){t.responseJSON&&t.responseJSON.message?Se.add_console_entries(_.escape(t.responseJSON.message),u.console_entry_type.STD_ERR):Se.add_console_entries(t.statusText+" ("+t.status+" error)",u.console_entry_type.STD_ERR),G.add_missing_file(e)},complete:function(){W._is_fetching=!1,W._queue=W._queue.filter(function(t){return t.fullname!==e}),W._fetch_next()}})},_fetch_next:function(){if(!W._is_fetching&&W._queue.length){var e=W._queue.shift();W._fetch(e.fullname,e.start_line,e.end_line)}},fetch_complete:function(){W._is_fetching=!1,W._fetch_next()},fetch:function(e,t,n){t||(t=1,console.warn("expected start line")),n||(n=t,console.warn("expected end line")),G.lines_are_cached(e,t,n)?V("not fetching "+e+":"+t+":"+n+" because it's cached"):(W._queue.push({fullname:e,start_line:t,end_line:n}),W._fetch_next())}},G={warning_shown_for_old_binary:!1,unfetchable_disassembly_addresses:{},disassembly_addr_being_fetched:null,init:function(){l.store.subscribeToKeys(["inferior_program","source_code_selection_state","paused_on_frame","current_assembly_address","disassembly_for_missing_file","highlight_source_code","missing_files","files_being_fetched","gdb_version_array","interpreter","fullname_to_render","line_of_source_to_flash","cached_source_files","max_lines_of_code_to_fetch"],G._store_change_callback)},user_select_file_to_view:function(e,t){l.store.set("source_code_selection_state",u.source_code_selection_states.USER_SELECTION),l.store.set("fullname_to_render",e),l.store.set("line_of_source_to_flash",t),l.store.set("make_current_line_visible",!0),l.store.set("source_code_infinite_scrolling",!1)},_store_change_callback:function(){if(l.store.get("inferior_program")!==u.inferior_states.running){var e=l.store.get("source_code_selection_state"),t=null,n=!1,r=null,o=null,a=l.store.get("paused_on_frame");a&&(o=a.fullname);var i=void 0;e===u.source_code_selection_states.USER_SELECTION?(t=l.store.get("fullname_to_render"),n=!1,r=null,i=parseInt(l.store.get("line_of_source_to_flash"))):e===u.source_code_selection_states.PAUSED_FRAME&&(n=l.store.get("inferior_program")===u.inferior_states.paused,r=l.store.get("current_assembly_address"),t=o,i=parseInt(l.store.get("line_of_source_to_flash")));var s,c,_=l.store.get("source_code_infinite_scrolling"),d=G.assembly_is_cached(t),f=G.is_missing_file(t),p=G.get_start_and_end_lines(t,i,_);s=p.start_line,c=p.end_line,i=p.require_cached_line_num,G.update_source_code_state(t,s,i,c,d,f,n,r)}},get_start_and_end_lines:function(e,t,n){var r=void 0,o=void 0;if(n)r=l.store.get("source_linenum_to_display_start"),o=l.store.get("source_linenum_to_display_end"),t=r;else{var a=G.get_source_file_obj_from_cache(e);t||(t=1),r=Math.max(Math.floor(t-l.store.get("max_lines_of_code_to_fetch")/2),1),o=Math.ceil(r+l.store.get("max_lines_of_code_to_fetch")),a&&(o=Math.ceil(Math.min(o,G.get_num_lines_in_file(e)))),r>o&&(r=Math.floor(Math.max(1,o-l.store.get("max_lines_of_code_to_fetch")))),t=Math.min(t,o)}return{start_line:r,end_line:o,require_cached_line_num:t}},update_source_code_state:function(e,t,n,r,o,a,i,s){var c=u.source_code_states,_=G.line_is_cached(e,n);e&&_?(l.store.set("source_code_state",o?c.ASSM_AND_SOURCE_CACHED:c.SOURCE_CACHED),l.store.set("source_linenum_to_display_start",t),r=Math.min(r,G.get_num_lines_in_file(e)),l.store.set("source_linenum_to_display_end",r)):e&&!a?(l.store.set("source_code_state",c.FETCHING_SOURCE),W.fetch(e,t,r)):i&&s&&l.store.get("disassembly_for_missing_file").some(function(e){return parseInt(e.address,16)===parseInt(s,16)})?l.store.set("source_code_state",c.ASSM_CACHED):i&&s?s in G.unfetchable_disassembly_addresses?l.store.set("source_code_state",c.ASSM_UNAVAILABLE):(l.store.set("source_code_state",c.FETCHING_ASSM),G.fetch_disassembly_for_missing_file(s)):a?l.store.set("source_code_state",c.FILE_MISSING):l.store.set("source_code_state",c.NONE_AVAILABLE)},get_num_lines_in_file:function(e,t){if(t||(t=G.get_source_file_obj_from_cache(e)),t)return t.num_lines_in_file?t.num_lines_in_file:(console.error('Developer error: expected key "num_lines_in_file"'),1/0);console.error("Developer error: expected to find file object for "+e)},lines_are_cached:function(e,t,n){var r=G.get_source_file_obj_from_cache(e),o=t;if(!r)return!1;var a=G.get_num_lines_in_file(e,r);if(t>a)return!1;for(var i=Math.min(n,a);o<=i;){if(!G.line_is_cached(e,o,r))return!1;o++}return!0},line_is_cached:function(e,t,n){return n||(n=G.get_source_file_obj_from_cache(e)),n&&n.source_code_obj&&void 0!==n.source_code_obj[t]},get_line_from_file:function(e,t){var n=G.get_source_file_obj_from_cache(e);return n?n.source_code_obj[t]:null},assembly_is_cached:function(e){var t=G.get_source_file_obj_from_cache(e);return t&&t.assembly&&Object.keys(t.assembly).length},get_source_file_obj_from_cache:function(e){var t=l.store.get("cached_source_files"),n=!0,r=!1,o=void 0;try{for(var a,i=t[Symbol.iterator]();!(n=(a=i.next()).done);n=!0){var s=a.value;if(s.fullname===e)return s}}catch(e){r=!0,o=e}finally{try{!n&&i.return&&i.return()}finally{if(r)throw o}}return null},add_source_file_to_cache:function(e,t,n,r){var o=G.get_source_file_obj_from_cache(e);if(null===o){var a={fullname:e,source_code_obj:t,assembly:{},last_modified_unix_sec:n,num_lines_in_file:r,exists:!0},i=l.store.get("cached_source_files");i.push(a),l.store.set("cached_source_files",i),G.warning_shown_for_old_binary=!1,G.show_modal_if_file_modified_after_binary(e,a.last_modified_unix_sec)}else Object.assign(o.source_code_obj,t),l.store.set("cached_source_files",l.store.get("cached_source_files"))},show_modal_if_file_modified_after_binary:function(e,t){l.store.get("inferior_binary_path")&&t>l.store.get("inferior_binary_path_last_modified_unix_sec")&&!1===G.warning_shown_for_old_binary&&(Se.show_modal("Warning",i.a.createElement("div",null,"This source file was modified ",i.a.createElement("span",{className:"bold"},"after")," the binary was compiled. Recompile the binary, then try again. Otherwise the source code may not match the binary.",i.a.createElement("p",null),i.a.createElement("p",null,"Source file: "+e+", modified "+moment(1e3*t).format(u.DATE_FORMAT)),i.a.createElement("p",null,"Binary: "+l.store.get("inferior_binary_path")+", modified "+moment(1e3*l.store.get("inferior_binary_path_last_modified_unix_sec")).format(u.DATE_FORMAT),")"))),G.warning_shown_for_old_binary=!0)},get_cached_assembly_for_file:function(e){var t=!0,n=!1,r=void 0;try{for(var o,a=l.store.get("cached_source_files")[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){var i=o.value;if(i.fullname===e)return i.assembly}}catch(e){n=!0,r=e}finally{try{!t&&a.return&&a.return()}finally{if(n)throw r}}return[]},refresh_cached_source_files:function(){G.clear_cached_source_files()},clear_cached_source_files:function(){l.store.set("cached_source_files",[])},fetch_more_source_at_beginning:function(){var e=l.store.get("fullname_to_render"),t=l.store.get("source_linenum_to_display_start")-1;l.store.set("source_linenum_to_display_start",Math.max(l.store.get("source_linenum_to_display_start")-Math.floor(l.store.get("max_lines_of_code_to_fetch")/2),1)),l.store.set("source_linenum_to_display_end",Math.ceil(l.store.get("source_linenum_to_display_start")+l.store.get("max_lines_of_code_to_fetch"))),Se.view_file(e,t),W.fetch(e,l.store.get("source_linenum_to_display_start"),l.store.get("source_linenum_to_display_end"))},fetch_more_source_at_end:function(){l.store.set("source_code_infinite_scrolling",!0);var e=l.store.get("fullname_to_render"),t=l.store.get("source_linenum_to_display_end")+Math.ceil(l.store.get("max_lines_of_code_to_fetch")/2);G.get_source_file_obj_from_cache(e)&&(t=Math.min(t,G.get_num_lines_in_file(e)));var n=t-l.store.get("max_lines_of_code_to_fetch");n=Math.max(1,n),l.store.set("source_linenum_to_display_end",t),l.store.set("source_linenum_to_display_start",n),W.fetch(e,l.store.get("source_linenum_to_display_start"),l.store.get("source_linenum_to_display_end"))},is_missing_file:function(e){return-1!==l.store.get("missing_files").indexOf(e)},add_missing_file:function(e){var t=l.store.get("missing_files");t.push(e),l.store.set("missing_files",t)},get_dissasembly_format_num:function(e){return 0===e.length?4:e[0]<7||7===parseInt(e[0])&&e[1]<=7?3:4},get_fetch_disassembly_command:function(e,t,n){if(_.isString(e))return"gdb"===l.store.get("interpreter")?u.INLINE_DISASSEMBLY_STR+"-data-disassemble -f "+e+" -l "+t+" -n 1000 -- "+n:(console.log("TODOLLDB - get mi command to disassemble"),"disassemble --frame");console.warn("not fetching undefined file")},fetch_assembly_cur_line:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;null!==e&&_.isNumber(e)||(e=G.get_dissasembly_format_num(l.store.get("gdb_version_array")));var t=l.store.get("fullname_to_render"),n=parseInt(l.store.get("line_of_source_to_flash"));n||(n=1),G.fetch_disassembly(t,n,e)},fetch_disassembly:function(e,t,n){var r=G.get_fetch_disassembly_command(e,t,n);r&&ve.run_gdb_command(r)},fetch_disassembly_for_missing_file:function(e){if(!window.isNaN(e)){var t=parseInt(e,16),n=t+100;G.disassembly_addr_being_fetched=e,ve.run_gdb_command(u.DISASSEMBLY_FOR_MISSING_FILE_STR+"-data-disassemble -s 0x"+t.toString(16)+" -e 0x"+n.toString(16)+" -- 0")}},fetch_disassembly_for_missing_file_failed:function(){var e=G.disassembly_addr_being_fetched;G.unfetchable_disassembly_addresses[e]=!0,G.disassembly_addr_being_fetched=null},save_new_assembly:function(e,t){G.disassembly_addr_being_fetched=null,_.isArray(e)&&0!==e.length||console.error("Attempted to save unexpected assembly",e);var n=e[0].fullname;if(t!==u.DISASSEMBLY_FOR_MISSING_FILE_INT){var r={},o=!0,a=!1,i=void 0;try{for(var s,c=e[Symbol.iterator]();!(o=(s=c.next()).done);o=!0){var d=s.value;r[parseInt(d.line)]=d.line_asm_insn}}catch(e){a=!0,i=e}finally{try{!o&&c.return&&c.return()}finally{if(a)throw i}}var f=l.store.get("cached_source_files"),p=!0,m=!1,h=void 0;try{for(var g,b=f[Symbol.iterator]();!(p=(g=b.next()).done);p=!0){var y=g.value;if(y.fullname===n){y.assembly=Object.assign(y.assembly,r);var v=Math.max(Object.keys(y.assembly));if(v>Math.max(Object.keys(y.source_code_obj))){y.source_code_obj[v]="";for(var w=0;w40&&(n=n.slice(0,40)+"..."),re.add_line(e,t,n)}return n?i.a.createElement("span",{className:"monospace",style:{whiteSpace:"nowrap",fontSize:"0.9em"}},n||i.a.createElement("br",null)):"(file not cached)"}},{key:"get_delete_jsx",value:function(e){return i.a.createElement("div",{style:{width:"10px",display:"inline"},className:"pointer breakpoint_trashcan",onClick:function(t){t.stopPropagation(),ae.delete_breakpoint(e)},title:"Delete breakpoint "+e},i.a.createElement("span",{className:"glyphicon glyphicon-trash"}," "))}},{key:"render",value:function(){var e=this.props.bkpt,t="y"===e.enabled?"checked":"",n=this.get_source_line(e.fullname_to_display,e.line),r=void 0,o=void 0,a=void 0;e.is_child_breakpoint?(a=e.parent_breakpoint_number,r=i.a.createElement("span",{className:"glyphicon glyphicon-th-list",title:"Child breakpoint automatically created from parent. If parent or any child of this tree is deleted, all related breakpoints will be deleted."})):e.is_parent_breakpoint?(r=i.a.createElement("span",{className:"glyphicon glyphicon-th-list",title:"Parent breakpoint with one or more child breakpoints. If parent or any child of this tree is deleted, all related breakpoints will be deleted."}),a=e.number):(a=e.number,r="");var l=this.get_delete_jsx(a),s=i.a.createElement(Q,{fullname:e.fullname_to_display,file:e.fullname_to_display,line:e.line});if(e.is_parent_breakpoint)o=i.a.createElement("span",{className:"placeholder"},r," parent breakpoint on inline, template, or ambiguous location");else{var u=void 0===e.func?"(unknown function)":e.func;o=i.a.createElement("div",{style:{display:"inline"}},i.a.createElement("span",{className:"monospace",style:{paddingRight:"5px"}},r," ",u),i.a.createElement("span",{style:{color:"#bbbbbb",fontStyle:"italic"}},"thread groups: ",e["thread-groups"]))}return i.a.createElement("div",{className:"breakpoint",onClick:function(){return Se.view_file(e.fullname_to_display,e.line)}},i.a.createElement("table",{style:{width:"100%",fontSize:"0.9em",borderWidth:"1px",borderColor:"black"},className:"lighttext table-condensed"},i.a.createElement("tbody",null,i.a.createElement("tr",null,i.a.createElement("td",null,i.a.createElement("input",{type:"checkbox",checked:t,onChange:function(){return ae.enable_or_disable_bkpt(t,e.number)}}),o," ",l)),i.a.createElement("tr",null,i.a.createElement("td",null,s)),i.a.createElement("tr",null,i.a.createElement("td",null,n)))))}}]),t}(),ae=function(e){function t(){ee(this,t);var e=te(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return l.store.connectComponentState(e,["breakpoints"]),e}return ne(t,i.a.Component),Z(t,[{key:"render",value:function(){var e=[],t=!0,n=!1,r=void 0;try{for(var o,a=l.store.get("breakpoints")[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){var s=o.value;e.push(i.a.createElement(oe,{bkpt:s,key:s.number}))}}catch(e){n=!0,r=e}finally{try{!t&&a.return&&a.return()}finally{if(n)throw r}}return e.length?e:i.a.createElement("span",{className:"placeholder"},"no breakpoints")}}],[{key:"enable_or_disable_bkpt",value:function(e,t){e?ve.run_gdb_command(["-break-disable "+t,ve.get_break_list_cmd()]):ve.run_gdb_command(["-break-enable "+t,ve.get_break_list_cmd()])}},{key:"remove_breakpoint_if_present",value:function(e,n){if(t.has_breakpoint(e,n)){var r=t.get_breakpoint_number(e,n),o=[ve.get_delete_break_cmd(r),ve.get_break_list_cmd()];ve.run_gdb_command(o)}}},{key:"add_or_remove_breakpoint",value:function(e,n){t.has_breakpoint(e,n)?t.remove_breakpoint_if_present(e,n):t.add_breakpoint(e,n)}},{key:"add_breakpoint",value:function(e,t){ve.run_gdb_command(ve.get_insert_break_cmd(e,t))}},{key:"has_breakpoint",value:function(e,t){var n=l.store.get("breakpoints"),r=!0,o=!1,a=void 0;try{for(var i,s=n[Symbol.iterator]();!(r=(i=s.next()).done);r=!0){var u=i.value;if(u.fullname===e&&u.line==t)return!0}}catch(e){o=!0,a=e}finally{try{!r&&s.return&&s.return()}finally{if(o)throw a}}return!1}},{key:"get_breakpoint_number",value:function(e,t){var n=l.store.get("breakpoints"),r=!0,o=!1,a=void 0;try{for(var i,s=n[Symbol.iterator]();!(r=(i=s.next()).done);r=!0){var u=i.value;if(u.fullname===e&&u.line==t)return u.number}}catch(e){o=!0,a=e}finally{try{!r&&s.return&&s.return()}finally{if(o)throw a}}console.error("could not find breakpoint for "+e+":"+t)}},{key:"delete_breakpoint",value:function(e){ve.run_gdb_command([ve.get_delete_break_cmd(e),ve.get_break_list_cmd()])}},{key:"get_breakpoint_lines_for_file",value:function(e){return l.store.get("breakpoints").filter(function(t){return t.fullname_to_display===e&&"y"===t.enabled}).map(function(e){return parseInt(e.line)})}},{key:"get_disabled_breakpoint_lines_for_file",value:function(e){return l.store.get("breakpoints").filter(function(t){return t.fullname_to_display===e&&"y"!==t.enabled}).map(function(e){return parseInt(e.line)})}},{key:"save_breakpoints",value:function(e){if(l.store.set("breakpoints",[]),e&&e.BreakpointTable&&e.BreakpointTable.body){var n=!0,r=!1,o=void 0;try{for(var a,i=e.BreakpointTable.body[Symbol.iterator]();!(n=(a=i.next()).done);n=!0){var s=a.value;t.save_breakpoint(s)}}catch(e){r=!0,o=e}finally{try{!n&&i.return&&i.return()}finally{if(r)throw o}}}}},{key:"save_breakpoint",value:function(e){var t=Object.assign({},e);if(t.is_parent_breakpoint="(MULTIPLE)"===t.addr,t.is_child_breakpoint=parseInt(t.number)!==parseFloat(t.number),t.is_normal_breakpoint=!t.is_parent_breakpoint&&!t.is_child_breakpoint,t.is_child_breakpoint&&(t.parent_breakpoint_number=parseInt(t.number)),"fullname"in e&&e.fullname)t.fullname_to_display=e.fullname;else if("original-location"in e&&e["original-location"]){var n=B.parse_fullname_and_line(e["original-location"]),r=J(n,2);t.fullname_to_display=r[0],t.line=r[1]}else t.fullname_to_display=null;var o=l.store.get("breakpoints");return-1===o.indexOf(t)&&(o.push(t),l.store.set("breakpoints",o)),t}}]),t}(),ie=ae,le=function(){function e(e,t){for(var n=0;n0){var h=_.uniq(p.payload.files.map(function(e){return e.fullname})).sort();l.store.set("source_file_paths",h);var g="c_family";if(h.some(function(e){return e.endsWith(".rs")})){g="rust";var b=l.store.get("gdb_version_array");7==b[0]&&12==b[1]&&(Se.add_console_entries("Warning: Due to a bug in gdb version "+l.store.get("gdb_version")+", gdbgui cannot show register values with rust executables. See https://github.com/cs01/gdbgui/issues/64 for details.",u.console_entry_type.STD_ERR),l.store.set("can_fetch_register_values",!1))}else h.some(function(e){return e.endsWith(".go")})&&(g="go");l.store.set("language",g)}else l.store.set("source_file_paths",["Either no executable is loaded or the executable was compiled without debug symbols."]),l.store.get("inferior_binary_path")&&he.render("Warning",i.a.createElement("div",null,"This binary was not compiled with debug symbols. Recompile with the -g flag for a better debugging experience.",i.a.createElement("p",null),i.a.createElement("p",null),"Read more:"," ",i.a.createElement("a",{href:"http://www.delorie.com/gnu/docs/gdb/gdb_17.html"},"http://www.delorie.com/gnu/docs/gdb/gdb_17.html")));"memory"in p.payload&&E.add_value_to_cache(p.payload.memory[0].begin,p.payload.memory[0].contents),"variables"in p.payload&&pe.save_locals(p.payload.variables),"changelist"in p.payload&&A.handle_changelist(p.payload.changelist),"has_more"in p.payload&&"numchild"in p.payload&&"children"in p.payload&&A.gdb_created_children_variables(p),"name"in p.payload&&A.gdb_created_root_variable(p)}else if("result"===p.type&&"error"===p.message)Se.add_gdb_response_to_console(p),p.payload.msg===l.store.get("inferior_binary_path")+": No such file or directory."&&Se.inferior_program_exited();else if("console"===p.type){if(Se.add_console_entries(p.payload,"stderr"===p.stream?u.console_entry_type.STD_ERR:u.console_entry_type.STD_OUT),void 0===l.store.get("gdb_version")){var y=/GNU gdb \(.*\)\s+([0-9|.]*)\\n/g.exec(p.payload);_.isArray(y)&&2===y.length&&(l.store.set("gdb_version",y[1]),l.store.set("gdb_version_array",y[1].split(".")))}}else"output"===p.type||"target"===p.type||"log"===p.type?Se.add_console_entries(p.payload,"stderr"===p.stream?u.console_entry_type.STD_ERR:u.console_entry_type.STD_OUT):"notify"===p.type&&"thread-group-started"===p.message&&l.store.set("inferior_pid",parseInt(p.payload.pid));p.message&&"stopped"===p.message?p.payload&&p.payload.reason?p.payload.reason.includes("exited")?Se.inferior_program_exited():p.payload.reason.includes("breakpoint-hit")||p.payload.reason.includes("end-stepping-range")?(p.payload["new-thread-id"]&&de.set_thread_id(p.payload["new-thread-id"]),Se.inferior_program_paused(p.payload.frame)):"signal-received"===p.payload.reason?(Se.inferior_program_paused(p.payload.frame),"SIGINT"!==p.payload["signal-name"]&&(Se.add_console_entries("gdbgui noticed a signal was recieved ("+p.payload["signal-meaning"]+", "+p.payload["signal-name"]+").",u.console_entry_type.GDBGUI_OUTPUT),Se.add_console_entries("If the program exited due to a fault, you can attempt to re-enter the state of the program when the fault ",u.console_entry_type.GDBGUI_OUTPUT),Se.add_console_entries("occurred by clicking the below button.",u.console_entry_type.GDBGUI_OUTPUT),Se.add_console_entries("Re-Enter Program (backtrace)",u.console_entry_type.BACKTRACE_LINK))):(console.warn("TODO handle new reason for stopping. Notify developer of this."),console.warn(p)):Se.inferior_program_paused(p.payload.frame):p.message&&"connected"===p.message&&Se.remote_connected()}}catch(e){s=!0,c=e}finally{try{!a&&f.return&&f.return()}finally{if(s)throw c}}}};i.a;var be=void 0;be=debug?console.info:function(){};var ye={init:function(){ye.socket=io.connect("/gdb_listener",{timeout:3e5,query:"csrf_token="+initial_data.csrf_token+"&gdbpid="+initial_data.gdbpid}),ye.socket.on("connect",function(){be("connected")}),ye.socket.on("gdb_response",function(e){clearTimeout(ye._waiting_for_response_timeout),l.store.set("waiting_for_response",!1),ge(e)}),ye.socket.on("error_running_gdb_command",function(e){Se.add_console_entries("Error occurred on server when running gdb command: "+e.message,u.console_entry_type.STD_ERR)}),ye.socket.on("server_error",function(e){Se.add_console_entries("Server message: "+e.message,u.console_entry_type.STD_ERR)}),ye.socket.on("gdb_pid",function(e){var t=e.pid,n=e.message,r=e.error,o=e.using_existing;Se.add_console_entries(n,r?u.console_entry_type.STD_ERR:u.console_entry_type.GDBGUI_OUTPUT),l.store.set("gdb_pid",t),Se.add_console_entries(l.store.get("interpreter")+" process "+t+" is running for this tab",u.console_entry_type.GDBGUI_OUTPUT),o?Se.refresh_state_for_gdb_pause():ye.run_initial_commands()}),ye.socket.on("disconnect",function(){window.onbeforeunload=function(){return null},Se.show_modal("",i.a.createElement("span",null,"The gdbgui server has shutdown. This tab will no longer function as expected.")),be("disconnected"),debug&&window.location.reload(!0)})},_waiting_for_response_timeout:null,click_run_button:function(){Se.inferior_program_running(),ye.run_gdb_command("-exec-run")},run_initial_commands:function(){ye.run_gdb_command("set breakpoint pending on")},inferior_is_paused:function(){return-1!==[u.inferior_states.unknown,u.inferior_states.paused].indexOf(l.store.get("inferior_program"))},click_continue_button:function(){Se.inferior_program_running(),ye.run_gdb_command("-exec-continue"+(l.store.get("debug_in_reverse")?" --reverse":""))},click_next_button:function(){Se.inferior_program_running(),ye.run_gdb_command("-exec-next"+(l.store.get("debug_in_reverse")?" --reverse":""))},click_step_button:function(){Se.inferior_program_running(),ye.run_gdb_command("-exec-step"+(l.store.get("debug_in_reverse")?" --reverse":""))},click_return_button:function(){ye.run_gdb_command("-exec-return"),Se.inferior_program_paused()},click_next_instruction_button:function(){Se.inferior_program_running(),ye.run_gdb_command("-exec-next-instruction"+(l.store.get("debug_in_reverse")?" --reverse":""))},click_step_instruction_button:function(){Se.inferior_program_running(),ye.run_gdb_command("-exec-step-instruction"+(l.store.get("debug_in_reverse")?" --reverse":""))},click_send_interrupt_button:function(){Se.inferior_program_running(),ye.run_gdb_command("-exec-interrupt")},send_autocomplete_command:function(e){Se.inferior_program_running(),ye.run_gdb_command("complete "+e)},click_gdb_cmd_button:function(e){if(void 0!==e.currentTarget.dataset.cmd)ye.run_gdb_command(e.currentTarget.dataset.cmd);else if(void 0!==e.currentTarget.dataset.cmd0){for(var t=[],n=0,r=e.currentTarget.dataset["cmd"+n];void 0!==r&&n<100;)t.push(r),n++,r=e.currentTarget.dataset["cmd"+n];ye.run_gdb_command(t)}else console.error("expected cmd or cmd0 [cmd1, cmd2, ...] data attribute(s) on element")},select_frame:function(e){ye.run_command_and_refresh_state("-stack-select-frame "+e)},select_thread_id:function(e){ye.run_command_and_refresh_state("-thread-select "+e)},waiting_for_response:function(){l.store.set("waiting_for_response",!0);clearTimeout(ye._waiting_for_response_timeout),ye._waiting_for_response_timeout=setTimeout(function(){l.store.set("waiting_for_response",!1),Se.add_console_entries("No gdb response received after 10 seconds.",u.console_entry_type.GDBGUI_OUTPUT),Se.add_console_entries("Possible reasons include:",u.console_entry_type.GDBGUI_OUTPUT),Se.add_console_entries("1) gdbgui, gdb, or the debugged process is not running.",u.console_entry_type.GDBGUI_OUTPUT),Se.add_console_entries("2) gdb or the inferior process is busy running and needs to be interrupted (press the pause button up top).",u.console_entry_type.GDBGUI_OUTPUT),Se.add_console_entries("3) Something is just taking a long time to finish and respond back to this browser window, in which case you can just keep waiting.",u.console_entry_type.GDBGUI_OUTPUT)},1e4)},run_gdb_command:function(e){if(""!==_.trim(e)){var t=e;_.isString(t)&&(t=[t]),l.store.get("show_all_sent_commands_in_console")&&Se.add_console_entries(t,u.console_entry_type.SENT_COMMAND),ye.waiting_for_response(),ye.socket.emit("run_gdb_command",{cmd:t})}},run_command_and_refresh_state:function(e){var t=[];_.isArray(e)?t=t.concat(e):_.isString(e)&&e.length>0&&t.push(e),t=t.concat(ye._get_refresh_state_for_pause_cmds()),ye.run_gdb_command(t)},backtrace:function(){var e=["backtrace"];e=e.concat(ye._get_refresh_state_for_pause_cmds()),l.store.set("inferior_program",u.inferior_states.paused),ye.run_gdb_command(e)},_get_refresh_state_for_pause_cmds:function(){var e=[u.IGNORE_ERRORS_TOKEN_STR+"-thread-info",u.IGNORE_ERRORS_TOKEN_STR+"-stack-list-variables --simple-values",ye.get_flush_output_cmd()];return"gdb"===l.store.get("interpreter")?e.push(u.IGNORE_ERRORS_TOKEN_STR+"-var-update --all-values *"):"lldb"===l.store.get("interpreter")&&(e=e.concat(A.get_update_cmds())),(e=(e=e.concat(O.get_update_cmds())).concat(E.get_gdb_commands_from_state())).push(ye.get_break_list_cmd()),e.push(u.IGNORE_ERRORS_TOKEN_STR+"-stack-list-frames"),e},refresh_breakpoints:function(){ye.run_gdb_command([ye.get_break_list_cmd()])},get_inferior_binary_last_modified_unix_sec:function(e){$.ajax({beforeSend:function(e){e.setRequestHeader("x-csrftoken",initial_data.csrf_token)},url:"/get_last_modified_unix_sec",cache:!1,method:"GET",data:{path:e},success:ye._recieve_last_modified_unix_sec,error:ye._error_getting_last_modified_unix_sec})},get_insert_break_cmd:function(e,t){return"gdb"===l.store.get("interpreter")?['-break-insert "'+e+":"+t+'"']:(console.log("TODOLLDB - find mi-friendly command"),["breakpoint set --file "+e+" --line "+t])},get_delete_break_cmd:function(e){return"gdb"===l.store.get("interpreter")?"-break-delete "+e:(console.log("TODOLLDB - find mi-friendly command"),"breakpoint delete "+e)},get_break_list_cmd:function(){return"gdb"===l.store.get("interpreter")?"-break-list":"lldb"===l.store.get("interpreter")?(console.log("TODOLLDB - find mi-friendly command"),"breakpoint list"):void 0},get_flush_output_cmd:function(){if(!l.store.get("flush_after_commands"))return"";if("c_family"===l.store.get("language")){if("gdb"===l.store.get("interpreter"))return u.IGNORE_ERRORS_TOKEN_STR+"-data-evaluate-expression fflush(0)";if("lldb"===l.store.get("interpreter"))return""}else{if("go"===l.store.get("language"))return"";if("rust"===l.store.get("language"))return""}},get_load_binary_and_arguments_cmds:function(e,t){var n=["-exec-arguments "+t,"-file-exec-and-symbols "+e];return l.store.get("auto_add_breakpoint_to_main")&&n.push("-break-insert main"),n.push(ye.get_break_list_cmd()),n},set_assembly_flavor:function(e){ye.run_gdb_command("set disassembly-flavor "+e)},_recieve_last_modified_unix_sec:function(e){e.path===l.store.get("inferior_binary_path")&&l.store.set("inferior_binary_path_last_modified_unix_sec",e.last_modified_unix_sec)},_error_getting_last_modified_unix_sec:function(e){l.store.set("inferior_binary_path",null)}},ve=ye,we=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"";return i.a.createElement("td",{style:{verticalAlign:"top",width:"30px"},className:"line_num "+n,onClick:function(){t.click_gutter(e)}},i.a.createElement("div",null,e))}},{key:"_get_assm_row",value:function(e,n,r){return i.a.createElement("tr",{key:e,className:"srccode"},i.a.createElement("td",{className:"assembly loc"},t._get_assm_content(e,n,r)))}},{key:"is_gdb_paused_on_this_line",value:function(e,t){return!!this.state.paused_on_frame&&(e===t&&this.state.paused_on_frame.fullname===this.state.fullname_to_render)}},{key:"get_view_more_tr",value:function(e,n,r){return i.a.createElement("tr",{key:n,className:"srccode",ref:function(e){return t[r]=e}},i.a.createElement("td",null),i.a.createElement("td",{onClick:function(){Se.view_file(e,n)},style:{fontStyle:"italic",paddingLeft:"10px"},className:"pointer"},"view more"))}},{key:"get_end_of_file_tr",value:function(e){return i.a.createElement("tr",{key:e},i.a.createElement("td",null),i.a.createElement("td",{style:{fontStyle:"italic",paddingLeft:"10px",fontSize:"0.8em"}},"(end of file)"))}},{key:"get_line_nums_to_render",value:function(e,t,n,r){for(var o=t,a=r,i=t;it;){if(e.hasOwnProperty(i)){a=i;break}i--}return{start_linenum_to_render:o,end_linenum_to_render:a}}},{key:"get_body_source_and_assm",value:function(e,n,r,o,a,i,l){for(var s=[],u=ie.get_breakpoint_lines_for_file(this.state.fullname_to_render),c=ie.get_disabled_breakpoint_lines_for_file(this.state.fullname_to_render),_=this.state.paused_on_frame?parseInt(this.state.paused_on_frame.line):0,d=this.state.line_of_source_to_flash,f=this.get_line_nums_to_render(n,a,d,i),p=f.start_linenum_to_render,m=f.end_linenum_to_render,h=p;h<=m;){var g=n[h],b=-1!==u.indexOf(h),y=-1!==c.indexOf(h),v=this.is_gdb_paused_on_this_line(h,_),w=r[h];s.push(this._get_source_line(g,d===h,v,h,b,y,w,o)),h++}return t.view_more_top_node=null,t.view_more_bottom_node=null,p>a?s.unshift(this.get_view_more_tr(e,p-1,"view_more_top_node")):1!==a&&s.unshift(this.get_view_more_tr(e,a-1,"view_more_top_node")),m=n&&i<=o?{is_visible:!0,top_of_line:a,top_of_table:l,height_of_container:r}:{is_visible:!1,top_of_line:a,top_of_table:l,height_of_container:r}}},{key:"_make_jq_selector_visible",value:function(e){if(1===e.length){var n=t.is_source_line_visible(e),r=n.is_visible,o=n.top_of_line,a=n.top_of_table,i=n.height_of_container;if(!r){var l=o-(a+i/2);t.el_code_container.animate({scrollTop:l},0)}return!0}return!1}}]),t}();ke.el_code_container=null,ke.el_code_container_node=null,ke.code_container_node=null,ke.view_more_top_node=null,ke.view_more_bottom_node=null;var Ee=ke;i.a;var xe={clear_program_state:function(){l.store.set("line_of_source_to_flash",void 0),l.store.set("paused_on_frame",void 0),l.store.set("selected_frame_num",0),l.store.set("current_thread_id",void 0),l.store.set("stack",[]),l.store.set("threads",[]),E.clear_cache(),pe.clear()},inferior_program_running:function(){l.store.set("inferior_program",u.inferior_states.running),xe.clear_program_state()},inferior_program_paused:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l.store.set("inferior_program",u.inferior_states.paused),l.store.set("source_code_selection_state",u.source_code_selection_states.PAUSED_FRAME),l.store.set("paused_on_frame",e),l.store.set("fullname_to_render",e.fullname),l.store.set("line_of_source_to_flash",parseInt(e.line)),l.store.set("current_assembly_address",e.addr),l.store.set("source_code_infinite_scrolling",!1),Ee.make_current_line_visible(),xe.refresh_state_for_gdb_pause()},inferior_program_exited:function(){l.store.set("inferior_program",u.inferior_states.exited),l.store.set("disassembly_for_missing_file",[]),l.store.set("root_gdb_tree_var",null),l.store.set("previous_register_values",{}),l.store.set("current_register_values",{}),l.store.set("inferior_pid",null),xe.clear_program_state()},refresh_state_for_gdb_pause:function(){ve.run_gdb_command(ve._get_refresh_state_for_pause_cmds())},execute_console_command:function(e){l.store.get("refresh_state_after_sending_console_command")?ve.run_command_and_refresh_state(e):ve.run_gdb_command(e)},clear_console:function(){l.store.set("gdb_console_entries",[])},add_console_entries:function(e,t){_.isArray(e)||(e=[e]);var n=e.map(function(e){return{type:t,value:e}}),r=l.store.get("gdb_console_entries").concat(n);r.length>1e3&&r.splice(0,r.length-1e3),l.store.set("gdb_console_entries",r)},add_gdb_response_to_console:function(e){if(e){var t=[],n=!1;if(e.message&&("error"===e.message?n=!0:t.push(e.message)),e.payload){var r=!0,o=!1,a=void 0;try{for(var i,l=["msg","reason","signal-name","signal-meaning"][Symbol.iterator]();!(r=(i=l.next()).done);r=!0){var s=i.value;e.payload[s]&&t.push(e.payload[s])}}catch(e){o=!0,a=e}finally{try{!r&&l.return&&l.return()}finally{if(o)throw a}}if(e.payload.frame)for(var c=["file","func","line","addr"],_=0;_1&&void 0!==arguments[1]?arguments[1]:0;if(!e)return null;this.nodecount++;var r="   ".repeat(n),o=null,a=!e.children;!a&&(o=e.toggled?"glyphicon-chevron-down":"glyphicon-chevron-right");var l=null;return a&&(l=function(){t.props.onClickName(e)}),i.a.createElement(i.a.Fragment,{key:this.nodecount},i.a.createElement("li",{className:"pointer"},r,i.a.createElement("span",{className:"glyphicon "+o,onClick:function(){t.props.onToggle(e)}}),i.a.createElement("span",{onClick:l},e.name)),function(e){return e.children&&e.toggled?i.a.createElement("ul",null,e.children.map(function(e){return t.get_node_jsx(e,n+1)})):null}(e))}},{key:"render",value:function(){return this.nodecount=-1,i.a.createElement("div",{id:"filesystem"},i.a.createElement("ul",{style:{color:"#ccc"}},this.get_node_jsx(this.props.rootnode)))}}]),t}(),je=function(){function e(e,t){for(var n=0;nthis.max_filesystem_entries;return i.a.createElement("div",null,i.a.createElement("button",{className:"btn btn-xs btn-primary",onClick:Se.fetch_source_files,style:{marginLeft:"5px",marginTop:"5px"}},"Fetch source files"),i.a.createElement("div",{style:{width:"100%"}},i.a.createElement(Ne,null)),i.a.createElement("div",{role:"group",className:"btn-group btn-group",style:{padding:"4px"}},i.a.createElement("button",{className:"btn btn-xs btn-default",onClick:this.expand_all},"Expand all"),i.a.createElement("button",{className:"btn btn-xs btn-default",onClick:this.collapse_all},"Collapse all"),i.a.createElement("button",{className:"btn btn-xs btn-default "+(n?"":"hidden"),onClick:function(){return e.reveal_path(l.store.get("fullname_to_render"))}},"Reveal current file")),l.store.get("source_file_paths").length?i.a.createElement("p",{style:{color:"white",padding:"4px"}},l.store.get("source_file_paths").length," known files used to compile the inferior program"):"",r?i.a.createElement("p",{style:{color:"black",background:"orange",padding:"4px"}},"Maximum entries in tree below is ",this.max_filesystem_entries," (hiding"," ",l.store.get("source_file_paths").length-this.max_filesystem_entries,"). All files can still be searched for in the input above."):"",i.a.createElement(Ie,{rootnode:this.state.rootnode,onToggle:this.onToggle,onClickName:this.onClickName}))}},{key:"onClickName",value:function(e){for(var t=e,n=[];t;){if("root"===t.name){n.unshift("");break}n.unshift(t.name),t=t.parent}n.length&&H.user_select_file_to_view(n.join("/"),1)}},{key:"reveal_path",value:function(e){if(e){this.state.cursor&&(this.state.cursor.active=!1),this.project_home&&(e=e.replace(this.project_home,""));var t=e.split("/").filter(function(e){return""!==e}),n=this.state.rootnode;n.toggled=!0;var r=!0,o=!1,a=void 0;try{for(var i,l=t[Symbol.iterator]();!(r=(i=l.next()).done);r=!0){if(!(n=Me(i.value,n)))break;n.toggled=!0}}catch(e){o=!0,a=e}finally{try{!r&&l.return&&l.return()}finally{if(o)throw a}}n&&(n.active=!0),this.setState({rootnode:this.state.rootnode,cursor:n})}}},{key:"update_filesystem_data",value:function(e){if(-1!==e.indexOf("source_file_paths")){var t=this.state.source_file_paths;if(_.isArray(t)&&t.length){var n={name:this.project_home||"root",toggled:!0,children:[]},r=t;if(this.project_home){var o=this.project_home;r=t.filter(function(e){return e.startsWith(o)}).map(function(e){return e=e.replace(o,"")})}var a=!0,i=!1,l=void 0;try{for(var s,u=r[Symbol.iterator]();!(a=(s=u.next()).done);a=!0){var c=void 0,d=s.value.split("/").filter(function(e){return""!==e}),f=n,p=0===m,m=0,h=!0,g=!1,b=void 0;try{for(var y,v=d[Symbol.iterator]();!(h=(y=v.next()).done);h=!0){var w=y.value,k=Me(w,f);k?f=k:(c={name:w,toggled:p,parent:f},f.children?f.children.push(c):f.children=[c],f=c),m++}}catch(e){g=!0,b=e}finally{try{!h&&v.return&&v.return()}finally{if(g)throw b}}}}catch(e){i=!0,l=e}finally{try{!a&&u.return&&u.return()}finally{if(i)throw l}}this.setState({rootnode:n})}else this.setState({rootnode:Re})}}},{key:"onToggle",value:function(e){e.toggled=!e.toggled,this.setState({rootnode:this.state.rootnode})}},{key:"expand_all",value:function(){var e=function(e){e.toggled=!0},t=!0,n=!1,r=void 0;try{for(var o,a=this.state.rootnode.children[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){var i=o.value;this._dfs(i,e)}}catch(e){n=!0,r=e}finally{try{!t&&a.return&&a.return()}finally{if(n)throw r}}this.setState({rootnode:this.state.rootnode})}},{key:"collapse_all",value:function(){var e=function(e){e.toggled=!1},t=!0,n=!1,r=void 0;try{for(var o,a=this.state.rootnode.children[Symbol.iterator]();!(t=(o=a.next()).done);t=!0){var i=o.value;this._dfs(i,e)}}catch(e){n=!0,r=e}finally{try{!t&&a.return&&a.return()}finally{if(n)throw r}}this.setState({rootnode:this.state.rootnode})}},{key:"_dfs",value:function(e,t){if(t(e),e.children){var n=!0,r=!1,o=void 0;try{for(var a,i=e.children[Symbol.iterator]();!(n=(a=i.next()).done);n=!0){var l=a.value;this._dfs(l,t)}}catch(e){r=!0,o=e}finally{try{!n&&i.return&&i.return()}finally{if(r)throw o}}}}}]),t}(),De=function(){function e(e,t){for(var n=0;nKe.sent_cmds.length?(Ke.index=Ke.sent_cmds.length,null):(Ke.is_history_being_used=!0,Ke.index>=Ke.sent_cmds.length?null:Ke.sent_cmds[Ke.index])},add_command:function(e){Ke.reset(),-1===Ke.sent_cmds.indexOf(e)&&(Ke.sent_cmds.length>Ke.COMMAND_HISTORY_LIMIT&&Ke.sent_cmds.shift(),Ke.sent_cmds.push(e),localStorage.setItem("sent_cmds",JSON.stringify(Ke.sent_cmds)))},reset:function(){Ke.is_history_being_used=!1,Ke.index=0}},Ke=He,$e=function(e){function t(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var e=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e._store_change_callback=function(){var t=l.store.get("gdb_autocomplete_options");1===t.length?(e.setState({current_command_input:t[0]+" "}),l.store.set("gdb_autocomplete_options",[])):t.length>1&&(Se.add_console_entries(t,u.console_entry_type.AUTOCOMPLETE_OPTION),l.store.set("gdb_autocomplete_options",[]))},e.on_current_command_input_change=function(t){e.setState({current_command_input:t})},e.on_sent_command_clicked=function(t){He.reset(),e.setState({current_command_input:t})},e.on_autocomplete_text_clicked=function(t){He.reset(),e.setState({current_command_input:t+" "})},e.get_previous_command_from_history=function(){e.setState({current_command_input:He.get_previous_command(e.state.current_command_input)||e.state.current_command_input})},e.get_next_command_from_history=function(){e.setState({current_command_input:He.get_next_command(e.state.current_command_input)||e.state.current_command_input})},e.run_command=function(){var t=e.state.current_command_input;He.add_command(t),Se.add_console_entries(t,u.console_entry_type.SENT_COMMAND),Se.execute_console_command(t),e.setState({current_command_input:""})},e.send_autocomplete_command=function(){var t=e.state.current_command_input;ve.send_autocomplete_command(t)},e.state={current_command_input:""},l.store.connectComponentState(e,["gdb_console_entries","gdb_autocomplete_options"],e._store_change_callback.bind(e)),e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,i.a.Component),We(t,[{key:"render",value:function(){var e=this.state,t=e.gdb_console_entries,n=e.current_command_input,r=e.gdb_autocomplete_options;return i.a.createElement("div",{id:"console_container"},i.a.createElement(Ve,{console_entries:t,on_sent_command_clicked:this.on_sent_command_clicked,on_autocomplete_text_clicked:this.on_autocomplete_text_clicked}),i.a.createElement(Fe,{current_command_input:n,on_current_command_input_change:this.on_current_command_input_change,autocomplete_options_count:r.length,get_previous_command_from_history:this.get_previous_command_from_history,get_next_command_from_history:this.get_next_command_from_history,clear_console:function(){return Se.clear_console()},run_command:this.run_command,send_autocomplete_command:this.send_autocomplete_command}))}}]),t}(),Xe={init:function(){window.onkeydown=function(e){e.keyCode===u.ENTER_BUTTON_NUM&&e.preventDefault()},$("body").on("keydown",Xe.body_keydown),$('[data-toggle="tooltip"]').tooltip(),window.onbeforeunload=function(){return"text here makes dialog appear when exiting. Set function to back to null for nomal behavior."}},body_keydown:function(e){var t=e.altKey||e.ctrlKey||e.shiftKey||e.metaKey;if("INPUT"!==e.target.nodeName&&!t){var n=String.fromCharCode(e.keyCode).toLowerCase();e.keyCode===u.DOWN_BUTTON_NUM||"s"===n?ve.click_step_button():e.keyCode===u.RIGHT_BUTTON_NUM||"n"===n?ve.click_next_button():"c"===n?ve.click_continue_button():e.keyCode===u.UP_BUTTON_NUM||"u"===n?ve.click_return_button():"r"===n?ve.click_run_button():"m"===n?ve.click_next_instruction_button():e.keyCode===u.COMMA_BUTTON_NUM&&ve.click_step_instruction_button()}}},qe=Xe,Ye=function(){function e(e,t){for(var n=0;n0&&(et.max_lines_of_code_to_fetch=ot)}var at=et,it=function(){function e(e,t){for(var n=0;n0){var u=1===n?"child":"children";t.push("+ "+n+" "+u)}else if(e.numchild!==e.children.length){var c=1===e.numchild?"child":"children";t.push("+ "+e.numchild+" "+c)}return t.join("\n")},_add_nodes_and_edges:function(e,t){var n=dt._get_node_label(e);if(e.name in dt.nodes._data){var r=n===dt.nodes._data[e.name].label?"white":"yellow";dt.nodes.update({id:e.name,label:dt._get_node_label(e),color:{background:r}})}else dt.nodes.add({id:e.name,label:dt._get_node_label(e)});if(!t||e.name in dt.edges._data||dt.edges.add({id:e.name,from:t.name,to:e.name,label:e.exp}),e.show_children_in_ui){var o=!0,a=!1,i=void 0;try{for(var l,s=e.children[Symbol.iterator]();!(o=(l=s.next()).done);o=!0){var u=l.value;u.numchild>0&&dt._add_nodes_and_edges(u,e)}}catch(e){a=!0,i=e}finally{try{!o&&s.return&&s.return()}finally{if(a)throw i}}}else{var c=!0,_=!1,d=void 0;try{for(var f,p=e.children[Symbol.iterator]();!(c=(f=p.next()).done);c=!0){var m=f.value;dt._dfs(m,function(e){dt.nodes.remove({id:e.name}),dt.edges.remove({id:e.name})})}}catch(e){_=!0,d=e}finally{try{!c&&p.return&&p.return()}finally{if(_)throw d}}}},_dfs:function(e,t){t(e);var n=!0,r=!1,o=void 0;try{for(var a,i=e.children[Symbol.iterator]();!(n=(a=i.next()).done);n=!0){var l=a.value;dt._dfs(l,t)}}catch(e){r=!0,o=e}finally{try{!n&&i.return&&i.return()}finally{if(r)throw o}}},render_new_network:function(e){dt.nodes=new vis.DataSet,dt.edges=new vis.DataSet,dt._add_nodes_and_edges(e);var t={nodes:dt.nodes,edges:dt.edges};dt.network=new vis.Network(dt.el,t,{nodes:{shape:"box",color:{background:"white"}},layout:{randomSeed:0,hierarchical:{direction:"UD",sortMethod:"directed"}},interaction:{dragNodes:!0},physics:{enabled:!1}}),dt.network.on("click",function(e){var t=this.getNodeAt(e.pointer.DOM);dt.gdb_var_being_updated=t,t&&t&&A._toggle_children_visibility(t)})}},ft=dt,pt=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,o=!1,a=void 0;try{for(var i,l=e[Symbol.iterator]();!(r=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){o=!0,a=e}finally{try{!r&&l.return&&l.return()}finally{if(o)throw a}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),mt=function(){function e(e,t){for(var n=0;n=9&&"d2b6fad22b1e05178f4888fcb461a481e8e0e3b7a28b6bc60b1df7eb286a77dc"!==initial_data.p?(Se.add_console_entries("",u.console_entry_type.UPGRADE_GDBGUI),localStorage.setItem("num_gdbgui_sessions",0)):localStorage.setItem("num_gdbgui_sessions",t+1)}},{key:"_parse_binary_and_args_from_user_input",value:function(e){var t=B.string_to_array_safe_quotes(e),n="",r=[],o=t.length;return 1===o?n=t[0]:o>1&&(n=t[0],r=t.slice(1,o)),{binary:n,args:r.join(" ")}}},{key:"set_target_app",value:function(){var e=_.trim(this.state.user_input);if(""!==_.trim(e))if(this._add_user_input_to_history(e),this.state.target_type===Pt.file){var t=this._parse_binary_and_args_from_user_input(e),n=t.binary,r=t.args;Se.set_gdb_binary_and_arguments(n,r)}else this.state.target_type===Pt.server?Se.connect_to_gdbserver(e):this.state.target_type===Pt.process&&Se.attach_to_process(e);else Se.add_console_entries("input cannot be empty",u.console_entry_type.GDBGUI_OUTPUT)}}]),t}(),jt=function(){function e(e,t){for(var n=0;n ",n),!0},persistToLocalStorage:function(e,t,n){try{localStorage.setItem(e,JSON.stringify(n))}catch(t){console.warn("could not save "+e+" to localstorage")}return!0}};e.exports={middleware:r}},function(e,t,n){"use strict";e.exports=function(e){var t=(e?e.ownerDocument||e:document).defaultView||window;return!(!e||!("function"==typeof t.Node?e instanceof t.Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}},function(e,t,n){"use strict";var r=n(9);e.exports=function(e){return r(e)&&3==e.nodeType}},function(e,t,n){"use strict";var r=n(10);e.exports=function e(t,n){return!(!t||!n)&&(t===n||!r(t)&&(r(n)?e(t,n.parentNode):"contains"in t?t.contains(n):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(n))))}},function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty;function o(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}e.exports=function(e,t){if(o(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(var i=0;i