dyninst.git
4 years agoApplied patches from Alin Mindroc and Marc Bruenink.
Bill Williams [Thu, 8 Oct 2015 20:06:04 +0000 (15:06 -0500)]
Applied patches from Alin Mindroc and Marc Bruenink.

4 years agoRe-enable 32-bit RTlib option, but default to disabled.
Bill Williams [Mon, 28 Sep 2015 18:47:12 +0000 (13:47 -0500)]
Re-enable 32-bit RTlib option, but default to disabled.

4 years agoMake modules, from Symtab through BPatch, consistently correspond to .o files, with...
Bill Williams [Mon, 28 Sep 2015 18:46:44 +0000 (13:46 -0500)]
Make modules, from Symtab through BPatch, consistently correspond to .o files, with objects corresponding to executables and libraries.

4 years agoFix cmake exports
Bill Williams [Fri, 18 Sep 2015 20:12:56 +0000 (15:12 -0500)]
Fix cmake exports

4 years agoDon't special-case shared libraries with respect to modules.
Bill Williams [Thu, 17 Sep 2015 21:54:34 +0000 (16:54 -0500)]
Don't special-case shared libraries with respect to modules.

4 years agoFix per-CU line info parsing to track which modules we've parsed.
Bill Williams [Wed, 16 Sep 2015 18:53:03 +0000 (13:53 -0500)]
Fix per-CU line info parsing to track which modules we've parsed.

4 years agoMake package target optional
Bill Williams [Fri, 11 Sep 2015 20:56:18 +0000 (15:56 -0500)]
Make package target optional

4 years agoFixes for symLite and tarball targets
Bill Williams [Wed, 9 Sep 2015 18:35:10 +0000 (13:35 -0500)]
Fixes for symLite and tarball targets

4 years agodynC: use dyninst_library() to get the proper soname v9.0.3
Josh Stone [Tue, 25 Aug 2015 23:26:33 +0000 (16:26 -0700)]
dynC: use dyninst_library() to get the proper soname

4 years agoBump patch number
Bill Williams [Tue, 25 Aug 2015 17:48:56 +0000 (12:48 -0500)]
Bump patch number

4 years agoOutput configured version.h to source tree
Bill Williams [Mon, 24 Aug 2015 20:36:17 +0000 (15:36 -0500)]
Output configured version.h to source tree

4 years agoMerge branch 'arm64'
SteveXiSong [Tue, 25 Aug 2015 03:24:27 +0000 (22:24 -0500)]
Merge branch 'arm64'

4 years ago modified: common/src/debug_common.C
SteveXiSong [Tue, 25 Aug 2015 02:03:50 +0000 (21:03 -0500)]
modified:   common/src/debug_common.C

