Windows error 0x00000084, 132

Detailed Error Information

SEEK_ON_DEVICE[1]

MessageThe file pointer cannot be set on the specified device or file.
Declared inwinerror.h

This appears to be a raw Win32 error. More information may be available in error 0x80070084.

HRESULT analysis[2]

This is probably not the correct interpretation of this error. The Win32 error above is more likely to indicate the actual problem.
FlagsSeveritySuccess

This code indicates success, rather than an error. This may not be the correct interpretation of this code, or possibly the program is handling errors incorrectly.

Reserved (R)false
OriginMicrosoft
NTSTATUSfalse
Reserved (X)false
FacilityCode0 (0x000)
NameFACILITY_NULL[2][1]
DescriptionThe default facility code.[2][1]
Error Code132 (0x0084)

Possible solutions

7

What does gdb 'x' command do?

c
assembly
gdb
(gdb) help x
Examine memory: x/FMT ADDRESS.
ADDRESS is an expression for the memory address to examine.
FMT is a repeat count followed by a format letter and a size letter.
Format letters are o(octal), x(hex), d(decimal), u(unsigned decimal),
  t(binary), f(float), a(address), i(instruction), c(char) and s(string),
  T(OSType), A(floating point values in hex).
Size letters are b(byte), h(halfword), w(word), g(giant, 8 bytes).
The specified number of objects of the specified size are printed
according to the format.

Defaults for format and size letters are those previously used.
Default count is 1.  Default address is following last thing printed
with this command or "print".
answered on Stack Overflow Dec 13, 2013 by Paul Beusterien
7

What does gdb 'x' command do?

c
assembly
gdb

As to (1), you got that correct.

As to (2), the x command has up to 3 specifiers: how many objects to print; in which format; and what object size. In all your examples you choose to print as hex (x). As to the first specifier, you ask to print 12, 8, 8 objects.

As to the last specifier in your cases:
x/12x has none, so gdb defaults to assuming you want double words, aka, in 4 byte chunks. Note that you find double word sometimes defined differently, but in intel x86 assembly/gdb, it's 4 bytes. Generally, I'd always specify what exactly you want as opposed to falling back on default settings.

x/8xw does the same, for 8 objects, as you explicitly requested dwords now.

x/8xh requests half-word sized chunks of bytes, so objects printed in 2 byte chunks. In case you wonder why the concatenation of two neighboring values does not equal what was reported when you printed in dwords, this is because the x86 is a little-endian architecture. What that means is detailed quite well in erickson's book again - if you look a few pages ahead, he does some calculations you might find helpful. In a nutshell, if you recombine them (2,1) (4,3), ..., you'll see they match.

answered on Stack Overflow Dec 13, 2013 by gnometorule
2

iPhone App crash log - How to get class name and method name in crash log?

iphone
objective-c
ios
crash-reports
plcrashreporter

You want to do "Symbolication".

See this Apple Document regarding symbolication or search for other tutorials.

answered on Stack Overflow Dec 20, 2012 by Nick Bull
0

iPhone App crash log - How to get class name and method name in crash log?

iphone
objective-c
ios
crash-reports
plcrashreporter

Here is a simple script I made to make symbolicating easier

#!/bin/bash
echo "Drop crash..."
read s2
echo "Drop dSYM..."
read s3
export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"
symbolicatecrash "$s2" "$s3" > "$s2.txt"

Just save this as SymbolicateCrashScript.sh and run chmod 755 on it from the terminal.

Also make sure your .app and .dsym from the build it crashed on are in the same folder before doing this.

answered on Stack Overflow Dec 20, 2012 by Dmacpro
0

DWARF - How to find the prologue end/epilogue start addresses of functions in a given binary?

c
assembly
objdump
dwarf
readelf

Try

readelf -wi

And look for DW_AT_low_pc and DW_AT_high_pc for the subroutine you are looking at.

The DWARF spec says:

A subroutine entry may have either a DW_AT_low_pc and DW_AT_high_pc pair of attributes or a DW_AT_ranges attribute whose values encode the contiguous or non-contiguous address ranges, respectively, of the machine instructions generated for the subroutine (see Section 2.17).

If I remember correctly, the DW_AT_low_pc is the address immediately after the prologue and DW_AT_high_pc is the last address before the epilogue.

Don't worry about the opcodes being 'special' that just means that they don't take arguments to save space in the encoded line number program.

answered on Stack Overflow Sep 28, 2014 by Torleif

Comments

Leave a comment

(plain text only)

Sources

  1. winerror.h from Windows SDK 10.0.14393.0
  2. https://msdn.microsoft.com/en-us/library/cc231198.aspx

User contributions licensed under CC BY-SA 3.0