4 years agoMerge branch 'master' of ssh://git.dyninst.org/pub/dyninst
SteveXiSong [Tue, 25 Aug 2015 01:51:47 +0000 (20:51 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst

4 years ago modified: instructionAPI/src/InstructionDecoder-aarch64.C
SteveXiSong [Tue, 25 Aug 2015 01:50:20 +0000 (20:50 -0500)]
modified:   instructionAPI/src/InstructionDecoder-aarch64.C

4 years agoBump patch version v9.0.2
Bill Williams [Mon, 24 Aug 2015 19:21:03 +0000 (14:21 -0500)]
Bump patch version

4 years agoMerge branch 'master' into arm64
SteveXiSong [Fri, 21 Aug 2015 21:49:32 +0000 (16:49 -0500)]
Merge branch 'master' into arm64

Conflicts:
DyninstAPI-9.0.0.tgz

deleted:    DyninstAPI-9.0.0.tgz

4 years agoaarch64: modified instructionAPI for building
SteveXiSong [Fri, 21 Aug 2015 21:48:22 +0000 (16:48 -0500)]
aarch64: modified instructionAPI for building

4 years agoFix whitespace
Bill Williams [Fri, 21 Aug 2015 21:10:22 +0000 (16:10 -0500)]
Fix whitespace

4 years agoUse a version.h for plugging in version #defines, not a command line definition
Bill Williams [Fri, 21 Aug 2015 20:11:23 +0000 (15:11 -0500)]
Use a version.h for plugging in version #defines, not a command line definition

4 years agoMerge branch 'master' of ssh://git.dyninst.org/pub/dyninst
SteveXiSong [Fri, 21 Aug 2015 18:05:59 +0000 (13:05 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst

4 years ago deleted: DyninstAPI-9.0.0.tgz
SteveXiSong [Fri, 21 Aug 2015 18:05:38 +0000 (13:05 -0500)]
deleted:    DyninstAPI-9.0.0.tgz

4 years agoChange default doc dir to share/doc v9.0.1
Bill Williams [Fri, 21 Aug 2015 18:02:07 +0000 (13:02 -0500)]
Change default doc dir to share/doc

4 years agoRemoved package targets that don't belong in the repository
Bill Williams [Fri, 21 Aug 2015 16:04:08 +0000 (11:04 -0500)]
Removed package targets that don't belong in the repository

4 years agoBump patch version
Bill Williams [Fri, 21 Aug 2015 15:59:18 +0000 (10:59 -0500)]
Bump patch version

4 years agoFix isTailCall definition in IA_power.C
Xiaozhu Meng [Thu, 20 Aug 2015 21:11:43 +0000 (16:11 -0500)]
Fix isTailCall definition in IA_power.C

4 years ago modified: DyninstAPI-9.0.0.tgz
SteveXiSong [Thu, 20 Aug 2015 22:32:17 +0000 (17:32 -0500)]
modified:   DyninstAPI-9.0.0.tgz

4 years agoMerge branch 'arm64' of feta.cs.wisc.edu:/p/paradyn/development/xi/Dyninst/dyninst...
Steve [Thu, 20 Aug 2015 22:18:23 +0000 (17:18 -0500)]
Merge branch 'arm64' of feta.cs.wisc.edu:/p/paradyn/development/xi/Dyninst/dyninst into arm64

Conflicts:
stackwalk/src/dbginfo-stepper.C
stackwalk/src/swk_errors.C

modified:   common/src/debug_common.C

4 years ago modified: ../../DyninstAPI-9.0.0.tgz
Steve [Thu, 20 Aug 2015 22:15:32 +0000 (17:15 -0500)]
modified:   ../../DyninstAPI-9.0.0.tgz
modified:   debug_common.C

4 years ago new file: DyninstAPI-9.0.0.tgz
Steve [Thu, 20 Aug 2015 22:12:56 +0000 (17:12 -0500)]
new file:   DyninstAPI-9.0.0.tgz

4 years agorebased to master after sw 3rd party completed
Steve [Thu, 20 Aug 2015 22:12:13 +0000 (17:12 -0500)]
rebased to master after sw 3rd party completed

4 years agocommented .S stub file for arm64 temporarily
Steve [Wed, 19 Aug 2015 20:08:49 +0000 (15:08 -0500)]
commented .S stub file for arm64 temporarily

4 years agostackwalker: added translation function for abstract
Steve [Wed, 29 Jul 2015 22:10:51 +0000 (17:10 -0500)]
stackwalker: added translation function for abstract

4 years agostackwalker: thirdparty is good. dbginfosteper is good
Steve [Thu, 23 Jul 2015 19:00:53 +0000 (14:00 -0500)]
stackwalker: thirdparty is good. dbginfosteper is good

4 years agodebugsteppr can walk, but with errors
Steve [Mon, 20 Jul 2015 22:02:40 +0000 (17:02 -0500)]
debugsteppr can walk, but with errors

4 years agosw: walking is good, location filling failed
Steve [Tue, 16 Jun 2015 19:53:42 +0000 (14:53 -0500)]
sw: walking is good, location filling failed

4 years agothird party sw is good, not well tested
Steve [Mon, 15 Jun 2015 17:21:54 +0000 (12:21 -0500)]
third party sw is good, not well tested

4 years agocommented .S in dyinstAPI_RT for temp use
SteveXiSong [Thu, 20 Aug 2015 21:28:13 +0000 (16:28 -0500)]
commented .S in dyinstAPI_RT for temp use

4 years agoOnly build the package target if the source tree is a git checkout.
Bill Williams [Thu, 20 Aug 2015 21:23:45 +0000 (16:23 -0500)]
Only build the package target if the source tree is a git checkout.

4 years agoFinal merge of 9.0 Word-based docs v9.0.0
Bill Williams [Thu, 20 Aug 2015 20:28:35 +0000 (15:28 -0500)]
Final merge of 9.0 Word-based docs

4 years agoEnsure that we set up library dependency data *after* we've parsed it, not before.
Bill Williams [Wed, 19 Aug 2015 21:45:01 +0000 (16:45 -0500)]
Ensure that we set up library dependency data *after* we've parsed it, not before.

4 years agoAliased major/minor/beta legacy defines to the official numbers from CMake that they...
Bill Williams [Wed, 19 Aug 2015 21:44:11 +0000 (16:44 -0500)]
Aliased major/minor/beta legacy defines to the official numbers from CMake that they should sync with.

4 years agoUpdated line info documentation & regenerated manuals with proper dependency tracking.
Bill Williams [Wed, 19 Aug 2015 21:43:25 +0000 (16:43 -0500)]
Updated line info documentation & regenerated manuals with proper dependency tracking.

4 years agoAdd compile defs for version information.
Bill Williams [Wed, 19 Aug 2015 21:42:31 +0000 (16:42 -0500)]
Add compile defs for version information.

4 years agoProper dependency tracking for LaTeX manuals. Docs should rebuild appropriately when...
Bill Williams [Wed, 19 Aug 2015 21:42:11 +0000 (16:42 -0500)]
Proper dependency tracking for LaTeX manuals. Docs should rebuild appropriately when you touch any .tex files; you'll need to force a rebuild (or edit the globs) for non-.tex dependencies.

4 years agoUpdated various READMEs
Bill Williams [Mon, 17 Aug 2015 20:35:18 +0000 (15:35 -0500)]
Updated various READMEs

4 years agoClean up dead files
Bill Williams [Mon, 17 Aug 2015 19:58:46 +0000 (14:58 -0500)]
Clean up dead files

4 years agoRebuilt manual PDFs.
Bill Williams [Mon, 17 Aug 2015 19:56:03 +0000 (14:56 -0500)]
Rebuilt manual PDFs.

4 years agoThis merge include a few more fixes on parsing:
Xiaozhu Meng [Thu, 20 Aug 2015 15:52:43 +0000 (10:52 -0500)]
This merge include a few more fixes on parsing:

1. Fix bugs in identifying non-returning syscalls
2. Fix tail call heuristics on Windows where __stdcall will lead to lots of false tail calls
3. Fix bugs in identifying catch blocks
4. Fix uninitialized pionters and wrong bound check in loop analysis

4 years agocommented .S stub file for arm64 temporarily
Steve [Wed, 19 Aug 2015 20:08:49 +0000 (15:08 -0500)]
commented .S stub file for arm64 temporarily

4 years agoFix uninitialized parent pointer in class PatchLoop
Xiaozhu Meng [Wed, 19 Aug 2015 18:59:09 +0000 (13:59 -0500)]
Fix uninitialized parent pointer in class PatchLoop

4 years agoEliminating comparison by pointer address in parsing to ensure deterministic parsing...
Xiaozhu Meng [Wed, 19 Aug 2015 16:38:30 +0000 (11:38 -0500)]
Eliminating comparison by pointer address in parsing to ensure deterministic parsing results

4 years agoMove the parsing order of COND_NOT_TAKEN to its original place
Xiaozhu Meng [Wed, 19 Aug 2015 04:07:15 +0000 (23:07 -0500)]
Move the parsing order of COND_NOT_TAKEN to its original place

4 years agoFix typos in Loop::hasBlock and Loop::hasBlockExclusive
Xiaozhu Meng [Tue, 18 Aug 2015 20:35:07 +0000 (15:35 -0500)]
Fix typos in Loop::hasBlock and Loop::hasBlockExclusive

4 years agoOn Windows, the __stdcall calling convention requires the caller to push the paramete...
Xiaozhu Meng [Tue, 18 Aug 2015 20:00:43 +0000 (15:00 -0500)]
On Windows, the __stdcall calling convention requires the caller to push the parameters and requires the caller to clean up the parameters after the call returns.
This requirement would produce "add rsp, OFF" instructions after function calls to clean parameters, which look like stack tear down in our tail call heuristics and
we would have bogus tail calls and false sharing.

Change the tail call heuristics to check whether the add is immediately after a function call.
If it is, then the add cannot be treated as stack fram tear down.

4 years agoIgnore TeX and massif output files.
Bill Williams [Mon, 17 Aug 2015 16:36:15 +0000 (11:36 -0500)]
Ignore TeX and massif output files.

4 years agoDocumentation file cleanup.
Bill Williams [Mon, 17 Aug 2015 16:35:57 +0000 (11:35 -0500)]
Documentation file cleanup.

4 years agoIgnore TeX and massif output files.
Bill Williams [Mon, 17 Aug 2015 16:36:15 +0000 (11:36 -0500)]
Ignore TeX and massif output files.

4 years agoDocumentation file cleanup.
Bill Williams [Mon, 17 Aug 2015 16:35:57 +0000 (11:35 -0500)]
Documentation file cleanup.

4 years agoFix bugs in identifying catching blocks in ParseAPI.
Xiaozhu Meng [Mon, 17 Aug 2015 04:37:04 +0000 (23:37 -0500)]
Fix bugs in identifying catching blocks in ParseAPI.

1. We intend to look for catch blocks after every potential procedure ending instructions.
   Currently we only check for catch blocks after direct jumps and non-returning calls,
   we also need to check catch blocks after indirect jumps and rets.
2. There could be nop between an procedure ending instruction and the catch blocks.
   And there is a possibility that an exception table entry points a nop.
   So, we need to check for every nop and the first non-nop instruction after an procedure
   ending instruction for catch blocks.
3. Symtab::findCatchBlock, given a address range, uses a binary search to look for the catch block
   that contains the address range, but our catch blocks were not sorted according to
   the start adddresses of the catch blocks.

4 years agoOnly check the first non-nop instruction before the jump instruction for stack tear...
Xiaozhu Meng [Sun, 16 Aug 2015 04:45:34 +0000 (23:45 -0500)]
Only check the first non-nop instruction before the jump instruction for stack tear-down in tail call heuristics

4 years agoDyninstAPI defensive mode manual update.
Alex Morris [Fri, 14 Aug 2015 19:02:07 +0000 (14:02 -0500)]
DyninstAPI defensive mode manual update.

This commit updates the Dyninst manual to contain more
information about defensive mode.

4 years agoRemoved duplicate RT file.
Alex Morris [Fri, 14 Aug 2015 16:31:21 +0000 (11:31 -0500)]
Removed duplicate RT file.

RTthread-aarch64-asm.S is a duplicate of RTthread-aarch64-asm.s
and this causes git problems on Windows.

4 years agoNot perform gap parsing to parsed code
Xiaozhu Meng [Sat, 15 Aug 2015 03:13:26 +0000 (22:13 -0500)]
Not perform gap parsing to parsed code

4 years agoDyninstAPI defensive mode manual update.
Alex Morris [Fri, 14 Aug 2015 19:02:07 +0000 (14:02 -0500)]
DyninstAPI defensive mode manual update.

This commit updates the Dyninst manual to contain more
information about defensive mode.

4 years agoRemoved duplicate RT file.
Alex Morris [Fri, 14 Aug 2015 16:31:21 +0000 (11:31 -0500)]
Removed duplicate RT file.

RTthread-aarch64-asm.S is a duplicate of RTthread-aarch64-asm.s
and this causes git problems on Windows.

4 years agoFixes for non-returning functions and tail calls:
Xiaozhu Meng [Thu, 13 Aug 2015 21:28:34 +0000 (16:28 -0500)]
Fixes for non-returning functions and tail calls:
1. __longjmp and std::terminate() are a non-returning function;
2. fix bugs in handling non-returning syscalls;
3. a jump whose jump target is inside the current frame's working list is not a tail call.

4 years agoMake word doc targets consistent with LaTeX ones
Bill Williams [Wed, 12 Aug 2015 19:04:53 +0000 (14:04 -0500)]
Make word doc targets consistent with LaTeX ones

4 years agoRemove dependency from component to its manual; ensure install still depends on all
Bill Williams [Wed, 12 Aug 2015 18:49:57 +0000 (13:49 -0500)]
Remove dependency from component to its manual; ensure install still depends on all

4 years agoRemove docs from all; make doc installation optional
Bill Williams [Wed, 12 Aug 2015 18:36:01 +0000 (13:36 -0500)]
Remove docs from all; make doc installation optional

4 years agoTwo-pass LATEX for generating correct references
Bill Williams [Tue, 11 Aug 2015 18:05:42 +0000 (13:05 -0500)]
Two-pass LATEX for generating correct references

4 years agoMove docs back to main repository, with CMake targets for ${COMPONENT}-doc, automatic...
Bill Williams [Mon, 10 Aug 2015 20:31:44 +0000 (15:31 -0500)]
Move docs back to main repository, with CMake targets for ${COMPONENT}-doc, automatic tarball packaging, and versioned manual installation

4 years agoAdd ARM example stack to Stackwalker manual
Bill Williams [Mon, 10 Aug 2015 20:32:05 +0000 (15:32 -0500)]
Add ARM example stack to Stackwalker manual

4 years agoFix ParseAPI build on non-x86 platforms
Xiaozhu Meng [Tue, 11 Aug 2015 17:55:01 +0000 (12:55 -0500)]
Fix ParseAPI build on non-x86 platforms

4 years agoMerge branch 'master' of ssh://git.dyninst.org/pub/dyninst
SteveXiSong [Thu, 6 Aug 2015 16:47:56 +0000 (11:47 -0500)]
Merge branch 'master' of ssh://git.dyninst.org/pub/dyninst

4 years agorefined arm layout
SteveXiSong [Thu, 6 Aug 2015 16:47:30 +0000 (11:47 -0500)]
refined arm layout

4 years agodyninstAPI: fix EmitterIA32::emitDivImm for powers of 2
Josh Stone [Tue, 4 Aug 2015 17:58:31 +0000 (10:58 -0700)]
dyninstAPI: fix EmitterIA32::emitDivImm for powers of 2

This tries to be clever and convert power-of-2 division into shifting
right, but the ia32 version had two bugs.  The call to emitMovRegToReg
should have had dest, then src, but this case was reversed.  Then the
raw opcodes for the intended SAR were accidentally encoding SAL.

The dest/src bug was reported by Coverity as SWAPPED_ARGUMENTS.

4 years agodyninstAPI: avoid treating enums like bool
Josh Stone [Tue, 4 Aug 2015 23:31:55 +0000 (16:31 -0700)]
dyninstAPI: avoid treating enums like bool

Implementations of virtual BPatch_addressSpace::getType() are using enum
values to return a bool.  Make that return the proper enum processType
value directly, and make sure comparisons are appropriate.

Similarly, baseTramp had a boolean negation in a state comparison, which
should just use "!=" directly.

4 years agodyninstAPI: fix a few c_str() pointers outliving their string
Josh Stone [Tue, 4 Aug 2015 20:28:45 +0000 (13:28 -0700)]
dyninstAPI: fix a few c_str() pointers outliving their string

A c_str() pointer is only good as long as its string lives, but a few
areas were using this on string return values that are then destructed.
For localized use, these now make sure to save the string locally.  Then
BPatch_variableExpr kept a const char* name, which now needs to be an
owned string member.

Reported by Coverity as WRAPPER_ESCAPE.

4 years agoproccontrol: fix long formats for a few pthrd_printf calls
Josh Stone [Tue, 4 Aug 2015 17:39:51 +0000 (10:39 -0700)]
proccontrol: fix long formats for a few pthrd_printf calls

4 years agodyninstAPI: drop an unnecessary type cast
Josh Stone [Tue, 4 Aug 2015 17:37:58 +0000 (10:37 -0700)]
dyninstAPI: drop an unnecessary type cast

This cast flagged a compiler warning for dropping const, but const was
fine for this use anyway, so it actually doesn't need casting at all.

4 years agodyninstAPI: use parentheses to fix boolean precedence
Josh Stone [Tue, 4 Aug 2015 17:36:07 +0000 (10:36 -0700)]
dyninstAPI: use parentheses to fix boolean precedence

"&&" has higher precendence than "||", so this conditional was doing the
wrong thing for its NULL check.  Now it's written "A && (B || C)".

4 years agoparseAPI: correct arch comparisons in getAddressWidth
Josh Stone [Tue, 4 Aug 2015 17:02:52 +0000 (10:02 -0700)]
parseAPI: correct arch comparisons in getAddressWidth

The bare constants on branches of "||" were treated as true.  The intended
arch comparison needs to be repeated in each case.

Reported by Coverity as CONSTANT_EXPRESSION_RESULT.

4 years agoRemove accidental changes
Xiaozhu Meng [Thu, 6 Aug 2015 05:36:48 +0000 (00:36 -0500)]
Remove accidental changes

4 years agoadded stack layout for armv8
SteveXiSong [Thu, 6 Aug 2015 03:55:18 +0000 (22:55 -0500)]
added stack layout for armv8

4 years agoMinor manual updates on ParseAPI and PatchAPI
Xiaozhu Meng [Wed, 5 Aug 2015 18:39:11 +0000 (13:39 -0500)]
Minor manual updates on ParseAPI and PatchAPI

4 years agoNew sections
Bill Williams [Wed, 5 Aug 2015 17:21:46 +0000 (12:21 -0500)]
New sections

4 years agoMore manual updates
Bill Williams [Wed, 5 Aug 2015 17:19:41 +0000 (12:19 -0500)]
More manual updates

4 years agoUpdated manuals to 9.0 cover page
Bill Williams [Tue, 4 Aug 2015 15:40:20 +0000 (10:40 -0500)]
Updated manuals to 9.0 cover page

4 years agoSymtab manual bug fixes: escape all underscores
Bill Williams [Mon, 3 Aug 2015 22:24:12 +0000 (17:24 -0500)]
Symtab manual bug fixes: escape all underscores

4 years agoSymtab manual updates.
Bill Williams [Wed, 29 Jul 2015 16:23:53 +0000 (11:23 -0500)]
Symtab manual updates.

4 years agoProper support for extended ELF machine types.
Bill Williams [Wed, 29 Jul 2015 16:23:33 +0000 (11:23 -0500)]
Proper support for extended ELF machine types.

4 years agocommon: try process_vm_readv/writev for Linux bulk access
Josh Stone [Thu, 30 Jul 2015 22:25:00 +0000 (15:25 -0700)]
common: try process_vm_readv/writev for Linux bulk access

These syscalls can read/write entire blocks of memory in one syscall,
rather than using a series of word-sized ptrace peek/poke requests.

However, not all kernels have these (ENOSYS), and they don't bypass page
protection (EFAULT), so the ptrace way is still required as a fallback.

4 years agoFix typo in filling loop entries
Xiaozhu Meng [Mon, 3 Aug 2015 06:14:27 +0000 (01:14 -0500)]
Fix typo in filling loop entries

4 years agoCurrent implementation of non-returning function analysis
Xiaozhu Meng [Sat, 1 Aug 2015 18:24:06 +0000 (13:24 -0500)]
Current implementation of non-returning function analysis
require parsing call edges before parsing call fallthrough edges.

4 years agocommon: rewrite caching in Linux P_cplus_demangle()
Josh Stone [Thu, 30 Jul 2015 22:02:08 +0000 (15:02 -0700)]
common: rewrite caching in Linux P_cplus_demangle()

This had a bug where a last_typed value was saved even for parameter
includeTypes==false, where cplus_demangle opts lacked DMGL_PARAMS.
Similarly, the nativeCompiler parameter wasn't considered at all for
caching.

This caused strange issues in boost::multi_index, where its internal
rehashing was sometimes allocating buffers incorrectly for its buckets.
This was because Symbol->getTypedName() was returning different values
depending on how P_cplus_demangle was cached, and silently changing keys
in a map is no good at all.

P_cplus_demangle caching now requires an exact match on all three input
parameters before returning the saved result.

4 years agostackwalker: added translation function for abstract
Steve [Wed, 29 Jul 2015 22:10:51 +0000 (17:10 -0500)]
stackwalker: added translation function for abstract

4 years agoFencepost error fixed, from John Mellor-Crummey at Rice.
Bill Williams [Fri, 24 Jul 2015 19:48:55 +0000 (14:48 -0500)]
Fencepost error fixed, from John Mellor-Crummey at Rice.

4 years agoICC detection enabled under CMake, from Rashawn Knapp at Intel.
Bill Williams [Fri, 24 Jul 2015 19:48:35 +0000 (14:48 -0500)]
ICC detection enabled under CMake, from Rashawn Knapp at Intel.

4 years agoParseAPI manual update
Xiaozhu Meng [Mon, 27 Jul 2015 04:10:43 +0000 (23:10 -0500)]
ParseAPI manual update